軟件設(shè)計(jì)與體系結(jié)構(gòu) 秦航 11_第1頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 秦航 11_第2頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 秦航 11_第3頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 秦航 11_第4頁(yè)
軟件設(shè)計(jì)與體系結(jié)構(gòu) 秦航 11_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第11章基于(jīyú)分步構(gòu)件的

體系結(jié)構(gòu)

1清華大學(xué)出版社共三十八頁(yè)內(nèi)容提要(nèirónɡtíyào)11.1 EJB分步構(gòu)件框架11.1.1 EJB技術(shù) 11.1.2 EJB的規(guī)范介紹 11.1.3 EJB的體系結(jié)構(gòu)11.2 DCOM分布構(gòu)件框架11.2.1 DCOM的使用11.2.2 DCOM的特點(diǎn)11.2.3 DCOM的靈活配置(pèizhì)與擴(kuò)展機(jī)制11.2.4 在應(yīng)用間共享連接管理11.2.5 DCOM的安全性設(shè)置2清華大學(xué)出版社共三十八頁(yè)11.3 COBRA分布構(gòu)件(gòujiàn)框架

11.3.1 COBRA基本原理11.3.2 CORBA體系結(jié)構(gòu)11.3.3 CORBA規(guī)范11.3.4 CORBA產(chǎn)品概述11.3.5 CORBA為我們帶來(lái)什么11.3.6 未解決的問(wèn)題11.4 本章小結(jié)3清華大學(xué)出版社共三十八頁(yè)在互聯(lián)網(wǎng)時(shí)代,分布式應(yīng)用(yìngyòng)越來(lái)越普遍與重要,如何高效地開(kāi)發(fā)這類系統(tǒng)成為我們必須應(yīng)對(duì)的課題。為了將構(gòu)件思想應(yīng)用(yìngyòng)于分布式系統(tǒng)的開(kāi)發(fā),業(yè)界提出了一些基于分布構(gòu)件的解決方案。按照這些方案,整個(gè)分布式系統(tǒng)的體系結(jié)構(gòu)大致如圖11-1所示。圖11-1基于分布構(gòu)件(gòujiàn)的系統(tǒng)體系結(jié)構(gòu)4清華大學(xué)出版社共三十八頁(yè)分布構(gòu)件與分布構(gòu)件框架相互之間緊密配合,在上述體系結(jié)構(gòu)中占據(jù)主體地位。描述了分布構(gòu)件框架,實(shí)際上也就說(shuō)清楚了它與分布構(gòu)件之間的接口,說(shuō)清楚了分布構(gòu)件的外在特征。對(duì)于上述體系結(jié)構(gòu),工業(yè)界有幾個(gè)主要的實(shí)現(xiàn)方案,它們分別是由SUN公司(已被Oracle收購(gòu))主導(dǎo)提出的EJB分布構(gòu)件框架、由微軟公司提出的DCOM分布構(gòu)件框架和由OMG組織提出的CORBA分布構(gòu)件框架,本章(běnzhānɡ)將對(duì)它們分別進(jìn)行系統(tǒng)介紹。5清華大學(xué)出版社共三十八頁(yè)11.1 EJB分布(fēnbù)構(gòu)件框架

11.1.1EJB技術(shù)(jìshù)EJB規(guī)范是SUN公司于1997年12月發(fā)布的JavaBean構(gòu)件模型。一個(gè)EJB是特定的在服務(wù)器上運(yùn)行的JavaBean,并且EJB能在可視化的工具下裝配成新的應(yīng)用。EJB應(yīng)用程序只能用Java語(yǔ)言編寫,且必須使用EJBAPI。編寫良好的EJB應(yīng)用程序無(wú)須修改任何源代碼就可以在J2EE認(rèn)證的應(yīng)用服務(wù)器之間移植和互操作。EJB是一種基于構(gòu)件的開(kāi)發(fā)模型,它是Java服務(wù)器端服務(wù)框架的規(guī)范。EJB詳細(xì)地定義了一個(gè)可以方便部署Java構(gòu)件的服務(wù)框架模型,用于創(chuàng)建可伸縮、多層次、跨平臺(tái)、分布式的應(yīng)用,并可創(chuàng)建具有動(dòng)態(tài)擴(kuò)展性的服務(wù)器端的應(yīng)用。6清華大學(xué)出版社共三十八頁(yè)11.1.2 EJB的規(guī)范(guīfàn)介紹

