版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、中間件領(lǐng)域建模案例研究要點(diǎn)瀏覽:特征模型有組織地描述了一個(gè)特定領(lǐng)域的軟件所具有的特征,是一種便于軟件復(fù)用的需求規(guī)約工具。本節(jié)將利用特征模型刻畫(huà)軟件中間件的主要特征,為中間件的功能劃分奠定基礎(chǔ)。不同的建模人員、從不同的角度得出的特征模型不盡相同,本文給出的特征模型反映了中間件用戶(即基于中間件分布應(yīng)用的開(kāi)發(fā)和管理人員)在使用中間件時(shí)關(guān)心的、也是可見(jiàn)的功能或質(zhì)量,并不排斥其它形式的特征模型。此外,該特征模型側(cè)重于主流中間件的主要特征,不是中間件特征的全集。同時(shí),該特征模型選擇性地細(xì)化了一部分特征,而不是將所有特征都進(jìn)行細(xì)化。具體而言,您可以了解到:n 中間件封裝的共性機(jī)制解決了系統(tǒng)的哪些需求。n
2、不同中間件功能在需求層次的關(guān)系。 1 中間件特征模型概覽圖 Error! No text of specified style in document.1 軟件中間件特征模型概覽如圖 Error! No text of specified style in document.1所示,現(xiàn)有的主流分布計(jì)算中間件具備協(xié)同(Coordination)、構(gòu)件化(Componentization)、可靠性(Reliability)、安全性(Security)、持久性(Persistency)、透明性(Transparency)、伸縮性(Scalability)、生命周期(LifeCycle)等主要特征。其
3、中,協(xié)同是中間件提供的主要功能,其它特征則描述了中間件非功能屬性。以CORBA為例,協(xié)同特征往往由GIOP/IIOP互操作協(xié)議、命名服務(wù)、接口定義語(yǔ)言和編譯器提供,非功能特征往往由各種服務(wù)提供,如安全服務(wù)、事務(wù)服務(wù)、容錯(cuò)服務(wù)、持久服務(wù)、生命周期服務(wù)。隨著中間件對(duì)基于構(gòu)件的軟件開(kāi)發(fā)的支持,構(gòu)件化成為中間件的主要特征之一。中間件對(duì)構(gòu)件化特征的支持主要表現(xiàn)為三個(gè)方面:首先是提供部署特征,因?yàn)闃?gòu)件與對(duì)象的主要區(qū)別之一在于構(gòu)件是一個(gè)可獨(dú)立部署的單元Szyperski 97Bachman 00;其次,增強(qiáng)了生命周期管理特征,尤其是上層應(yīng)用單元的裝載、實(shí)例化、卸載等工作由中間件而不是上層應(yīng)用完成;其三,增強(qiáng)
4、了透明性特征,使得應(yīng)用程序代碼無(wú)需考慮如何使用中間件提供的安全、事務(wù)、持久、容錯(cuò)等特征。例如,CORBA和RMI應(yīng)用程序往往需要將整個(gè)實(shí)現(xiàn)打包在一起發(fā)布,應(yīng)用實(shí)現(xiàn)中往往包含與生命周期管理和安全、事務(wù)、持久等特征相關(guān)的代碼,而CCM和EJB應(yīng)用可拆分成多個(gè)包單獨(dú)發(fā)布,程序中也沒(méi)有那些與中間件相關(guān)的代碼。在實(shí)現(xiàn)上,中間件對(duì)構(gòu)件化特征的支持往往通過(guò)容器實(shí)現(xiàn),如CCM容器和EJB容器。容器為上層應(yīng)用的構(gòu)件提供了部署和運(yùn)行空間,自動(dòng)管理構(gòu)件的生命周期,并協(xié)助上層應(yīng)用合理使用互操作、安全、事務(wù)、持久等中間件提供的各種特征。2 協(xié)同特征中間件的最主要特征就是協(xié)調(diào)散布在多個(gè)主機(jī)上的構(gòu)件以完成特定目標(biāo)。目前的主
5、流中間件致力于兩個(gè)構(gòu)件之間基于接口的協(xié)同,而新型中間件,如Web Services,則開(kāi)始關(guān)注多個(gè)構(gòu)件之間、基于流程的協(xié)同。如圖 Error! No text of specified style in document.1所示,中間件的協(xié)同特征主要包括互操作(Interoperability)、同步(Synchronization)與并發(fā)(Concurrency)三個(gè)子特征。其中,互操作使能分布環(huán)境下構(gòu)件之間的交互,同步負(fù)責(zé)協(xié)調(diào)交互構(gòu)件的時(shí)序關(guān)系,而并發(fā)則側(cè)重于構(gòu)件交互過(guò)程中的資源管理。互操作是中間件的基本特征,為了使能分布構(gòu)件之間的交互,中間件必須提供合約(Contract)、協(xié)議(Pro
6、tocol)和綁定(Binding)三種互操作子特征,如圖 22所示。圖 Error! No text of specified style in document.2軟件中間件特征模型互操作及其子特征合約是指構(gòu)件對(duì)外提供服務(wù)的承諾以及這些服務(wù)正常使用的條件。其中,接口規(guī)約(Interface Specification)是服務(wù)功能的文法描述,定義了服務(wù)的名稱(chēng)、方法名、輸入輸出參數(shù)等,如CORBA IDL;非功能約束(Non-functional Constraint)則描述了服務(wù)接口的質(zhì)量屬性,如安全、事務(wù)等,如CORBA IDL中的Context;協(xié)奏(Orchestration)則規(guī)定了
7、接口在使用過(guò)程中一些隱含的次序關(guān)系。構(gòu)件內(nèi)部協(xié)奏(Intra-Component Orchestration)是指一個(gè)構(gòu)件的接口方法之間存在一定的調(diào)用次序,違背這些次序可能導(dǎo)致調(diào)用失敗,例如,要調(diào)用某構(gòu)件的方法B,必須首先調(diào)用該構(gòu)件的方法A,這是EJB構(gòu)件調(diào)用的典型場(chǎng)景,即,調(diào)用正常的業(yè)務(wù)方法之前必需先調(diào)用Home接口中的實(shí)例創(chuàng)建方法SUN 01a。構(gòu)件間協(xié)奏(Inter-Component Orchestration)是指使用系統(tǒng)某個(gè)特定功能時(shí),需要多個(gè)構(gòu)件按照一定的次序共同完成,如必須依次調(diào)用構(gòu)件M的方法A、構(gòu)件N的方法B、構(gòu)件P的方法C才能實(shí)現(xiàn)系統(tǒng)的某個(gè)功能。值得一提的是,傳統(tǒng)中間件,如
8、CORBA、RMI、COM,并不提供協(xié)奏特征,構(gòu)件內(nèi)部以及構(gòu)件之間的協(xié)奏關(guān)系由上層應(yīng)用構(gòu)件負(fù)責(zé)。而目前的中間件熱點(diǎn)之一Web Services既考慮顯式定義構(gòu)件內(nèi)部協(xié)奏(如Web Services Choreography Language Austin 03),又重點(diǎn)解決構(gòu)件間協(xié)奏(如Business Process Execution LanguageAndrews 03),這意味著協(xié)奏正式成為中間件的主要特征之一。協(xié)議(Protocol)是指交互雙方必須共同遵循的一組規(guī)則,典型的互操作協(xié)議包括CORBA的GIOP/IIOP、RMI的JRMP以及DCOM的RPC。互操作協(xié)議主要定義交互過(guò)程
9、中使用的消息格式(Message Format)、編解碼算法(Mashalling)以及網(wǎng)絡(luò)傳輸協(xié)議(Networking)。綁定是指構(gòu)件必須首先與中間件建立聯(lián)系,然后通過(guò)中間件與參加交互的其它構(gòu)件建立聯(lián)系,最后才能開(kāi)始交互??蛻舳藰?gòu)件與中間件的關(guān)聯(lián)通過(guò)客戶樁綁定(Stub Binding)實(shí)現(xiàn),服務(wù)端構(gòu)件與中間件的關(guān)聯(lián)通過(guò)服務(wù)骨架綁定(Skeleton Binding)實(shí)現(xiàn)。構(gòu)件之間的關(guān)聯(lián)則是通過(guò)命名綁定(Naming Binding)實(shí)現(xiàn)的。命名綁定有包括命名的格式(Naming Format)、命名的發(fā)布(Naming Publish)以及命名的查詢(Naming Discovery)三
10、個(gè)子特征。盡管中間件的初衷就是盡量使得分布應(yīng)用的編寫(xiě)與本地應(yīng)用類(lèi)似,開(kāi)發(fā)人員仍不得不面對(duì)分布應(yīng)用的一些特殊情況。同步就是分布應(yīng)用的主要特點(diǎn)之一,也是中間件用戶在開(kāi)發(fā)分布應(yīng)用過(guò)程中不得不關(guān)注的中間件主要特征之一。如圖 23所示,同步又可細(xì)分為點(diǎn)對(duì)點(diǎn)同步、點(diǎn)對(duì)點(diǎn)異步和分組:圖 Error! No text of specified style in document.3 軟件中間件特征模型同步及其子特征點(diǎn)對(duì)點(diǎn)同步(Peer-to-Peer Sync)協(xié)調(diào)分布環(huán)境中的兩個(gè)構(gòu)件,要求這兩個(gè)構(gòu)件必須同時(shí)可用。其中,簡(jiǎn)單同步(Simple Sync)是指客戶構(gòu)件發(fā)出請(qǐng)求后就阻塞等待直至服務(wù)構(gòu)件完成處理并返
11、回應(yīng)答后才繼續(xù)執(zhí)行;延遲同步(Deferred Sync)則是指客戶構(gòu)件發(fā)出請(qǐng)求后并不阻塞等待服務(wù)構(gòu)件完成處理即可繼續(xù)執(zhí)行,在隨后的某個(gè)時(shí)刻客戶構(gòu)件主動(dòng)查詢是否產(chǎn)生應(yīng)答;單向同步(Oneway Sync)則是指服務(wù)構(gòu)件不會(huì)返回任何結(jié)果。單向同步常常被誤認(rèn)為異步協(xié)調(diào),但其實(shí)仍要求服務(wù)構(gòu)件在客戶構(gòu)件發(fā)出請(qǐng)求時(shí)可用。點(diǎn)對(duì)點(diǎn)異步(Peer-to-Peer Async)也負(fù)責(zé)協(xié)調(diào)分布環(huán)境中的兩個(gè)構(gòu)件,但并不要求這兩個(gè)構(gòu)件同時(shí)可用。其中,回調(diào)異步(Callback Async)是指客戶構(gòu)件發(fā)送請(qǐng)求后繼續(xù)執(zhí)行,隨后由服務(wù)構(gòu)件主動(dòng)通知客戶構(gòu)件處理應(yīng)答;詢問(wèn)異步(Poll Async)則是指客戶構(gòu)件在請(qǐng)求發(fā)送后
12、,會(huì)立即收到服務(wù)構(gòu)件的一個(gè)即時(shí)應(yīng)答,對(duì)預(yù)期的處理結(jié)果進(jìn)行說(shuō)明,客戶構(gòu)件可以根據(jù)該即時(shí)應(yīng)答決定是否阻塞等待返回結(jié)果,或者決定何時(shí)查詢返回結(jié)果。分組(Grouping)協(xié)調(diào)分布環(huán)境中兩個(gè)以上的構(gòu)件,一般不要求所有構(gòu)件同時(shí)可用。其中,發(fā)布/訂閱模式的分組(Publish/Subscribe)要求參與同步的構(gòu)件主動(dòng)注冊(cè)或注銷(xiāo),如典型的事件服務(wù)、消息服務(wù)或通告服務(wù)均提供該特征。而隱式分組(Implicit Grouping)則無(wú)需參與方主動(dòng)注冊(cè)或注銷(xiāo),這些管理工作由額外的機(jī)制負(fù)責(zé),如典型的集群以及CORBA容錯(cuò)服務(wù)均支持該特征。在分布環(huán)境下,同一個(gè)構(gòu)件可能要同時(shí)為多個(gè)客戶服務(wù),為此,需要并發(fā)特征以有效利
13、用有限的資源。并發(fā)主要考慮在服務(wù)器端對(duì)線程(Servant Thread)和網(wǎng)絡(luò)連接(Access Point)兩種資源的管理,如圖 24所示。圖 Error! No text of specified style in document.4軟件中間件特征模型并發(fā)及其子特征對(duì)于一個(gè)服務(wù)構(gòu)件(或者駐留多個(gè)構(gòu)件的服務(wù)端點(diǎn))而言,可為每個(gè)請(qǐng)求分配一個(gè)線程(PerRequest Threading),或者為每個(gè)客戶分配一個(gè)線程(PerClient Threading,該客戶的所有請(qǐng)求均由同一個(gè)線程串行處理),或者建立一個(gè)線程池(Pool Threading)為所有請(qǐng)求分配有限的線程。線程池并發(fā)包含關(guān)閉
14、策略(Shutdown Policy)和阻塞策略(Block Policy)兩個(gè)子特征。線程池關(guān)閉意味著不再為請(qǐng)求分配線程,對(duì)于已經(jīng)分配的線程,或者等待它們處理完畢(Shutdown After Processing),或者立即中斷這些線程(Shutdown At Once)。當(dāng)線程池中所有線程均處于執(zhí)行狀態(tài),沒(méi)有多余線程分配給新的請(qǐng)求時(shí),線程池處于阻塞狀態(tài)。此時(shí)可將線程池唯一的調(diào)度線程分配給請(qǐng)求(Run When Blocked),或者等待某個(gè)線程處理完畢后再分配給新的請(qǐng)求(Wait When Blocked),或者直接拒絕新的請(qǐng)求(Discard When Blocked),或者拒絕最老的
15、等待請(qǐng)求(Discard Oldest When Blocked),或者關(guān)閉整個(gè)線程池(Abort When Blocked)。一個(gè)服務(wù)構(gòu)件往往具備一個(gè)訪問(wèn)點(diǎn),允許客戶在分布環(huán)境下訪問(wèn)該構(gòu)件,訪問(wèn)點(diǎn)可進(jìn)行四種網(wǎng)絡(luò)連接分配策略,分別是為每個(gè)請(qǐng)求(PerRequest Connection)、每個(gè)客戶(PerClient Connection)、每個(gè)客戶端(PerEndpoint Connection)一個(gè)客戶駐留在一個(gè)客戶端,一個(gè)客戶端可同時(shí)駐留多個(gè)客戶)分配一個(gè)連接,或者建立一個(gè)連接池(Pool Connection),進(jìn)行與線程池類(lèi)似的管理。3 可靠性特征可靠性是任何實(shí)用的軟件系統(tǒng)必須考慮的
16、特征,如圖 25所示,中間件提供的可靠性特征包括三個(gè)方面:圖 Error! No text of specified style in document.5 軟件中間件特征模型可靠性及其子特征請(qǐng)求可靠性(Reliable Requesting)是指構(gòu)件之間的互操作和同步兩個(gè)特征能夠持續(xù)正確運(yùn)行的概率,可分為點(diǎn)到點(diǎn)請(qǐng)求的可靠性(Peer-to-Peer Reliable Requesting)和分組請(qǐng)求的可靠性(Grouped Reliable Requesting)。前者往往依賴四種子特征實(shí)現(xiàn),包括最佳努力請(qǐng)求(best-effort Requesting,不需要任何可靠性機(jī)制)、最多一次請(qǐng)求
17、(At-most-once Requesting)、至少一次請(qǐng)求(At-least-once Requesting)、正好一次請(qǐng)求(Exactly-once Requesting)。而分組請(qǐng)求的可靠性可由K可靠(k-reliability,保證至少k個(gè)構(gòu)件收到消息)、超時(shí)(time-outs,保證在指定時(shí)間后不傳輸消息)、全序(totally-ordered,保證某個(gè)組請(qǐng)求肯定在前一個(gè)組請(qǐng)求收到之后才被收到)等子特征實(shí)現(xiàn)。事務(wù)性特征(Transaction)適用于多個(gè)請(qǐng)求的可靠性,其ACID(Atomic, Consistency preserving, Isolated, Durable)原
18、則保證一系列的請(qǐng)求或者全部得到處理、或者任何請(qǐng)求都沒(méi)有得到處理,即,每一次事務(wù)都是一致的。事務(wù)特征又可分為平滑事務(wù)(Flat Transaction)和嵌套事務(wù)(Nested Transaction)兩個(gè)子特征,兩者的主要區(qū)別在于后者允許在一個(gè)事務(wù)中包含其它事務(wù)。復(fù)制(Replication)是實(shí)現(xiàn)分布系統(tǒng)可靠性的主要機(jī)制之一,也是用戶可見(jiàn)的特征。其中,主動(dòng)復(fù)制(Active Replication)是指兩個(gè)或多個(gè)副本同時(shí)運(yùn)行,每個(gè)副本都會(huì)接收客戶請(qǐng)求、執(zhí)行操作、修改狀態(tài)、并發(fā)送應(yīng)答。當(dāng)有副本失效時(shí),其余副本仍繼續(xù)正常工作。被動(dòng)復(fù)制(Passive Replication)是指兩個(gè)或多個(gè)副本同
19、時(shí)運(yùn)行,但任意時(shí)刻有且僅有一個(gè)副本接收客戶請(qǐng)求、執(zhí)行操作、修改狀態(tài)、并發(fā)送應(yīng)答。4 其它特征伸縮性是指系統(tǒng)適應(yīng)未來(lái)增長(zhǎng)負(fù)載的能力。集中式系統(tǒng)中的系統(tǒng)負(fù)載只能在主機(jī)允許的范圍內(nèi)增長(zhǎng),而分布系統(tǒng)增長(zhǎng)的負(fù)載可以分散到多個(gè)主機(jī)上。構(gòu)造可伸縮分布系統(tǒng)的關(guān)鍵是在不修改系統(tǒng)體系或構(gòu)件的設(shè)計(jì)與代碼的前提下改變構(gòu)件在多個(gè)主機(jī)的分布。負(fù)責(zé)構(gòu)件分布和交互的中間件需要提供相應(yīng)的支持。目前伸縮性較優(yōu)的中間件大多基于分組協(xié)調(diào)特征來(lái)實(shí)現(xiàn)。安全性是開(kāi)發(fā)分布系統(tǒng),尤其是Internet環(huán)境中的軟件系統(tǒng),需要考慮的主要問(wèn)題之一,也是中間件技術(shù)與產(chǎn)品面臨的主要挑戰(zhàn)之一。現(xiàn)有中間件在安全方面進(jìn)展不理想,如CORBA龐大的安全規(guī)范實(shí)用程度很低,而Web Services的安全也在探索中。目前中間件大多提供簡(jiǎn)單的訪問(wèn)控制,實(shí)際應(yīng)用的安全往往采用中間件以外的其它機(jī)制,如在物理網(wǎng)絡(luò)層采用路由器認(rèn)證或虛擬專(zhuān)網(wǎng),在主機(jī)層采用防火墻或操作系統(tǒng)的安全機(jī)制,應(yīng)用層往往利用數(shù)據(jù)庫(kù)的安全機(jī)制。持久性則是中間件對(duì)上層應(yīng)用屏蔽后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)而產(chǎn)生的特征。對(duì)于目前主流的分布對(duì)象中間件用戶而言,持久信息不再是數(shù)據(jù)庫(kù)中的存儲(chǔ)的數(shù)據(jù),而是持久對(duì)象具有的持久屬性,如J2EE支持的實(shí)體EJB。生命周期是指中間件對(duì)上層應(yīng)用構(gòu)件生命周期的管理,從中間件用戶角度而言,生命周期特征表現(xiàn)為構(gòu)件實(shí)例的生命周期狀態(tài)。不同的中間件支持的構(gòu)件生命周期狀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保險(xiǎn)代理居間合同委托書(shū)
- 服裝企業(yè)辦公大廈居間協(xié)議
- 液態(tài)化學(xué)試劑配送合同
- 2025年度工業(yè)控制系統(tǒng)安全工程師勞動(dòng)合同
- 娛樂(lè)場(chǎng)所泔水運(yùn)輸合作協(xié)議
- 家具城配送服務(wù)合同模板
- 煤矸石清運(yùn)施工方案
- 綿陽(yáng)市道路施工方案
- 完善教育評(píng)價(jià)體系:深化改革的策略與路徑探索
- 初中藏文版數(shù)學(xué)試卷
- 公司安全生產(chǎn)事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)工作制度
- H3CNE認(rèn)證考試題庫(kù)官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(cè)(適合3-13歲兒童)
- 公司章程范本(完整版)
- 廠房委托經(jīng)營(yíng)管理合同范本
- 《保險(xiǎn)科技》課件-第二章 大數(shù)據(jù)及其在保險(xiǎn)領(lǐng)域中的應(yīng)用
- 父母贈(zèng)與田地協(xié)議書(shū)范本
- 中藥甘草課件
- 解讀國(guó)有企業(yè)管理人員處分條例(2024)課件(全文)
- 煙草企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化規(guī)范1-200題附有答案
- DL∕T 1870-2018 電力系統(tǒng)網(wǎng)源協(xié)調(diào)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論