軟件設計與體系結構秦航11_第1頁
軟件設計與體系結構秦航11_第2頁
軟件設計與體系結構秦航11_第3頁
軟件設計與體系結構秦航11_第4頁
軟件設計與體系結構秦航11_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、清華大學出版社1清華大學出版社2內容提要內容提要p 11.1EJB分步構件框架分步構件框架 11.1.1 EJB技術技術 11.1.2 EJB的規范介紹的規范介紹 11.1.3 EJB的體系結構的體系結構11.2 DCOM分布構件框架分布構件框架l11.2.1 DCOM的使用的使用l11.2.2 DCOM的特點的特點l11.2.3 DCOM的靈活配置與擴展機制的靈活配置與擴展機制 11.2.4 在應用間共享連接管理在應用間共享連接管理 11.2.5 DCOM的安全性設置的安全性設置清華大學出版社311.3COBRA分布構件框架分布構件框架 11.3.1 COBRA基本原理基本原理 11.3.2

2、 CORBA體系結構體系結構 11.3.3 CORBA規范規范 11.3.4 CORBA產品概述產品概述 11.3.5 CORBA為我們帶來什么為我們帶來什么 11.3.6 未解決的問題未解決的問題11.4本章小結本章小結 在互聯網時代,分布式應用越來越普遍與重要,如何高在互聯網時代,分布式應用越來越普遍與重要,如何高效地開發這類系統成為我們必須應對的課題。為了將構件效地開發這類系統成為我們必須應對的課題。為了將構件思想應用于分布式系統的開發,業界提出了一些基于分布思想應用于分布式系統的開發,業界提出了一些基于分布構件的解決方案。按照這些方案,整個分布式系統的體系構件的解決方案。按照這些方案,

3、整個分布式系統的體系結構大致如圖結構大致如圖11-1所示。所示。圖圖11-1 基于分布構件的系統體系結構基于分布構件的系統體系結構 分布構件與分布構件框架相互之間緊密配合,分布構件與分布構件框架相互之間緊密配合,在上述體系結構中占據主體地位。描述了分布構在上述體系結構中占據主體地位。描述了分布構件框架,實際上也就說清楚了它與分布構件之間件框架,實際上也就說清楚了它與分布構件之間的接口,說清楚了分布構件的外在特征。的接口,說清楚了分布構件的外在特征。 對于上述體系結構,工業界有幾個主要的實現對于上述體系結構,工業界有幾個主要的實現方案,它們分別是由方案,它們分別是由SUN公司(已被公司(已被Or

4、acle收收購)主導提出的購)主導提出的EJB分布構件框架、由微軟公司分布構件框架、由微軟公司提出的提出的DCOM分布構件框架和由分布構件框架和由OMG組織提出組織提出的的CORBA分布構件框架,本章將對它們分別進分布構件框架,本章將對它們分別進行系統介紹。行系統介紹。11.1 EJB分布構件框架分布構件框架 11.1.1 EJB技術技術 EJB規范是規范是SUN公司于公司于1997年年12月發布的月發布的JavaBean構件模型。一個構件模型。一個EJB是特定的在服務是特定的在服務器上運行的器上運行的JavaBean,并且,并且EJB能在可視化的能在可視化的工具下裝配成新的應用。工具下裝配成

5、新的應用。EJB應用程序只能用應用程序只能用Java語言編寫,且必須使用語言編寫,且必須使用EJB API。編寫良。編寫良好的好的EJB應用程序無須修改任何源代碼就可以在應用程序無須修改任何源代碼就可以在J2EE認證的應用服務器之間移植和互操作。認證的應用服務器之間移植和互操作。 EJB是一種基于構件的開發模型,它是是一種基于構件的開發模型,它是Java服務器端服務框架的規范。服務器端服務框架的規范。EJB詳細地定義了一詳細地定義了一個可以方便部署個可以方便部署Java構件的服務框架模型,用于構件的服務框架模型,用于創建可伸縮、多層次、跨平臺、分布式的應用,創建可伸縮、多層次、跨平臺、分布式的

6、應用,并可創建具有動態擴展性的服務器端的應用。并可創建具有動態擴展性的服務器端的應用。 清華大學出版社711.1.2EJB的規范介紹的規范介紹圖圖11-2 EJB容器示意圖容器示意圖清華大學出版社8p EJB編程模塊向編程模塊向bean開發人員和開發人員和EJB服務器供應服務器供應商提供了一組契約,這組契約,約定了開發的公共平臺。商提供了一組契約,這組契約,約定了開發的公共平臺。這些契約的目標是在支持一組豐富功能性的同時能夠確這些契約的目標是在支持一組豐富功能性的同時能夠確保供應商之間的可移植性。保供應商之間的可移植性。p 容器不允許客戶機應用程序直接訪問容器不允許客戶機應用程序直接訪問Ent

