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

下載本文檔

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

文檔簡介

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

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

1清華大學出版社共三十八頁內(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的特點11.2.3 DCOM的靈活配置(pèizhì)與擴展機制11.2.4 在應(yīng)用間共享連接管理11.2.5 DCOM的安全性設(shè)置2清華大學出版社共三十八頁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為我們帶來什么11.3.6 未解決的問題11.4 本章小結(jié)3清華大學出版社共三十八頁在互聯(lián)網(wǎng)時代,分布式應(yīng)用(yìngyòng)越來越普遍與重要,如何高效地開發(fā)這類系統(tǒng)成為我們必須應(yīng)對的課題。為了將構(gòu)件思想應(yīng)用(yìngyòng)于分布式系統(tǒng)的開發(fā),業(yè)界提出了一些基于分布構(gòu)件的解決方案。按照這些方案,整個分布式系統(tǒng)的體系結(jié)構(gòu)大致如圖11-1所示。圖11-1基于分布構(gòu)件(gòujiàn)的系統(tǒng)體系結(jié)構(gòu)4清華大學出版社共三十八頁分布構(gòu)件與分布構(gòu)件框架相互之間緊密配合,在上述體系結(jié)構(gòu)中占據(jù)主體地位。描述了分布構(gòu)件框架,實際上也就說清楚了它與分布構(gòu)件之間的接口,說清楚了分布構(gòu)件的外在特征。對于上述體系結(jié)構(gòu),工業(yè)界有幾個主要的實現(xiàn)方案,它們分別是由SUN公司(已被Oracle收購)主導(dǎo)提出的EJB分布構(gòu)件框架、由微軟公司提出的DCOM分布構(gòu)件框架和由OMG組織提出的CORBA分布構(gòu)件框架,本章(běnzhānɡ)將對它們分別進行系統(tǒng)介紹。5清華大學出版社共三十八頁11.1 EJB分布(fēnbù)構(gòu)件框架

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

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

EnterpriseBean依賴容器來獲取它的需求。如果EnterpriseBean需要訪問JDBC連接或另一個EnterpriseBean,那么它需要利用容器來完成此項操作。如果EnterpriseBean需要訪問調(diào)用者的身份、獲取它自身的引用或訪問特性,那么它需要利用容器來完成這些操作。EnterpriseBean通過以下三種(sānzhǒnɡ)機制之一與容器交互:(1)回調(diào)方法、(2)EJBContext接口或(3)JNDI9清華大學出版社共三十八頁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)件及容器相互作用的機制等。利用構(gòu)件模型規(guī)范(guīfàn)說明,構(gòu)件開發(fā)人員開發(fā)那些實現(xiàn)了應(yīng)用系統(tǒng)邏輯的構(gòu)件,而應(yīng)用系統(tǒng)開發(fā)人員則將這些預(yù)先開發(fā)好的構(gòu)件組合成應(yīng)用系統(tǒng);這些應(yīng)用系統(tǒng)也可以作為新的構(gòu)件。軟構(gòu)件模型思想已經(jīng)在軟件開發(fā)界迅速流行,因為它可以達到以下這些目的:重用、高層開發(fā)、通過工具進行自動化開發(fā)、簡化開發(fā)過程等。JavaBeans、EJB、COM/DCOM等都是軟構(gòu)件模型的例子。10清華大學出版社共三十八頁14.2 云計算(jìsuàn)服務(wù)模型有兩種類型的軟構(gòu)件(gòujiàn)模型:客戶端構(gòu)件模型服務(wù)器端構(gòu)件模型。11清華大學出版社共三十八頁圖11-3EJB構(gòu)建(ɡòujiàn)模型12清華大學出版社共三十八頁EJB構(gòu)件與Container之間有統(tǒng)一的界面,每一個EJB構(gòu)件都可以運行在所有的運行環(huán)境中。在EJB構(gòu)件模型(móxíng)中有兩種類型的bean:sessionbean和entitybean。這兩種類型的EJB代表了兩種不同類型的事務(wù)邏輯的抽象。13清華大學出版社共三十八頁3. EJB的體系結(jié)構(gòu)

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

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

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

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

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

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

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

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

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

11.3.1 COBRA基本原理

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

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

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

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

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

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

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

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

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

顯然CORBA幫我

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論