




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于架構(gòu)風(fēng)格與基于網(wǎng)絡(luò)的軟件架構(gòu)設(shè)計(jì)的前三章整理基于架構(gòu)風(fēng)格與基于網(wǎng)絡(luò)的軟件架構(gòu)設(shè)計(jì)的前三章整理基于網(wǎng)絡(luò)的架構(gòu)風(fēng)格基于網(wǎng)絡(luò)的架構(gòu)風(fēng)格架構(gòu)的相關(guān)概念1架構(gòu)風(fēng)格的實(shí)例3架構(gòu)所具有的品質(zhì)2內(nèi)容內(nèi)容Part1架構(gòu)的相關(guān)概念軟件架構(gòu)和架構(gòu)風(fēng)格軟件架構(gòu)和架構(gòu)風(fēng)格軟件架構(gòu)軟件架構(gòu)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計(jì)。軟件架構(gòu)是一個系統(tǒng)的草圖。軟件架構(gòu)描述的對象是直接構(gòu)成系統(tǒng)的抽象組件,各個組件之間的連接則明確和相對細(xì)致地描述組件之間的通訊。軟件架構(gòu)是一個軟件系統(tǒng)在其操作的某個階段的運(yùn)行時(shí)元素的抽象。一個系統(tǒng)可能由很多層抽象和很多個操作階段組成,每個抽象和操作階段都有自己的軟件架構(gòu)。軟件
2、抽象架構(gòu)應(yīng)該描述的是運(yùn)行時(shí)的抽象。抽象能夠隱藏一些系統(tǒng)的細(xì)節(jié)。我們要考慮系統(tǒng)行為抽象和操作階段抽象。在具體的層次還可能存在另一個架構(gòu)。抽象的結(jié)果我們稱之為元素。架構(gòu)元素軟件架構(gòu)是由一些架構(gòu)元素的配置來定義的。元素:處理元素,連接元素,數(shù)據(jù)元素。組件:執(zhí)行數(shù)據(jù)轉(zhuǎn)換的元素。連接器:將架構(gòu)不同部分結(jié)合在一起的元素。數(shù)據(jù):包含被使用和被轉(zhuǎn)換的信息的元素。粗糙架構(gòu):組件用方框表示,連接器用直線表示。在基于網(wǎng)絡(luò)的應(yīng)用中,我們引入了數(shù)據(jù)元素。架構(gòu)元素一個組件是軟件指令和內(nèi)部狀態(tài)的一個抽象單元,通過其接口提供對于數(shù)據(jù)的轉(zhuǎn)換。一個連接器是對于組建之間的通訊、協(xié)調(diào)或者合作進(jìn)行仲裁的一種抽象機(jī)制。一個數(shù)據(jù)是組件通過
3、一個連接器接收或發(fā)送的信息元素。連接器的例子包括共享的表述、遠(yuǎn)程過程調(diào)用、消息傳遞協(xié)議和數(shù)據(jù)流。連接器通過將數(shù)據(jù)元素從它的一個接口轉(zhuǎn)移到另一個接口而不改變數(shù)據(jù),來支持組件之間的通信。軟件架構(gòu)我們把系統(tǒng)的運(yùn)行期間組件、連接器和數(shù)據(jù)之間的架構(gòu)關(guān)系的結(jié)構(gòu)稱之為配置。軟件架構(gòu)的主要活動就是對運(yùn)行時(shí)進(jìn)行抽象。軟件架構(gòu)抽象會得到元素和配置。在配置之中我們會發(fā)現(xiàn)兩類配置,一類是主動的配置,一類是通用約束影響的配置。架構(gòu)屬性架構(gòu)屬性包含有組件、連接器和數(shù)據(jù)的選擇和排列所導(dǎo)致的所有屬性。屬性有:網(wǎng)絡(luò)性能,組件可重用性,進(jìn)化的相對容易程度,動態(tài)擴(kuò)展能力。屬性是由架構(gòu)中的約束所導(dǎo)致的,約束往往是由在架構(gòu)元素的某個方
4、面應(yīng)用軟件工程原則來驅(qū)動的。通用性原則驅(qū)動的“統(tǒng)一組件接口”,軟件將獲得可重用性和可配置性。架構(gòu)設(shè)計(jì)的目標(biāo)是創(chuàng)建包含一組架構(gòu)屬性的架構(gòu)。架構(gòu)風(fēng)格架構(gòu)風(fēng)格是一組協(xié)作的架構(gòu)約束,這些約束限制了架構(gòu)元素的角色和功能,以及在任何一個遵循該風(fēng)格的架構(gòu)中允許存在的元素之間的關(guān)系。風(fēng)格是一種用來對架構(gòu)進(jìn)行分類和定義它們的公共特征的機(jī)制。一種架構(gòu)風(fēng)格封裝了關(guān)于架構(gòu)元素的重要抉擇,強(qiáng)調(diào)對于元素和它們之間的關(guān)系的重要約束。一種架構(gòu)風(fēng)格決定了再此風(fēng)格的實(shí)例中能夠使用的組件和連接器的詞匯表,以及一組將它們組合在一起的約束。模式和視圖一種設(shè)計(jì)模式被定義為一種重要的和重復(fù)出現(xiàn)的系統(tǒng)構(gòu)造。一種模式通過遵循一種固定的設(shè)計(jì)和實(shí)
5、現(xiàn)選擇路徑,定義了一個解決問題的過程。對于系統(tǒng)的可以從很多不同的角度來觀察一個架構(gòu),不同的角度能夠得到不同視圖。4+1視圖模型:邏輯視圖,過程視圖,物理視圖,開發(fā)視圖,場景視圖。Part2架構(gòu)所具有的品質(zhì)架構(gòu)評價(jià)和架構(gòu)屬性架構(gòu)評價(jià)和架構(gòu)屬性評價(jià)架構(gòu)首先是評價(jià)能否實(shí)現(xiàn)功能需求。其次評價(jià)對非功能需求的強(qiáng)調(diào)程度。將所有可能的架構(gòu)風(fēng)格空間看作繼承樹。對不同的架構(gòu)風(fēng)格和屬性構(gòu)造強(qiáng)調(diào)程度表格。關(guān)鍵架構(gòu)屬性性能簡單性可見性可靠性可修改性可伸縮性可移植性性能網(wǎng)絡(luò)性能:吞吐量、負(fù)載、帶寬、可用帶寬可覺察性:延遲和完成時(shí)間網(wǎng)絡(luò)效率:網(wǎng)絡(luò)的使用對于軟件的必要性網(wǎng)絡(luò)性能負(fù)載是指組件對數(shù)據(jù)的處理數(shù)量吞吐量是指信息在組件
6、之間轉(zhuǎn)移的速率可用帶寬是指應(yīng)用實(shí)際可用的那部分帶寬帶寬是指在一個特定網(wǎng)絡(luò)上可用最大吞吐量我們可以通過減少傳輸?shù)臄?shù)據(jù)量來提升網(wǎng)絡(luò)性能網(wǎng)絡(luò)效率網(wǎng)絡(luò)使用所花費(fèi)的時(shí)間我們可以利用緩存數(shù)據(jù)來減少組件的網(wǎng)絡(luò)交互我們可以利用保存會話來減少數(shù)據(jù)的傳輸我們可以利用遠(yuǎn)程求值來減少交互的次數(shù)我們可以利用按需代碼來本地緩存組件我們可以利用選擇執(zhí)行組件的地點(diǎn)來減少時(shí)間可覺察性是指用戶對系統(tǒng)運(yùn)行的感知能力延遲是指從觸發(fā)初次請求到得到第一個響應(yīng)指示之間持續(xù)的時(shí)間完成時(shí)間是完成一個應(yīng)用動作所花費(fèi)的時(shí)間我們可以通過復(fù)制數(shù)據(jù)到本地加快響應(yīng)我們可以復(fù)制代碼到本質(zhì)執(zhí)行加快響應(yīng)在管道-過濾器風(fēng)格在每個組件處理后都可以觀察結(jié)果來增強(qiáng)可覺
7、察性簡單性功能分配是的單獨(dú)的組件足夠簡單我們可以通過分離組件間的關(guān)注點(diǎn)增強(qiáng)簡單性我們可以實(shí)施架構(gòu)元素通用行原則來增強(qiáng)簡單性可見性是指一個組件對于其他兩個組件之間的交互進(jìn)行監(jiān)視或仲裁的能力。我們可以使用通用性接口來確定組件之間的接口我們可以通過組件提供訪問監(jiān)視功能增強(qiáng)可見性我們可以增強(qiáng)交互數(shù)據(jù)的全面性來增強(qiáng)可見性可靠性指在框架元素出現(xiàn)部分故障時(shí),一個架構(gòu)容易受到系統(tǒng)層面故障影響的程度我們可以增加冗余,允許監(jiān)視來增加可靠性我們可以通過避免單點(diǎn)故障來增加可靠性我們可以通過見識并使用可恢復(fù)動作來縮小故障范圍來增加可靠性可修改性可進(jìn)化性:修改系統(tǒng)中組件而不影響其他的能力可擴(kuò)展性:新添加一個組件到系統(tǒng)中的
8、能力可定制性:臨時(shí)規(guī)定一個架構(gòu)元素的能力可配置性:部署后對框架元素和配置修改的能力可重用性:元素不做修改在其他框架重用的能力可修改性我們可以通過使用分層技術(shù)來提高可進(jìn)化性我們可以降低耦合度分離關(guān)注點(diǎn)來提高可進(jìn)化性我們可以通過降低耦合度來提高可擴(kuò)展性我們可以通過使用事件風(fēng)格來提高可擴(kuò)展性我們可以通過使用虛擬機(jī)風(fēng)格來提高可擴(kuò)展性我們可以通過遠(yuǎn)程求值風(fēng)格來提高可定制性可修改性我們可以通過按需代碼風(fēng)格來提高可配置性我們可以通過管道和過濾器分割來提高可配置性我們可以通過事件和分布式對象來提高可配置性我們可以通過降低耦合度來提高可重用性我們可以通過強(qiáng)制通用接口組件來提高可重用性可伸縮性在一個主動的配置中,
9、構(gòu)架支持大量的組件或大量的組件之間交互的能力。我們可以通過將處理過程分布到更多的組件來增強(qiáng)可伸縮性。我們可以根據(jù)交互結(jié)果對交互和配置進(jìn)行控制來增強(qiáng)可伸縮性。可移植性軟件在不同的環(huán)境下運(yùn)行的能力。我們可以通過按需代碼風(fēng)格可以實(shí)行可移植性。我們可以通過分層來實(shí)現(xiàn)可移植性。我們可以通過標(biāo)準(zhǔn)格式數(shù)據(jù)來實(shí)現(xiàn)可移植性。Part3網(wǎng)絡(luò)架構(gòu)風(fēng)格實(shí)例架構(gòu)需求和風(fēng)格實(shí)例架構(gòu)需求和風(fēng)格實(shí)例網(wǎng)絡(luò)架構(gòu)僅針對基于網(wǎng)絡(luò)的超媒體系統(tǒng)架構(gòu)設(shè)計(jì)除了功能需求還需要滿足屬性需求我們將按照架構(gòu)屬性來對架構(gòu)風(fēng)格進(jìn)行評估架構(gòu)風(fēng)格描述架構(gòu)風(fēng)格會導(dǎo)致架構(gòu)屬性的相對變化。我們將會討論有代表意義的網(wǎng)絡(luò)架構(gòu)風(fēng)格。使用風(fēng)格和屬性的比較表作為分類的可視
10、化。1.減號表示消極影響2.加號表示積極影響3.加減號表示影響依賴問題域的某個方面架構(gòu)風(fēng)格分類數(shù)據(jù)流風(fēng)格復(fù)制風(fēng)格分層風(fēng)格移動代碼風(fēng)格點(diǎn)對點(diǎn)風(fēng)格數(shù)據(jù)流風(fēng)格所有的數(shù)據(jù)按照流的形式在執(zhí)行過程中前進(jìn),不存在結(jié)構(gòu)的反復(fù)和重構(gòu)。在流動過程中,數(shù)據(jù)經(jīng)過序列間的數(shù)據(jù)處理組件進(jìn)行處理,然后將處理結(jié)果向后傳送、最后進(jìn)行輸出。管道和過濾器統(tǒng)一管道和過濾器管道和過濾器Pipe and Filter,PF每個組件(過濾器)從其輸入端讀取數(shù)據(jù)流并在其輸出端產(chǎn)生數(shù)據(jù)流,通常對輸入流應(yīng)用一種轉(zhuǎn)換并增量地處理它們,以使輸出在輸入被完全處理完之前就能夠開始。這種風(fēng)格也被稱作單路數(shù)據(jù)流網(wǎng)絡(luò)。這里的架構(gòu)約束是一個過濾器必須完全獨(dú)立與
11、其他的過濾器(零耦合),它不能與其他過濾器在其上行和下行數(shù)據(jù)流接口分享狀態(tài)、控制線程或標(biāo)識。Z語言為管道和過濾器風(fēng)格提供了廣泛的形式化描述管道和過濾器管道和過濾器管道和過濾器簡單性:過濾器之間零耦合,使得組件之間的劃分簡單。可重用性:只要匹配過濾器的輸入輸出,就可重復(fù)使用。可擴(kuò)展性:很容易在兩個過濾器中維護(hù)一個新過濾器。可進(jìn)化性:很容易的使用新的過濾器替代舊的過濾器。可配置性:可以自由的組合過濾器,從而實(shí)現(xiàn)新的需求。可察覺性:是否支持并發(fā)處理來判斷是否具有可察覺性。統(tǒng)一管道和過濾器Uniform Pipe and Filter,UPFUPF在PF風(fēng)格的基礎(chǔ)上,添加了一個約束,即所有過濾器必須具
12、有相同的接口。在Unix系統(tǒng)中的,字符輸入數(shù)據(jù)流(stdin)和字符輸出數(shù)據(jù)流(stdout,stderr)接口。簡單性:組件使用了統(tǒng)一的接口,實(shí)施了架構(gòu)元素通用性原則。可配置性:使用了統(tǒng)一的接口,修改已發(fā)布的組件更容易。可重用性:使用了通用組件接口,組件之間可以重復(fù)利用。可見性:架構(gòu)使用了通用組件接口,組件知道其他組件的接口。網(wǎng)絡(luò)性能:確定組件接口限制了數(shù)據(jù)的格式,可能會降低性能。數(shù)據(jù)流風(fēng)格風(fēng)格繼承網(wǎng)絡(luò)性能可覺察性網(wǎng)絡(luò)效率可伸縮性簡單性可進(jìn)化性可擴(kuò)展性可定制性可配置性可重用性可見性可移植性可靠性PF+UPFPF-+復(fù)制風(fēng)格復(fù)制倉庫緩存復(fù)制倉庫Replicated Repository,RR基
13、于復(fù)制倉庫風(fēng)格的系統(tǒng)通過利用多個進(jìn)程提供相同的服務(wù),這些分散的服務(wù)器交互為客戶端制造出只有一個集中的服務(wù)的幻覺。類似XMS的分布式文件系統(tǒng)類似CVS的遠(yuǎn)程版本控制系統(tǒng)倉庫風(fēng)格、以模型為中心倉庫風(fēng)格、以模型為中心復(fù)制倉庫可靠性:分散的服務(wù)器通過復(fù)制冗余或者恢復(fù)錯誤節(jié)點(diǎn)來保證服務(wù)的靠可性。可察覺性:通過減少處理正常請求的延遲,并通過有意的線下漫游來支持離線操作。可伸縮性:可以根據(jù)客戶端的請求和流量來調(diào)整倉庫的文件的分布,或者本地緩存數(shù)據(jù)。緩存Cache,$通常因?yàn)樵跐撛诘臄?shù)據(jù)集遠(yuǎn)遠(yuǎn)超出單個客戶端的容量的情況下。我們通過復(fù)制個別請求的結(jié)果,以便可以被后面的請求重用。復(fù)制可分為主動復(fù)制和被動復(fù)制,主動
14、復(fù)制是基于預(yù)測來預(yù)先獲取可緩存的數(shù)據(jù)項(xiàng)。緩存簡單性:不用執(zhí)行復(fù)制倉庫,而只用緩存少數(shù)的數(shù)據(jù)想,要簡單的多。網(wǎng)絡(luò)效率:使用緩存減少了網(wǎng)絡(luò)的訪問,當(dāng)然提高了網(wǎng)絡(luò)效率。可察覺性:因?yàn)榫彺娴膬?nèi)容少了,所以可察覺性降低了。復(fù)制風(fēng)格風(fēng)格繼承網(wǎng)絡(luò)性能可覺察性網(wǎng)絡(luò)效率可伸縮性簡單性可進(jìn)化性可擴(kuò)展性可定制性可配置性可重用性可見性可移植性可靠性RR+$RR+分層風(fēng)格客戶-服務(wù)器分層系統(tǒng)分層-客戶-服務(wù)器客戶-無狀態(tài)-服務(wù)器客戶-緩存-無狀態(tài)-服務(wù)器分層-客戶-緩存-無狀態(tài)-服務(wù)器遠(yuǎn)程會話遠(yuǎn)程數(shù)據(jù)訪問客戶-服務(wù)器Client-Server,CS使用客戶-服務(wù)器約束來分離關(guān)注點(diǎn)。客戶-服務(wù)器風(fēng)格在基于網(wǎng)絡(luò)的應(yīng)用的架構(gòu)
15、風(fēng)格中最為常見。服務(wù)器組件提供了一組服務(wù),并監(jiān)聽對這些服務(wù)的請求。客戶端組件通過一個連接器將請求發(fā)送到服務(wù)器,希望執(zhí)行一個服務(wù)。服務(wù)器可以拒絕這個請求,也可以執(zhí)行這個請求并將響應(yīng)發(fā)送回客戶端。客戶-服務(wù)器簡單性:因?yàn)榻M件之間分離出客戶端和服務(wù)端,使組件更加清晰簡單。可伸縮性:因?yàn)楣δ艿膶?shí)現(xiàn)分離到客戶端或者服務(wù)端,使其具有可伸縮性。可進(jìn)化性:在接口不變的情況下,服務(wù)端和客戶端可以自由的發(fā)布新的版本。客戶客戶-服務(wù)器服務(wù)器分層系統(tǒng)Layered System,LS一個分層系統(tǒng)是按照層次來組織的,每一層為在其之上的層提供服務(wù),并且使用在其之下的曾所提供的服務(wù)。分層系統(tǒng)通過對相鄰的外部層之外的所有層隱
16、藏內(nèi)部層,減少了跨越多層的耦合。硬件接口庫。分層通訊協(xié)議的處理,例如TCP/IP和OSI協(xié)議棧。分層系統(tǒng)分層系統(tǒng)分層系統(tǒng)可覺察性:層次增加,增加了處理的數(shù)據(jù)的開銷和延遲,降低了用戶可覺察的性能。可伸縮性:通過分層分離出不同層次組件,我們可以在組件之間分散處理能力,來提供可伸縮性。可進(jìn)化性:只向上層提供服務(wù),保證上層組件的正常運(yùn)行就可以修改,使其具有可進(jìn)化性。可重用性:只要有下層提供服務(wù),該層就可以重復(fù)使用,使其具有可重用性。可移植性:層次之間只依賴下層的接口服務(wù),這些增強(qiáng)了可移植性。分層-客戶-服務(wù)器Layered-Client-Server,LCS分層系統(tǒng)和客戶-服務(wù)器風(fēng)格結(jié)合就形成的風(fēng)格。
17、該風(fēng)格可以認(rèn)為在CS的基礎(chǔ)上添加了代理組建和網(wǎng)關(guān)組件。一個代理組件作為一個或多個客戶端組件的共享服務(wù)器,它接收請求并進(jìn)行可能的轉(zhuǎn)換后將其轉(zhuǎn)發(fā)給服務(wù)器。一個網(wǎng)關(guān)組件在客戶端或代理看來像是一個正常的服務(wù)器,但是事實(shí)上它將請求進(jìn)行可能的轉(zhuǎn)換后轉(zhuǎn)發(fā)給了它的內(nèi)部層服務(wù)器。這些額外的中間組件添加了很多個層,用來為系統(tǒng)添加諸如負(fù)載均衡和安全性檢查這樣的功能。分層分層-客戶客戶-服務(wù)器服務(wù)器分層-客戶-服務(wù)器簡單性:包含了CS的簡單性可伸縮性:包含了CS和LS的可伸縮性可進(jìn)化性:包含了CS和LS的可進(jìn)化性客戶-無狀態(tài)-服務(wù)器Client-Stateless-Server,CSS在客戶-服務(wù)器風(fēng)格的基礎(chǔ)上,添加
18、了約束,在服務(wù)器組件之上不允許有會話狀態(tài)。從客戶端發(fā)到服務(wù)器的每個請求必須包含理解請求所必須的全部信息,不能利用任何保存在服務(wù)器上的上下文,會話狀態(tài)全部保存在客戶端。客戶-無狀態(tài)-服務(wù)器可見性:監(jiān)視系統(tǒng)通過當(dāng)前消息就能確定狀態(tài)可靠性:在恢復(fù)的時(shí)候僅依賴當(dāng)前信息可伸縮性:釋放資源變的迅速簡單網(wǎng)絡(luò)性能:發(fā)送信息中包含重復(fù)信息客戶-緩存-無狀態(tài)-服務(wù)器Client-Cache-Stateless-Server,C$SS結(jié)合了客戶-無狀態(tài)-服務(wù)器風(fēng)格和緩存風(fēng)格,通過添加緩存組件。一個緩存在客戶端和服務(wù)器之間扮演一個仲裁者,早先請求的響應(yīng)能夠被重用,以響應(yīng)稍后的相同請求,如果將該請求轉(zhuǎn)發(fā)到服務(wù)器,得到的
19、響應(yīng)可能與緩存中已有的響應(yīng)相同。客戶-緩存-無狀態(tài)-服務(wù)器網(wǎng)絡(luò)效率:繼承了緩存風(fēng)格的網(wǎng)絡(luò)效率可覺察性:繼續(xù)了緩存風(fēng)格的可覺察性分層-客戶-緩存-無狀態(tài)-服務(wù)器Layered-Client-Cache-Stateless-Server,LC$SS在客戶-緩存-無狀態(tài)-服務(wù)器風(fēng)格的基礎(chǔ)上添加了分層風(fēng)格,具體可是添加代理和網(wǎng)關(guān)組件。使用此風(fēng)格的范例系統(tǒng)是Internet域名系統(tǒng)DNS。可察覺性:緩存風(fēng)格增加可察覺性,但是分層風(fēng)格有減低了可察覺性。遠(yuǎn)程會話Remote Session,RS是客戶-服務(wù)器風(fēng)格的一種變種,它試圖使客戶端組件的復(fù)雜性最小化或者使得它們的可重用性最大化。每個客戶端在服務(wù)器上啟
20、動一個會話,然后調(diào)用服務(wù)器的一系列的服務(wù),最后退出會話,應(yīng)用狀態(tài)被完全保存在服務(wù)器上。使用通用的客戶端(generic client)(telnet)使用模仿通用客戶端(FTP)遠(yuǎn)程會話簡單性:將會話集中在服務(wù)器端維護(hù),這樣更簡單網(wǎng)絡(luò)效率:不用每次傳遞會話相關(guān)信息可進(jìn)化性:服務(wù)端維護(hù)會話信息,客戶端改進(jìn)簡單可見性:監(jiān)視程序要通過多條數(shù)據(jù)確定服務(wù)器狀態(tài)可伸縮性:服務(wù)器上需要保存會話信息遠(yuǎn)程數(shù)據(jù)訪問Remote Data Access,RDA是客戶-服務(wù)器風(fēng)格的一種變種,它將應(yīng)用狀態(tài)分布在客戶端和服務(wù)器上。客戶端以一種標(biāo)準(zhǔn)的格式發(fā)送一個數(shù)據(jù)庫查詢請求到服務(wù)器,服務(wù)器分配一個工作空間并執(zhí)行這個查詢,
21、這可能會導(dǎo)致一個巨大的結(jié)果集。客戶端能夠在結(jié)果集上進(jìn)行進(jìn)一步的操作或者每次獲取結(jié)果的一部分。遠(yuǎn)程數(shù)據(jù)訪問可見性:通過使用一種標(biāo)準(zhǔn)的查詢語言來改善可見性。網(wǎng)絡(luò)效率:數(shù)據(jù)在服務(wù)器端多次處理再返回結(jié)果,節(jié)省了網(wǎng)絡(luò)傳輸?shù)某杀尽:唵涡裕嚎蛻舳吮仨毾穹?wù)器實(shí)現(xiàn)那樣理解相同的數(shù)據(jù)庫操作概念。可靠性:部分故障導(dǎo)致服務(wù)器工作空間處于未知狀態(tài)。可伸縮性:在服務(wù)器和客戶端都保存可上下文。分層風(fēng)格風(fēng)格繼承網(wǎng)絡(luò)性能可覺察性網(wǎng)絡(luò)效率可伸縮性簡單性可進(jìn)化性可擴(kuò)展性可定制性可配置性可重用性可見性可移植性可靠性CS+LS-+LCSCS+LS-+CSSCS-+C$SSCSS+$-+LC$SSLCS+C$SS-+RSCS+-+-R
22、DACS+-+-移動代碼風(fēng)格虛擬機(jī)風(fēng)格遠(yuǎn)程求值風(fēng)格按需代碼風(fēng)格分層-按需代碼-客戶-緩存-無狀態(tài)-服務(wù)器移動代碼移動代碼風(fēng)格移動代碼風(fēng)格使用移動性來動態(tài)地改變在處理過程與數(shù)據(jù)源或結(jié)果目的地之間的距離。為了考慮不同組件的位置,他們在架構(gòu)層面引入了一種站點(diǎn)抽象,作為主動配置的一部分。當(dāng)與包括了網(wǎng)絡(luò)通信的交互的開銷作比較時(shí),共享同一位置的組建之間的交互開銷的成本被認(rèn)為是可以忽略不計(jì)的。通過改變自己的位置,一個組件可以改善接近性和它的交互的質(zhì)量,減少交互開銷從而提高效率和用戶可覺察的性能。在所有的移動代碼風(fēng)格中,一個數(shù)據(jù)成員被動態(tài)地轉(zhuǎn)換為一個組件。虛擬機(jī)風(fēng)格Virtual Machine,VM代碼必須
23、以某種方式來執(zhí)行,首選的方式是在一個滿足了安全性和可靠性關(guān)注點(diǎn)的受控環(huán)境中執(zhí)行,而這正式虛擬機(jī)風(fēng)格。所有移動代碼風(fēng)格的基礎(chǔ)是虛擬機(jī)風(fēng)格。腳本語言的引擎可以作為虛擬機(jī),包括像Perl這樣的通用語言和想PostScript這樣的與特定任務(wù)相關(guān)的語言。簡單性:對求值環(huán)境進(jìn)行管理,又分離了指令和實(shí)現(xiàn)。可見性:因?yàn)閳?zhí)行環(huán)境不知道指令,所以降低了可見性。可擴(kuò)展性:因?yàn)榉蛛x了指令和實(shí)現(xiàn),可以隨時(shí)添加新指令。可移植性:只有要虛擬機(jī)環(huán)境,指令可以在任何地方執(zhí)行。遠(yuǎn)程求值風(fēng)格Remote Evaluation,REV結(jié)合了VM和CS風(fēng)格,一個客戶端組件必須要知道如何來執(zhí)行一個服務(wù),但缺少執(zhí)行此服務(wù)所必需的資源,這
24、些資源恰好位于一個遠(yuǎn)程站點(diǎn)上。客戶端將如何執(zhí)行服務(wù)的代碼發(fā)送給遠(yuǎn)程站點(diǎn)上的一個服務(wù)器組件,服務(wù)器組件使用可用的資源來執(zhí)行代碼,然后將執(zhí)行結(jié)果發(fā)送回客戶端。遠(yuǎn)程求值風(fēng)格簡單性:管理求值環(huán)境管理和靜態(tài)求值環(huán)境。網(wǎng)絡(luò)效率:將資源交由服務(wù)器執(zhí)行返回結(jié)果。可定制性:可以臨時(shí)修改服務(wù)器的執(zhí)行代碼。可靠性:對執(zhí)行環(huán)境的的管理,可能出現(xiàn)問題。可伸縮性:執(zhí)行的過程都是在服務(wù)器端執(zhí)行,不能將執(zhí)行分配到其他組件。按需代碼風(fēng)格Code on Demand,COD結(jié)合了VM和CS風(fēng)格,一個客戶端組件知道如何訪問一組資源,但不知道如何處理它們。它向一個遠(yuǎn)程服務(wù)器發(fā)送對于如何處理資源的代碼的請求,接受這些代碼,然后在本地執(zhí)
25、行這些代碼。網(wǎng)絡(luò)效率:下載執(zhí)行代碼到本地。可察覺性:本地執(zhí)行代碼。可伸縮性:客戶端執(zhí)行代碼,分擔(dān)服務(wù)器壓力。可擴(kuò)展性:在客戶端根據(jù)服務(wù)器提供代碼添加新功能。可配置性:在部署后,可改變組件的執(zhí)行位置。分層-按需代碼-客戶-緩存-無狀態(tài)-服務(wù)器Layered-Code-on-Demand-Client-Cache-Stateless-Server,LCODC$SS在LC$SS風(fēng)格基礎(chǔ)上,結(jié)合COD風(fēng)格,將代碼看作是另一種數(shù)據(jù)元素。HotJava Web瀏覽器,允許applet和協(xié)議擴(kuò)展作為有類型的媒體來下載。同時(shí)集成了LC$SS和COD兩種風(fēng)格的屬性。移動代碼Mobile Agent,MA結(jié)合了遠(yuǎn)
26、程求值和按需代碼兩種風(fēng)格。在移動代碼風(fēng)格中,一個完整的計(jì)算組件,與它的狀態(tài)、必需的代碼、執(zhí)行任務(wù)所需要的數(shù)據(jù)一起被移動到遠(yuǎn)程站點(diǎn)。可靠性:因?yàn)槊看翁幚硇畔⒍际窃趩我坏攸c(diǎn),不會對其他地點(diǎn)造成影響。移動代碼風(fēng)格風(fēng)格繼承網(wǎng)絡(luò)性能可覺察性網(wǎng)絡(luò)效率可伸縮性簡單性可進(jìn)化性可擴(kuò)展性可定制性可配置性可重用性可見性可移植性可靠性VM+-+REVCS+VM+-+-+CODCS+VM+-LCODC$SSLC$SS+COD-+4+MAREV+COD+-+點(diǎn)對點(diǎn)風(fēng)格基于事件的風(fēng)格C2風(fēng)格分布式對象風(fēng)格被代理的分布式對象風(fēng)格基于事件的風(fēng)格Event-based Integration,EBI它通過除去了解連接器接口的標(biāo)識
27、的必要性,降低了組件之間的耦合。此風(fēng)格不是直接調(diào)用另一個組件,而是一個組件能夠發(fā)布一個或多個事件。在事件發(fā)布后,系統(tǒng)中的其他組件能夠注冊對于某些事件類型的興趣,由系統(tǒng)本身調(diào)用所有已注冊的組件。基于事件的風(fēng)格基于事件的風(fēng)格基于事件的風(fēng)格簡單性:除去了連接器接口的標(biāo)識必要性同時(shí)對組件接耦。網(wǎng)絡(luò)效率:使用數(shù)據(jù)監(jiān)視,而不需要輪尋式交互。可進(jìn)化性:允許組件的更新而不影響其他組件。可擴(kuò)展性:通過添加事件監(jiān)聽來添加新的組件。可配置性:在部署后,不動事件總線,很容易修改事件的監(jiān)聽。可重用性:可以通用的事件接口和集成機(jī)制來重復(fù)利用組件。可見性:通過總線關(guān)聯(lián),不知道監(jiān)聽事件的組件。可靠性:組件之間的相互影響不可控。可伸縮性:組件使用的是總線監(jiān)聽,會導(dǎo)致可伸縮性問題。C2風(fēng)格結(jié)合了EBI風(fēng)格和LCS風(fēng)格它通過將基于事件的集成風(fēng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度浙江省二級造價(jià)工程師之建設(shè)工程造價(jià)管理基礎(chǔ)知識能力提升試卷B卷附答案
- 幼兒園蒙氏培訓(xùn)
- 車間員工的工作態(tài)度培訓(xùn)
- DB43-T 2860-2023 蕙蘭設(shè)施栽培技術(shù)規(guī)程
- 腫瘤外科胃癌護(hù)理查房
- 常見人格障礙病人的護(hù)理
- 北師大版數(shù)學(xué)五年級下冊期末情境卷試題(B)卷(含解析)
- 幼兒園小班社會教案我們一起玩
- 地質(zhì)集團(tuán)面試題及答案
- 初級統(tǒng)計(jì)考試題及答案
- 湖北省部分學(xué)校2023-2024學(xué)年高二下學(xué)期期末考試地理試題
- 基于大數(shù)據(jù)的公路運(yùn)輸碳排放評估與控制
- 敘事護(hù)理學(xué)智慧樹知到期末考試答案章節(jié)答案2024年中國人民解放軍海軍軍醫(yī)大學(xué)
- 工業(yè)機(jī)器人系統(tǒng)操作員國家職業(yè)技能考核標(biāo)準(zhǔn)(2023年版)
- 上海學(xué)前教育學(xué)院附屬青浦第二實(shí)驗(yàn)幼兒園新生入園登記
- 卡前列素氨丁三醇在產(chǎn)后出血的的應(yīng)用課件
- 固廢危廢培訓(xùn)課件
- 水庫安保服務(wù)方案
- 一例ANCA相關(guān)性血管炎患者的護(hù)理查房
- 《外科微創(chuàng)技術(shù)》課件
- 如何建立與客戶良好的關(guān)系
評論
0/150
提交評論