7、erprise Bean。當客戶機應用程序調用。當客戶機應用程序調用Enterprise Bean上上的遠程方法時,容器首先攔截調用,以確保持續、事務的遠程方法時,容器首先攔截調用,以確保持續、事務和安全性都正確應用于客戶機對和安全性都正確應用于客戶機對bean執行的每一個操執行的每一個操作。容器自動為作。容器自動為bean管理安全性、事務和持續,于是管理安全性、事務和持續,于是bean開發人員不必將這種類型的邏輯寫入開發人員不必將這種類型的邏輯寫入bean代碼本代碼本身中。身中。Enterprise Bean開發人員可以將精力集中于開發人員可以將精力集中于封裝商業規則,而容器處理其他一切。封

8、裝商業規則,而容器處理其他一切。清華大學出版社9p Enterprise Bean依賴容器來獲取它的依賴容器來獲取它的需求。如果需求。如果Enterprise Bean需要訪問需要訪問JDBC連接或另一個連接或另一個Enterprise Bean,那么它需要,那么它需要利用容器來完成此項操作。如果利用容器來完成此項操作。如果Enterprise Bean需要訪問調用者的身份、獲取它自身的引需要訪問調用者的身份、獲取它自身的引用或訪問特性,那么它需要利用容器來完成這些用或訪問特性,那么它需要利用容器來完成這些操作。操作。Enterprise Bean通過以下三種機制之通過以下三種機制之一與容器交

9、互:一與容器交互:p (1)回調方法、)回調方法、p (2)EJBContext接口或接口或p (3)JNDI清華大學出版社1011.1.3EJB的體系結構的體系結構p1. EJB的軟構件模型的軟構件模型p 軟構件模型的思想,是創建可重用的構件并將其組合軟構件模型的思想,是創建可重用的構件并將其組合到容器中,以得到新的應用系統。構件模型定義了構件的到容器中,以得到新的應用系統。構件模型定義了構件的基本體系結構、構件界面的結構與其他構件及容器相互作基本體系結構、構件界面的結構與其他構件及容器相互作用的機制等。利用構件模型規范說明,構件開發人員開發用的機制等。利用構件模型規范說明,構件開發人員開發

10、那些實現了應用系統邏輯的構件,而應用系統開發人員則那些實現了應用系統邏輯的構件,而應用系統開發人員則將這些預先開發好的構件組合成應用系統;這些應用系統將這些預先開發好的構件組合成應用系統;這些應用系統也可以作為新的構件。軟構件模型思想已經在軟件開發界也可以作為新的構件。軟構件模型思想已經在軟件開發界迅速流行,因為它可以達到以下這些目的:重用、高層開迅速流行,因為它可以達到以下這些目的:重用、高層開發、通過工具進行自動化開發、簡化開發過程等。發、通過工具進行自動化開發、簡化開發過程等。JavaBeans、EJB、COM/DCOM等都是軟構件模型等都是軟構件模型的例子。的例子。清華大學出版社111

11、4.2云計算服務模型云計算服務模型有兩種類型的軟構件模型:有兩種類型的軟構件模型:l客戶端構件模型l服務器端構件模型。 圖圖11-3 EJB構建模型構建模型清華大學出版社13 EJB構件與構件與Container之間有統一的之間有統一的界面,每一個界面,每一個EJB構件都可以運行在所有構件都可以運行在所有的運行環境中。在的運行環境中。在EJB構件模型中有兩種構件模型中有兩種類型的類型的bean:session bean和和entity bean。這兩種類型的。這兩種類型的EJB代表了兩種不代表了兩種不同類型的事務邏輯的抽象。同類型的事務邏輯的抽象。3.EJB的體系結構的體系結構 EJB的上層分

12、布式應用程序是基于對象組件模型的,的上層分布式應用程序是基于對象組件模型的,低層的事務服務用了低層的事務服務用了API技術。技術。EJB技術簡化了用技術簡化了用Java語言編寫的企業應用系統的開發、配置與執行。語言編寫的企業應用系統的開發、配置與執行。EJB的的體系結構的規范由體系結構的規范由Sun Microsystems公司制定。公司制定。EJB技術定義了一組可重用的組件:技術定義了一組可重用的組件:Enterprise Bean。你可以利用這些組件像搭積木一樣地建立你的。你可以利用這些組件像搭積木一樣地建立你的分布式應用程序。當你把代碼寫好之后,這些組件就被分布式應用程序。當你把代碼寫好