圖11-2EJB容器(róngqì)示意圖7清華大學(xué)出版社共三十八頁(yè)EJB編程模塊向bean開(kāi)發(fā)人員和EJB服務(wù)器供應(yīng)商提供了一組契約,這組契約,約定了開(kāi)發(fā)的公共平臺(tái)。這些契約的目標(biāo)是在支持一組豐富功能性的同時(shí)能夠確保供應(yīng)商之間的可移植性。容器不允許客戶機(jī)應(yīng)用程序直接訪問(wèn)EnterpriseBean。當(dāng)客戶機(jī)應(yīng)用程序調(diào)用EnterpriseBean上的遠(yuǎn)程方法時(shí),容器首先攔截調(diào)用,以確保持續(xù)、事務(wù)和安全性都正確應(yīng)用于客戶機(jī)對(duì)bean執(zhí)行的每一個(gè)操作。容器自動(dòng)為bean管理安全性、事務(wù)和持續(xù),于是bean開(kāi)發(fā)人員不必將這種類型的邏輯寫入bean代碼本身中。EnterpriseBean開(kāi)發(fā)人員可以將精力集中于封裝商業(yè)(shāngyè)規(guī)則,而容器處理其他一切。8清華大學(xué)出版社共三十八頁(yè)

EnterpriseBean依賴容器來(lái)獲取它的需求。如果EnterpriseBean需要訪問(wèn)JDBC連接或另一個(gè)EnterpriseBean,那么它需要利用容器來(lái)完成此項(xiàng)操作。如果EnterpriseBean需要訪問(wèn)調(diào)用者的身份、獲取它自身的引用或訪問(wèn)特性,那么它需要利用容器來(lái)完成這些操作。EnterpriseBean通過(guò)以下三種(sānzhǒnɡ)機(jī)制之一與容器交互:(1)回調(diào)方法、(2)EJBContext接口或(3)JNDI9清華大學(xué)出版社共三十八頁(yè)11.1.3 EJB的體系結(jié)構(gòu)

1. EJB的軟構(gòu)件模型軟構(gòu)件模型的思想,是創(chuàng)建可重用的構(gòu)件并將其組合到容器中,以得到新的應(yīng)用系統(tǒng)。構(gòu)件模型定義了構(gòu)件的基本體系結(jié)構(gòu)、構(gòu)件界面的結(jié)構(gòu)與其他構(gòu)件及容器相互作用的機(jī)制等。利用構(gòu)件模型規(guī)范(guīfàn)說(shuō)明,構(gòu)件開(kāi)發(fā)人員開(kāi)發(fā)那些實(shí)現(xiàn)了應(yīng)用系統(tǒng)邏輯的構(gòu)件,而應(yīng)用系統(tǒng)開(kāi)發(fā)人員則將這些預(yù)先開(kāi)發(fā)好的構(gòu)件組合成應(yīng)用系統(tǒng);這些應(yīng)用系統(tǒng)也可以作為新的構(gòu)件。軟構(gòu)件模型思想已經(jīng)在軟件開(kāi)發(fā)界迅速流行,因?yàn)樗梢赃_(dá)到以下這些目的:重用、高層開(kāi)發(fā)、通過(guò)工具進(jìn)行自動(dòng)化開(kāi)發(fā)、簡(jiǎn)化開(kāi)發(fā)過(guò)程等。JavaBeans、EJB、COM/DCOM等都是軟構(gòu)件模型的例子。10清華大學(xué)出版社共三十八頁(yè)14.2 云計(jì)算(jìsuàn)服務(wù)模型有兩種類型的軟構(gòu)件(gòujiàn)模型:客戶端構(gòu)件模型服務(wù)器端構(gòu)件模型。11清華大學(xué)出版社共三十八頁(yè)圖11-3EJB構(gòu)建(ɡòujiàn)模型12清華大學(xué)出版社共三十八頁(yè)EJB構(gòu)件與Container之間有統(tǒng)一的界面,每一個(gè)EJB構(gòu)件都可以運(yùn)行在所有的運(yùn)行環(huán)境中。在EJB構(gòu)件模型(móxíng)中有兩種類型的bean:sessionbean和entitybean。這兩種類型的EJB代表了兩種不同類型的事務(wù)邏輯的抽象。13清華大學(xué)出版社共三十八頁(yè)3. EJB的體系結(jié)構(gòu)