13、之后,這些組件就被組合到特定的文件中去。每個文件有一個或多個組合到特定的文件中去。每個文件有一個或多個Enterprise Beans,再加上一些配置參數。最后,這,再加上一些配置參數。最后,這些些Enterprise Beans被配置到一個裝有被配置到一個裝有EJB容器的平容器的平臺上。客戶能夠通過這些臺上。客戶能夠通過這些beans的的home接口定位到某接口定位到某個個beans,并產生這個,并產生這個bean的一個實例。這樣,客戶的一個實例。這樣,客戶就能夠調用就能夠調用Beans的應用方法與遠程接口。的應用方法與遠程接口。清華大學出版社15p 通常來說,通常來說,EJB容器掌握了以下

14、容器掌握了以下的系統級分配:的系統級分配:p (1)Security-配置描述器(配置描述器(The Deployment descriptor)。)。 p ( 2 )Remote Connectivity-容器。容器。 p ( 3 )Life Cycle management-客戶。客戶。 p ( 4 )Transaction management配配置描述器。置描述器。 清華大學出版社16p這六個角色分別是這六個角色分別是:p (1)Enterprise Bean Provider:EJB組件開發者。組件開發者。p (2)Application Assembler:應用組:應用組合者。合者

15、。p (3)Deployer:部署者。:部署者。p (4)EJB Server Provider:EJB服務服務器提供者。器提供者。p (5)EJB Container Provider:EJB容器提供者。容器提供者。p (6)System Administrator:系統管:系統管理員。理員。4.EJB結構中的角色結構中的角色清華大學出版社1711.2DCOM分布構件框架分布構件框架p DCOM是一系列微軟的概念和與程是一系列微軟的概念和與程序接口,利用這個接口,客戶端程序對象序接口,利用這個接口,客戶端程序對象能夠請求來自網絡中另一臺計算機上的服能夠請求來自網絡中另一臺計算機上的服務器程序

16、對象;務器程序對象;DCOM基于組件對象模型基于組件對象模型COM,COM提供了一套允許同一臺計算提供了一套允許同一臺計算機上的客戶端與服務器之間進行通信的接機上的客戶端與服務器之間進行通信的接口。口。清華大學出版社1811.2.1DCOM的使用的使用p DCOM是是COM的擴展,它支持不同的兩臺的擴展,它支持不同的兩臺機器上的組件間的通信,而且不論它們是運行在機器上的組件間的通信,而且不論它們是運行在局域網、廣域網、還是局域網、廣域網、還是Internet上。借助上。借助DCOM,應用程序將能夠任意進行空間分布。,應用程序將能夠任意進行空間分布。使用使用DCOM,應用程序就可以在位置上達到分

17、,應用程序就可以在位置上達到分布性,從而滿足客戶和應用的需求。布性,從而滿足客戶和應用的需求。p p 在提供一系列分布式范圍方面,在提供一系列分布式范圍方面,DCOM通通常與通用對象請求代理體系結構(常與通用對象請求代理體系結構(CORBA)相)相提并論。提并論。DCOM是微軟給程序和數據對象傳輸是微軟給程序和數據對象傳輸的網絡范圍的環境,的網絡范圍的環境,CORBA則是在對象管理組則是在對象管理組織(織(OMG)的幫助下,由信息技術行業的其他)的幫助下,由信息技術行業的其他商家提供贊助的。商家提供贊助的。清華大學出版社1911.2.2DCOM的特點的特點p(1)組件和復用)組件和復用p(2)

18、位置獨立性)位置獨立性p(3)語言無關性)語言無關性p(4)連接管理)連接管理p(5)可擴展性)可擴展性p(6)對稱的多進程處理()對稱的多進程處理(SMP)清華大學出版社2011.2.3DCOM的靈活配置與擴展機制的靈活配置與擴展機制p 當負載增加時,即使買一臺最快的多當負載增加時,即使買一臺最快的多處理機,它也有可能不能適應需求。處理機,它也有可能不能適應需求。DCOM的位置獨立性提供了一個簡單而低的位置獨立性提供了一個簡單而低成本的方法來提高擴展性,那就是將分布成本的方法來提高擴展性,那就是將分布性的組件放到其他的機器上。性的組件放到其他的機器上。p (1)一般組件的配置)一般組件的配置

19、p (2)關鍵組件的配置)關鍵組件的配置p (3)DCOM的擴展機制的擴展機制清華大學出版社2111.2.4在應用間共享連接管理在應用間共享連接管理p DCOM對每臺機器使用一個對每臺機器使用一個keep-alive消息。消息。即使一臺客戶機使用了某一臺服務器上的即使一臺客戶機使用了某一臺服務器上的100個組個組件,僅僅只要一條件,僅僅只要一條ping消息就能使所有這些客戶連消息就能使所有這些客戶連接保持活躍狀態。為了將所有的接保持活躍狀態。為了將所有的ping消息組合起來,消息組合起來,DCOM使用使用delta pinging機制來將這些機制來將這些ping消消息的數量最小化。對于這息的數

20、量最小化。對于這100個連接,它并不是發個連接,它并不是發送送100個客戶的標識符,而是創造了一個可變標識個客戶的標識符,而是創造了一個可變標識符來重復代表這符來重復代表這100個引用。當引用集改變時,僅個引用。當引用集改變時,僅僅只是兩套引用的相交部分被互相交換。最終,僅只是兩套引用的相交部分被互相交換。最終,DCOM將所有將所有ping消息轉化為正常消息。對于服務消息轉化為正常消息。對于服務器來說,當某臺客戶機完全是空閑的時候,它才定器來說,當某臺客戶機完全是空閑的時候,它才定時發送時發送ping消息(每隔兩分鐘一次)。消息(每隔兩分鐘一次)。清華大學出版社22p1. 優化網絡的來回旋程優

21、化網絡的來回旋程p2. 安全性安全性清華大學出版社2311.2.5DCOM的安全性設置的安全性設置p DCOM無須在客戶端和組件上進行任何專門為安全無須在客戶端和組件上進行任何專門為安全性而做的編碼和設計工作,就可以為分布式應用系統提供性而做的編碼和設計工作,就可以為分布式應用系統提供安全性保障。就像安全性保障。就像DCOM編程模型屏蔽了組件的位置一編程模型屏蔽了組件的位置一樣,它也屏蔽了組件的安全性需求。在無須考慮安全性的樣,它也屏蔽了組件的安全性需求。在無須考慮安全性的單機環境下工作的二進制代碼能夠在分布式環境下以一種單機環境下工作的二進制代碼能夠在分布式環境下以一種安全的方式工作。安全的

22、方式工作。DCOM通過讓開發者與管理員為每個通過讓開發者與管理員為每個組件設置安全性環境而使安全性透明。就像組件設置安全性環境而使安全性透明。就像Windows NT允許管理員為文件和目錄設置訪問控制列表一樣,允許管理員為文件和目錄設置訪問控制列表一樣,DCOM將組件的訪問控制列表存儲起來。這些列表清楚將組件的訪問控制列表存儲起來。這些列表清楚地指出了哪些用戶或用戶組有權訪問某一類的組件。使用地指出了哪些用戶或用戶組有權訪問某一類的組件。使用DCOM的設置工具、或者在編程中使用的設置工具、或者在編程中使用Windows NT的的registry,以及,以及Win32的安全函數可以很簡單地設置這

23、的安全函數可以很簡單地設置這些列表。些列表。清華大學出版社24p1. 對安全性的編程控制對安全性的編程控制p2. Internet上的安全性上的安全性p3. 負載平衡負載平衡p (1)靜態負載平衡)靜態負載平衡p (2)動態負載平衡)動態負載平衡p4. 容錯性容錯性清華大學出版社2511.3COBRA分布構件框架分布構件框架p11.3.1 COBRA基本原理基本原理p 對象管理組織對象管理組織OMG(Object Management Group)負責制訂與發布)負責制訂與發布CORBA規范。由規范。由OMG發布的對象管理體系結發布的對象管理體系結構構OMA(Object Management

24、 Architecture)是包括)是包括CORBA規范在內的所規范在內的所有有OMG規范的概念模型基礎。規范的概念模型基礎。清華大學出版社26p1. 對象管理組織對象管理組織p2. 對象管理體系結構對象管理體系結構p3. 對象請求代理對象請求代理p4. 對象服務對象服務p5. 公共設施公共設施p6. 領域接口領域接口p7. 應用程序接口應用程序接口清華大學出版社2711.3.2CORBA體系結構體系結構p CORBA建立在建立在OMG的對象模型基礎之上,的對象模型基礎之上,主要有三個關鍵部分:接口定義語言主要有三個關鍵部分:接口定義語言IDL、對象、對象請求代理請求代理ORB和標準通信協議和