EJB的上層分布式應(yīng)用程序是基于對(duì)象組件模型的,低層的事務(wù)服務(wù)用了API技術(shù)。EJB技術(shù)簡(jiǎn)化了用Java語(yǔ)言(yǔyán)編寫的企業(yè)應(yīng)用系統(tǒng)的開(kāi)發(fā)、配置與執(zhí)行。EJB的體系結(jié)構(gòu)的規(guī)范由SunMicrosystems公司制定。EJB技術(shù)定義了一組可重用的組件:EnterpriseBean。你可以利用這些組件像搭積木一樣地建立你的分布式應(yīng)用程序。當(dāng)你把代碼寫好之后,這些組件就被組合到特定的文件中去。每個(gè)文件有一個(gè)或多個(gè)EnterpriseBeans,再加上一些配置參數(shù)。最后,這些EnterpriseBeans被配置到一個(gè)裝有EJB容器的平臺(tái)上。客戶能夠通過(guò)這些beans的home接口定位到某個(gè)beans,并產(chǎn)生這個(gè)bean的一個(gè)實(shí)例。這樣,客戶就能夠調(diào)用Beans的應(yīng)用方法與遠(yuǎn)程接口。14清華大學(xué)出版社共三十八頁(yè)通常來(lái)說(shuō),EJB容器(róngqì)掌握了以下的系統(tǒng)級(jí)分配:(1)Security-配置描述器(TheDeploymentdescriptor)。(2)RemoteConnectivity-容器。(3)LifeCyclemanagement-客戶。(4)Transactionmanagement配置描述器。15清華大學(xué)出版社共三十八頁(yè)這六個(gè)角色分別是:(1)EnterpriseBeanProvider:EJB組件(zǔjiàn)開(kāi)發(fā)者。(2)ApplicationAssembler:應(yīng)用組合者。(3)Deployer:部署者。(4)EJBServerProvider:EJB服務(wù)器提供者。(5)EJBContainerProvider:EJB容器提供者。(6)SystemAdministrator:系統(tǒng)管理員。4. EJB結(jié)構(gòu)(jiégòu)中的角色

16清華大學(xué)出版社共三十八頁(yè)11.2 DCOM分布構(gòu)件(gòujiàn)框架

DCOM是一系列微軟的概念和與程序接口,利用這個(gè)接口,客戶端程序?qū)ο竽軌蛘?qǐng)求來(lái)自網(wǎng)絡(luò)中另一臺(tái)計(jì)算機(jī)上的服務(wù)器程序?qū)ο?;DCOM基于組件對(duì)象模型COM,COM提供了一套允許同一臺(tái)計(jì)算機(jī)上的客戶端與服務(wù)器之間進(jìn)行(jìnxíng)通信的接口。17清華大學(xué)出版社共三十八頁(yè)11.2.1 DCOM的使用(shǐyòng)

DCOM是COM的擴(kuò)展,它支持不同的兩臺(tái)機(jī)器上的組件間的通信,而且不論它們是運(yùn)行在局域網(wǎng)、廣域網(wǎng)、還是Internet上。借助DCOM,應(yīng)用程序?qū)⒛軌蛉我膺M(jìn)行(jìnxíng)空間分布。使用DCOM,應(yīng)用程序就可以在位置上達(dá)到分布性,從而滿足客戶和應(yīng)用的需求。

在提供一系列分布式范圍方面,DCOM通常與通用對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA)相提并論。DCOM是微軟給程序和數(shù)據(jù)對(duì)象傳輸?shù)木W(wǎng)絡(luò)范圍的環(huán)境,CORBA則是在對(duì)象管理組織(OMG)的幫助下,由信息技術(shù)行業(yè)的其他商家提供贊助的。18清華大學(xué)出版社共三十八頁(yè)11.2.2 DCOM的特點(diǎn)(tèdiǎn)

(1)組件和復(fù)用(2)位置(wèizhi)獨(dú)立性(3)語(yǔ)言無(wú)關(guān)性(4)連接管理(5)可擴(kuò)展性(6)對(duì)稱的多進(jìn)程處理(SMP)19清華大學(xué)出版社共三十八頁(yè)11.2.3 DCOM的靈活配置與擴(kuò)展(kuòzhǎn)機(jī)制

當(dāng)負(fù)載增加時(shí),即使買一臺(tái)最快的多處理機(jī),它也有可能不能適應(yīng)需求。DCOM的位置獨(dú)立性提供了一個(gè)(yīɡè)簡(jiǎn)單而低成本的方法來(lái)提高擴(kuò)展性,那就是將分布性的組件放到其他的機(jī)器上。(1)一般組件的配置(2)關(guān)鍵組件的配置(3)DCOM的擴(kuò)展機(jī)制20清華大學(xué)出版社共三十八頁(yè)11.2.4 在應(yīng)用(yìngyòng)間共享連接管理