25、標準通信協議IIOP。p 1.OMG的對象模型的對象模型p 2.對象請求代理的結構對象請求代理的結構p 3.對象接口定義對象接口定義p 4.客戶程序發送請求客戶程序發送請求p 5.對象實現接收請求對象實現接收請求p 6.對象的可互操作性對象的可互操作性p 7.ORB域和橋接域和橋接p 8.GIOP、IIOP與與ESIOPp 9.CORBA對可互操作性的支持對可互操作性的支持清華大學出版社2811.3.3CORBA規范規范p OMG本身不生產任何軟件或實現任本身不生產任何軟件或實現任何規范,它只是將何規范,它只是將OMG成員的信息需求成員的信息需求(RFI)與建議需求()與建議需求(RFP)匯集

26、為規范。)匯集為規范。CORBA規范是一套開放式的規范,規范是一套開放式的規范, p OMG的成員或非成員公司均可免費的成員或非成員公司均可免費實現符合實現符合CORBA規范的規范的ORB產品。產品。清華大學出版社29p(1)1991年年12月正式發布月正式發布CORBA 1.1p(2)1995年年7月正式發布月正式發布CORBA 2.0p(3)2010年正式發布年正式發布CORBA 3.0清華大學出版社3011.3.4CORBA產品概述產品概述p 盡管盡管OMG不斷改進與完善不斷改進與完善CORBA規范,但每一版本保持了較好的向后兼容規范,但每一版本保持了較好的向后兼容性,因而性,因而COR

27、BA規范相當成熟與穩定,規范相當成熟與穩定,并且擁有大量產品,在企業計算與因特網并且擁有大量產品,在企業計算與因特網計算領域擁有龐大的市場。基于計算領域擁有龐大的市場。基于CORBA的軟件適用于因特網應用與企業計算,特的軟件適用于因特網應用與企業計算,特殊版本的殊版本的CORBA還可運行在實時系統、還可運行在實時系統、嵌入式系統與容錯系統。嵌入式系統與容錯系統。清華大學出版社311.商品化商品化CORBA產品產品p(1)Orbixp(2)VisiBrokerp(3)WebLogicp(4)Component Brokerp(5)其他)其他清華大學出版社32部分商品化部分商品化CORBA產品及其

28、站點產品及其站點pIONA Orbixhttp:/Inprise VisiBrokerhttp:/BEA Sysetms WebLogichttp:/IBM Component Brokerhttp:/Critical Path InJoin BROKERhttp:/GemStone GemORBhttp:/Objective Interface Systems ORBexpresshttp:/Bionic Buffalo Tatankahttp:/Silverstream Jbrokerhttp:/Vertel e*ORBhttp:/清華大學出版社332.免費免費CORBA產品產品p(1)O

29、mniORBp(2)TAOp(3)ORBit清華大學出版社34部分免費部分免費CORBA產品及其站點產品及其站點pAT&T Laboratory omniORBhttp:/Washington University TAO/schmidtObject-Oriented Concepts ORBacushttp:/ObjectSpace Voyager ORB Prohttp:/RHAD Labs ORBithttp:/ Objects Group JavaORBhttp:/MICOADABrokerhttp

30、:/清華大學出版社3511.3.5CORBA為我們帶來什么為我們帶來什么p OMG致力于解決分布式應用程序的復雜致力于解決分布式應用程序的復雜性與高成本問題。性與高成本問題。CORBA順應軟件技術發展的順應軟件技術發展的潮流,成功地融合了兩種技術:一是基于消息傳潮流,成功地融合了兩種技術:一是基于消息傳遞的分布式客戶機遞的分布式客戶機/服務器技術,一是面向對象服務器技術,一是面向對象軟件開發技術。軟件開發技術。CORBA采用面向對象方法創建采用面向對象方法創建在應用程序之間可重用與可共享的軟件組件,每在應用程序之間可重用與可共享的軟件組件,每一個對象對外隱藏了它內部工作的細節,并提供一個對象對外隱藏了它內部工作的細節,并提供一個定義良好的外部接口,從而降低應用程序的一個定義良好的外部接口,從而降低應用程序的復雜性。一旦實現并測試一個對象后,它可以在復雜性。一旦實現并測試一個對象后,它可以在新應用環境中多次被重用,因而減少了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論