DCOM對(duì)每臺(tái)機(jī)器使用一個(gè)keep-alive消息。即使一臺(tái)客戶機(jī)使用了某一臺(tái)服務(wù)器上的100個(gè)組件(zǔjiàn),僅僅只要一條ping消息就能使所有這些客戶連接保持活躍狀態(tài)。為了將所有的ping消息組合起來(lái),DCOM使用deltapinging機(jī)制來(lái)將這些ping消息的數(shù)量最小化。對(duì)于這100個(gè)連接,它并不是發(fā)送100個(gè)客戶的標(biāo)識(shí)符,而是創(chuàng)造了一個(gè)可變標(biāo)識(shí)符來(lái)重復(fù)代表這100個(gè)引用。當(dāng)引用集改變時(shí),僅僅只是兩套引用的相交部分被互相交換。最終,DCOM將所有ping消息轉(zhuǎn)化為正常消息。對(duì)于服務(wù)器來(lái)說(shuō),當(dāng)某臺(tái)客戶機(jī)完全是空閑的時(shí)候,它才定時(shí)發(fā)送ping消息(每隔兩分鐘一次)。21清華大學(xué)出版社共三十八頁(yè)1. 優(yōu)化網(wǎng)絡(luò)(wǎngluò)的來(lái)回旋程2. 安全性22清華大學(xué)出版社共三十八頁(yè)11.2.5 DCOM的安全性設(shè)置(shèzhì)

DCOM無(wú)須在客戶端和組件上進(jìn)行任何專門為安全性而做的編碼和設(shè)計(jì)工作,就可以為分布式應(yīng)用系統(tǒng)提供安全性保障。就像DCOM編程模型屏蔽了組件的位置一樣,它也屏蔽了組件的安全性需求。在無(wú)須考慮安全性的單機(jī)環(huán)境下工作的二進(jìn)制代碼(dàimǎ)能夠在分布式環(huán)境下以一種安全的方式工作。DCOM通過(guò)讓開(kāi)發(fā)者與管理員為每個(gè)組件設(shè)置安全性環(huán)境而使安全性透明。就像WindowsNT允許管理員為文件和目錄設(shè)置訪問(wèn)控制列表一樣,DCOM將組件的訪問(wèn)控制列表存儲(chǔ)起來(lái)。這些列表清楚地指出了哪些用戶或用戶組有權(quán)訪問(wèn)某一類的組件。使用DCOM的設(shè)置工具、或者在編程中使用WindowsNT的registry,以及Win32的安全函數(shù)可以很簡(jiǎn)單地設(shè)置這些列表。23清華大學(xué)出版社共三十八頁(yè)1. 對(duì)安全性的編程控制2. Internet上的安全性3. 負(fù)載平衡

(1)靜態(tài)(jìngtài)負(fù)載平衡(2)動(dòng)態(tài)負(fù)載平衡4. 容錯(cuò)性24清華大學(xué)出版社共三十八頁(yè)11.3 COBRA分布(fēnbù)構(gòu)件框架

11.3.1 COBRA基本原理

對(duì)象管理組織OMG(ObjectManagementGroup)負(fù)責(zé)制訂與發(fā)布CORBA規(guī)范(guīfàn)。由OMG發(fā)布的對(duì)象管理體系結(jié)構(gòu)OMA(ObjectManagementArchitecture)是包括CORBA規(guī)范(guīfàn)在內(nèi)的所有OMG規(guī)范(guīfàn)的概念模型基礎(chǔ)。25清華大學(xué)出版社共三十八頁(yè)1. 對(duì)象(duìxiàng)管理組織2. 對(duì)象管理體系結(jié)構(gòu)3. 對(duì)象請(qǐng)求代理4. 對(duì)象服務(wù)5. 公共設(shè)施6. 領(lǐng)域接口7. 應(yīng)用程序接口26清華大學(xué)出版社共三十八頁(yè)11.3.2 CORBA體系結(jié)構(gòu)

CORBA建立在OMG的對(duì)象模型基礎(chǔ)之上,主要有三個(gè)關(guān)鍵部分:接口定義語(yǔ)言IDL、對(duì)象請(qǐng)求代理ORB和標(biāo)準(zhǔn)通信協(xié)議IIOP。1. OMG的對(duì)象模型2. 對(duì)象請(qǐng)求代理的結(jié)構(gòu)3. 對(duì)象接口定義4. 客戶程序發(fā)送(fāsònɡ)請(qǐng)求5. 對(duì)象實(shí)現(xiàn)接收請(qǐng)求6. 對(duì)象的可互操作性7. ORB域和橋接8. GIOP、IIOP與ESIOP9. CORBA對(duì)可互操作性的支持27清華大學(xué)出版社共三十八頁(yè)11.3.3 CORBA規(guī)范(guīfàn)

OMG本身不生產(chǎn)任何軟件或?qū)崿F(xiàn)任何規(guī)范,它只是將OMG成員的信息需求(RFI)與建議需求(RFP)匯集為規(guī)范。CORBA規(guī)范是一套開(kāi)放式的規(guī)范,OMG的成員或非成員公司均可免費(fèi)實(shí)現(xiàn)符合(fúhé)CORBA規(guī)范的ORB產(chǎn)品。28清華大學(xué)出版社共三十八頁(yè)(1)1991年12月正式(zhèngshì)發(fā)布CORBA1.1(2)1995年7月正式發(fā)布CORBA2.0(3)2010年正式發(fā)布CORBA3.029清華大學(xué)出版社共三十八頁(yè)11.3.4 CORBA產(chǎn)品(chǎnpǐn)概述

盡管OMG不斷改進(jìn)與完善CORBA規(guī)范,但每一版本保持了較好的向后兼容性,因而CORBA規(guī)范相當(dāng)成熟與穩(wěn)定,并且擁有大量產(chǎn)品,在企業(yè)計(jì)算與因特網(wǎng)計(jì)算領(lǐng)域擁有龐大的市場(chǎng)?;贑ORBA的軟件適用于因特網(wǎng)應(yīng)用與企業(yè)計(jì)算,特殊版本的CORBA還可運(yùn)行在實(shí)時(shí)(shíshí)系統(tǒng)、嵌入式系統(tǒng)與容錯(cuò)系統(tǒng)。30清華大學(xué)出版社共三十八頁(yè)1. 商品化CORBA產(chǎn)品(chǎnpǐn)

(1)Orbix(2)VisiBroker(3)WebLogic(4)ComponentBroker(5)其他(qítā)31清華大學(xué)出版社共三十八頁(yè)部分(bùfen)商品化CORBA產(chǎn)品及其站點(diǎn)

IONAOrbixInpriseVisiBrokerBEASysetmsWebLogicIBMComponentBrokerCriticalPathInJoinBROKERGemStoneGemORBObjectiveInterfaceSystemsORBexpressBionicBuffaloTatankaSilverstreamJbrokerVertele*ORB32清華大學(xué)出版社共三十八頁(yè)2. 免費(fèi)(miǎnfèi)CORBA產(chǎn)品

(1)OmniORB(2)TAO(3)ORBit33清華大學(xué)出版社共三十八頁(yè)部分(bùfen)免費(fèi)CORBA產(chǎn)品及其站點(diǎn)

AT&TLaboratoryomniORBWashingtonUniversityTAO/~schmidtObject-OrientedConceptsORBacusObjectSpaceVoyagerORBProRHADLabsORBit/orbitDistributedObjectsGroupJavaORBMICOADABroker34清華大學(xué)出版社共三十八頁(yè)11.3.5 CORBA為我們(wǒmen)帶來(lái)什么

OMG致力于解決分布式應(yīng)用程序的復(fù)雜性與高成本問(wèn)題。CORBA順應(yīng)軟件技術(shù)發(fā)展的潮流,成功地融合了兩種技術(shù):一是基于消息傳遞的分布式客戶機(jī)/服務(wù)器技術(shù),一是面向?qū)ο?duìxiàng)軟件開(kāi)發(fā)技術(shù)。CORBA采用面向?qū)ο?duìxiàng)方法創(chuàng)建在應(yīng)用程序之間可重用與可共享的軟件組件,每一個(gè)對(duì)象(duìxiàng)對(duì)外隱藏了它內(nèi)部工作的細(xì)節(jié),并提供一個(gè)定義良好的外部接口,從而降低應(yīng)用程序的復(fù)雜性。一旦實(shí)現(xiàn)并測(cè)試一個(gè)對(duì)象(duìxiàng)后,它可以在新應(yīng)用環(huán)境中多次被重用,因而減少了開(kāi)發(fā)應(yīng)用程序的成本。35清華大學(xué)出版社共三十八頁(yè)11.3.6 未解決(jiějué)的問(wèn)題

顯然CORBA幫我

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論