中間件5Corba_架構PPT精品文檔_第1頁
中間件5Corba_架構PPT精品文檔_第2頁
中間件5Corba_架構PPT精品文檔_第3頁
中間件5Corba_架構PPT精品文檔_第4頁
中間件5Corba_架構PPT精品文檔_第5頁
已閱讀5頁,還剩81頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、山東大學計算機科學與技術學院第五章第五章 Corba 初步初步山東大學計算機科學與技術學院Corba 初步初步5.1 OMA5.2 CORBA5.3 ORB核心核心5.4 IDL語言與語言映射語言與語言映射5.5 存根和框架存根和框架5.6 動態調用動態調用5.7 對象適配器對象適配器5.8 界面倉庫和實現倉庫界面倉庫和實現倉庫5.9 ORB互操作互操作5.10 CORBA的最新進展的最新進展山東大學計算機科學與技術學院5.1 OMA5.1.0 基本概念基本概念5.1.1 對象服務對象服務5.1.2 公共設施公共設施5.1.3 域界面域界面5.1.4 應用界面應用界面山東大學計算機科學與技術學

2、院 記住記住CorbaC-ORB-A: “Common” + “ORB” + “Architecture” 通用通用“orb”體系結構體系結構Orb: Object request broker 對象請求代理:通過對象請求代理:通過智能代理的方式處理對象請求智能代理的方式處理對象請求對象管理組織對象管理組織OMG制定的規范制定的規范是是OMA(Object Model Architecture)的核心部分的核心部分山東大學計算機科學與技術學院 對象管理組織對象管理組織OMG成立于成立于1989年的非盈利性聯盟。年的非盈利性聯盟。目標:目標: 促進在促進在分布式系統開

3、發中系統開發中面向對象技術的理論與實踐的的理論與實踐的發展。發展。現有成員現有成員800多個,負責多個,負責制定協議、協議、實現基于基于協議的軟件產品、協議的軟件產品、應用軟件產品。軟件產品。山東大學計算機科學與技術學院對象管理小組對象管理小組 為使該組織所采納的技術具有開放性,為使該組織所采納的技術具有開放性,OMG所所采用的方法是,針對某一領域發出采用的方法是,針對某一領域發出RFP(Request For Proposal), 然后以各方提交的建議為基礎,經過一系然后以各方提交的建議為基礎,經過一系列的討論和協商,產生最終的規范。列的討論和協商,產生最終的規范。CORBA規范主規范主要基

4、于以下幾個公司所提交的建議:要基于以下幾個公司所提交的建議:DEC、HyperDesk、HP、SunSoft、NCR和和Object Design。山東大學計算機科學與技術學院對象管理組織對象管理組織OMG負責制訂并維護一套規范(負責制訂并維護一套規范(not software):): 支持支持分布式、異類(heterogeneous)環境的軟件開發項目。環境的軟件開發項目。 覆蓋了從分析、設計到編碼、部署、運行和管理的整個軟件開發過程。覆蓋了從分析、設計到編碼、部署、運行和管理的整個軟件開發過程。 這些規范是一種工業或行業標準這些規范是一種工業或行業標準OMG主要規范主要規范 UML:Uni

5、fied Modeling Language CORBA:Common Object Request Broker Architecture。 DMA: Model Driven Architecture山東大學計算機科學與技術學院對象管理小組對象管理小組 由由OMG制定的最關鍵的規范制定的最關鍵的規范對象管理結構對象管理結構(Object Management Architecture, OMA)和它的核和它的核心(也就是心(也就是CORBA規范),提供了一個完整的體系結規范),提供了一個完整的體系結構。這個結構以足夠的靈活性、豐富的形式適用了各構。這個結構以足夠的靈活性、豐富的形式適用了各

6、類分布式系統。類分布式系統。山東大學計算機科學與技術學院 對象管理體系結構對象管理體系結構 OMA描述了面向對象技術在分布式處理中的運描述了面向對象技術在分布式處理中的運用。它包括兩部分:對象模型(用。它包括兩部分:對象模型(Object Model)和參和參考模型(考模型(Reference Model)。)。對象模型定義如何描述分布式異質環境中的對象;對象模型定義如何描述分布式異質環境中的對象;參考模型描述對象之間的交互。參考模型描述對象之間的交互。山東大學計算機科學與技術學院.1 OMA對象模型對象模型 在在OMA對象模型中,對象是對象模型中,

7、對象是一個被封裝的實體,一個被封裝的實體,它具有一個不可改變的標識,并能給客戶用戶提供一它具有一個不可改變的標識,并能給客戶用戶提供一個或多個服務個或多個服務。interface printerattribute model;void print(in string buffer);山東大學計算機科學與技術學院OMA對象模型對象模型 對象的訪問方式是通過向對象發出請求來完成的。對象的訪問方式是通過向對象發出請求來完成的。請求信息包括目標對象、所請求的操作、請求信息包括目標對象、所請求的操作、0個或多個實個或多個實際參數和可選的請求上下文(描述環境信息)。每個際參數和可選的請求上下文(描述環境信

8、息)。每個對象的實現和位置,對客戶都是透明的。對象的實現和位置,對客戶都是透明的。山東大學計算機科學與技術學院.2 OMA參考模型參考模型 在在OMA參考模型中,參考模型中,OMG定義了一條為對象所定義了一條為對象所公用的通信總線,即公用的通信總線,即ORB(Object Request Broker)。同同時,時, OMG又定義了對象進出這一總線的界面。這包又定義了對象進出這一總線的界面。這包括:對象服務(括:對象服務(Object Services) 、公共設施、公共設施(common facilities)、)、應用界面(應用界面(Application Interface

9、)和域界面(和域界面(Domain Interface)。)。山東大學計算機科學與技術學院對象管理體系結構對象管理體系結構OMA公共設施公共設施領域接口領域接口對象請求代理(對象請求代理(ORB)應用程序接口應用程序接口對象服務對象服務通用服務的接口與應用有關的非標準化接口 與應用領域有關的接口通用設施的接口山東大學計算機科學與技術學院對象管理體系結構對象管理體系結構OMAOMA的層次結構支持客戶程序與對象實現在一個分布式環境支持客戶程序與對象實現在一個分布式環境中通信。中通信。獨立于實現對象的特定平臺與技術。獨立于實現對象的特定平臺與技術。客戶程序無需知道如何與對象通訊、如何激客戶程序無需知

10、道如何與對象通訊、如何激活對象、對象如何實現、如何查找對象等。活對象、對象如何實現、如何查找對象等。并保證了在異類網絡中對象的可移植性與可并保證了在異類網絡中對象的可移植性與可互操作性。互操作性。 應用程序接口應用程序接口公共設施公共設施對象服務對象服務對象請求代理對象請求代理CORBA ManufacturingCORBA MedCORBA FinanceCORBA Telecoms CORBA ServicesCORBA Services:對象命名、事件、生存期、對象命名、事件、生存期、持久對象、事務、并發控制持久對象、事務、并發控制、關系、外表化、許可機制、關系、外表化、許可機制、查詢、

11、屬性、安全性、時、查詢、屬性、安全性、時間、對象收集、交易對象等間、對象收集、交易對象等服務。服務。應用程序接口應用程序接口領域接口領域接口CORBA FacilitiesCORBA Facilities:分布式文檔設施分布式文檔設施打印設施打印設施數據庫設施數據庫設施電子郵件設施等電子郵件設施等 與具體應用相關的接口與具體應用相關的接口 為終端用戶執行特定的任務為終端用戶執行特定的任務 不是不是OMG標準化的內容標準化的內容山東大學計算機科學與技術學院 對象請求代理對象請求代理ORBORB是是OMA參考模型的參考模型的核心核心,它提供了分布式對象,它提供了分布式對象之間之間透明

12、透明地發送請求或接收響應的基本機制地發送請求或接收響應的基本機制,獨立,獨立于實現對象的特定平臺與技術。于實現對象的特定平臺與技術。山東大學計算機科學與技術學院ORB ORB(Object Request Broker)是對象總線。是對象總線。最重要作用:最重要作用:提供客戶與目標對象之間的交互透明性提供客戶與目標對象之間的交互透明性1 通過通過ORB,一個一個client可以透明的調用同一臺機器上可以透明的調用同一臺機器上或網絡上的一個或網絡上的一個server對象的方法。對象的方法。2 ORB解釋該調用并負責查找一個實現該請求的對象解釋該調用并負責查找一個實現該請求的對象3 找到后,把參數

13、傳給該對象,調用它的方法,最后找到后,把參數傳給該對象,調用它的方法,最后返回結果。返回結果。4 客戶方不需要了解服務對象的位置、通信方式、實客戶方不需要了解服務對象的位置、通信方式、實現、激活或存儲機制。現、激活或存儲機制。山東大學計算機科學與技術學院ORB優點優點靜態和動態調用:可在編譯時或運行時使用方法調靜態和動態調用:可在編譯時或運行時使用方法調用用高級語言綁定:將界面與實現分離且提供中性語言高級語言綁定:將界面與實現分離且提供中性語言數據類型數據類型位置透明位置透明內置安全和事務處理內置安全和事務處理與遺留系統共存:使用與遺留系統共存:使用IDL可使遺留代碼看起來像可使遺留代碼看起來

14、像ORB上的對象上的對象山東大學計算機科學與技術學院5.1.1 對象服務對象服務 對象服務提供基本服務,與具體的應用領域無對象服務提供基本服務,與具體的應用領域無關的界面。目前,關的界面。目前,CORBA支持的這類服務有:支持的這類服務有:名名字服務、持久性服務、生命周期服務、事務處理服字服務、持久性服務、生命周期服務、事務處理服務、對象事件服務和安全服務等。務、對象事件服務和安全服務等。命名服務(命名服務(Naming ServiceNaming Service):):允許通過名字查找對象。允許通過名字查找對象。持久性服務(持久性服務(Persistence ServicePersisten

15、ce Service): :提供在各種存儲服提供在各種存儲服務器(包括對象數據庫、關系數據庫和簡單文件)上永久務器(包括對象數據庫、關系數據庫和簡單文件)上永久性存儲對象的統一界面。性存儲對象的統一界面。山東大學計算機科學與技術學院對象服務對象服務生存周期服務(生存周期服務(Life Cycle ServiceLife Cycle Service):):定義了在定義了在對象總線上創建、拷貝、移動和刪除對象的操作。對象總線上創建、拷貝、移動和刪除對象的操作。 事務處理服務(事務處理服務(Transaction ServiceTransaction Service):):提供兩提供兩階段提交協議,

16、用于確保階段提交協議,用于確保ORBORB上的一些分布式對象上的一些分布式對象協同地完成事務處理。協同地完成事務處理。事件服務(事件服務(Event ServiceEvent Service):):允許對象動態注冊允許對象動態注冊或撤消指定的事件。或撤消指定的事件。 安全服務(安全服務(Security ServiceSecurity Service):):提供一個分布式提供一個分布式對象安全的完整框架。對象安全的完整框架。 山東大學計算機科學與技術學院5.1.2 公共設施公共設施 與對象服務不同的是,公共設施面向最終用戶的與對象服務不同的是,公共設施面向最終用戶的應用,它是各種應用可以共享的

17、一系列服務集合。復應用,它是各種應用可以共享的一系列服務集合。復合文檔的管理工具,數據庫存取工具、文件打印工具、合文檔的管理工具,數據庫存取工具、文件打印工具、電子郵件服務都等屬于公共設施。電子郵件服務都等屬于公共設施。山東大學計算機科學與技術學院5.1.3 域界面域界面 針對著某一特殊的應用領域。例如,針對著某一特殊的應用領域。例如,PDME(工廠工廠數據管理環境數據管理環境) 是是OMG發出的最早的這類發出的最早的這類RFP之一,之一,它是為解決制造領域中的問題而發出的。另外,它是為解決制造領域中的問題而發出的。另外,OMG也已經發出了通信、醫藥和財務等領域中的這類也已經發出了通信、醫藥和

18、財務等領域中的這類RFP。山東大學計算機科學與技術學院5.1.4 應用界面應用界面 應用界面針對某一具體應用而產生。應用界面針對某一具體應用而產生。山東大學計算機科學與技術學院5.2 公共對象請求代理體系結構公共對象請求代理體系結構CORBA) CORBA規范詳細說明了規范詳細說明了OMA中中ORB組件的特組件的特性和界面。最新的性和界面。最新的CORBA規范主要包含以下內容:規范主要包含以下內容: ORB 核心(核心(ORB CORE) OMG界面定義語言界面定義語言 界面倉庫和實現倉庫界面倉庫和實現倉庫 語言映射語言映射 存根和框架存根和框架 動態調用動態調用 對象適配器(對象適配器(Ob

19、ject Adapter) ORB之間的互操作之間的互操作山東大學計算機科學與技術學院CORBA 客 戶 服 務 器 ORB 核 心(GIOP/IIOP) 動態調用 IDL存根 ORB 界面 靜態IDL框架 動態框架調用 對象 適配 器 所有 ORB 實現都一致的界面 可能有多個對象適配器 依賴 ORB 核心的界面 與每個對象對應的存根或框架 向上調用界面 向下調用界面 界 面 倉 庫 對象實 現倉庫 山東大學計算機科學與技術學院客戶端發出請求方式: 1)Dynamic Invocation interface (與目標對象的接口無關與目標對象的接口無關), 2) OMG IDL stub (

20、與目標對象接口有關的與目標對象接口有關的stub)對象接口定義:對象接口定義: 1)是用是用OMG IDL。該語言根據可對對象進行的操作和這些操作使用的參數來。該語言根據可對對象進行的操作和這些操作使用的參數來定義對象類型。定義對象類型。 2)把把interface放入放入Interface Repository service中中; 該服務把接口中的元素描述該服務把接口中的元素描述成一個對象。成一個對象。任何能實現任何能實現ORB的軟件中,的軟件中,IDL和和Interface Repository具有相同的作用。具有相同的作用。一個一個client要使用要使用Object Referenc

21、e完成請求,它必須知道對象的類型的及完成請求,它必須知道對象的類型的及具體的操作。具體的操作。Client初始化請求初始化請求: 1)通過調用目標對象的通過調用目標對象的stub routines 2)是動態的創造請求是動態的創造請求 山東大學計算機科學與技術學院Client使用Stub 或Dynamic Invocation Interface 山東大學計算機科學與技術學院Object Implementation 接受請求 山東大學計算機科學與技術學院不論使用不論使用Stub還是還是Dynamic Invocation Interface來發出請求來發出請求具有相同的語義,信息的接收者不能

22、分辨出該請求是使用哪具有相同的語義,信息的接收者不能分辨出該請求是使用哪種方法來傳遞的。種方法來傳遞的。ORB確定適當的實現代碼,傳遞參數,通過確定適當的實現代碼,傳遞參數,通過IDL skeleton或或dynamic skeleton 把控制傳給把控制傳給Object Implementation。每一個接口和每一個接口和object adapter 使用不同的使用不同的Skeletons。為了完成。為了完成請求,請求,object implementation 可能通過可能通過Object Adapter 使用使用來自來自ORB的服務。當完成請求后,控制和輸出結果返回給的服務。當完成請求

23、后,控制和輸出結果返回給client 山東大學計算機科學與技術學院 CORBA體系體系結構結構 1、客戶機應用程序 客戶機應用程序使用CORBA系統來激發定義在一些信息、數據、或應用程序對象上的操作,服務器應用程序則執行這些操作。客戶機應用程序用樁類型激發API或動態激發API向服務器發送請求山東大學計算機科學與技術學院 CORBA體系體系結構結構 2、樁類型激發API 樁類型激發API是兩種發送請求方式種的一種。該API是一個線程API,專用于某類對象上的特定操作。樁類型激發API看起來象函數調用。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 3、客戶樁 一個客戶機應用程序可以

24、用客戶樁給服務器應用程序發送請求。 客戶樁通過使用OMG IDL編譯器編譯OMG IDL接口而產生。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 4、動態激發API 動態激發API是兩種發送請求方式種的一種。該API是面向對象API。動態激發API 在運行時從接口倉庫里發現定義并用它來創建和激發向對象的請求。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 5、ORB(客戶) ORB處理請求與相應服務器和方法的選擇。當一個應用程序為某個對象上的某個操作向ORB發送一個請求時,ORB檢驗參數是否跟接口一致并把請求轉發為服務器,如果需要的話啟動服務器。應用程序能夠同步或異步

25、地調用方法。 ORB是客戶機應用程序的一部分。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 6、上下文對象上下文對象包含有關客戶機、環境的信息。上下文對象被表示成一列屬性及其值。1 客戶機應用程序用上下文對象來獲取運行環境2 而ORB用上下文對象中的信息來決定服務器的定位及被請求方法激活。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 7、接口倉庫存儲各個接口信息的模塊,例如用OMG IDL編寫的接口定義、常量、類型定義等,它們被當成定義的一部分使用。接口倉庫包括對指定對象有效的操作的描述和對操作有效的參數描述。接口倉庫是CORBA系統的集成部分。 山東大學計算機科學

26、與技術學院 CORBA體系體系結構結構 8、ORB(服務器端) ORB接收方法調度請求,激發服務器框架里的方法調度器,引導輸出參數,并完成激發。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 9 對象適配器 對象適配器處理與ORB相關的普通任務。 山東大學計算機科學與技術學院 CORBA體系體系結構結構 10、服務器框架 服務器框架提供調度請求到適當方法的必要代碼。應用程序開發者通過編譯接口定義得到服務器框架。 山東大學計算機科學與技術學院5.3 ORB內核內核山東大學計算機科學與技術學院靜態工作方式靜態工作方式客戶對象實現IDL stubs客戶方代理Static IDL skel

27、eton服務方代理ORB內核對象適配器OAORB內核山東大學計算機科學與技術學院ORB內核的作用內核的作用對象的定位對象的定位 編組(編組(marshlling)與解組)與解組啟動初始服務啟動初始服務 屏蔽底層網絡協議屏蔽底層網絡協議 提供接口庫和其他提供接口庫和其他APIl客戶執行一個遠程對象調用,對象引用經客戶執行一個遠程對象調用,對象引用經stub傳給傳給orb。Orb尋找對應的服務器,確保該服務器做好接收請求的工作尋找對應的服務器,確保該服務器做好接收請求的工作l客戶端對調用進行編組,成為網絡可傳輸的,服務器端進行客戶端對調用進行編組,成為網絡可傳輸的,服務器端進行解組,送給服務器啟動

28、所調用的操作。解組,送給服務器啟動所調用的操作。l如果有返回參數,按如果有返回參數,按2的逆過程處理的逆過程處理山東大學計算機科學與技術學院ORB 核心核心1 功能:把客戶發出的請求傳遞給目標對象,并功能:把客戶發出的請求傳遞給目標對象,并把目標對象的執行結果返回給發出請求的客戶。把目標對象的執行結果返回給發出請求的客戶。2 其重要特征是:提供了客戶和目標對象之間的其重要特征是:提供了客戶和目標對象之間的交互透明性。交互透明性。山東大學計算機科學與技術學院ORB 核心透明性核心透明性 對象位置:客戶不必知道目標對象的物理位置。它可能與客戶一起對象位置:客戶不必知道目標對象的物理位置。它可能與客

29、戶一起駐留在同一個進程中或同一機器的不同進程中,也有可能駐留在網駐留在同一個進程中或同一機器的不同進程中,也有可能駐留在網絡上的遠程機器中絡上的遠程機器中 對象實現:客戶不必知道有關對象實現的具體細節。例如,設計對對象實現:客戶不必知道有關對象實現的具體細節。例如,設計對象所用的編程語言、對象所在節點的操作系統和硬件平臺等。象所用的編程語言、對象所在節點的操作系統和硬件平臺等。 對象的執行狀態:當客戶向目標對象發送請求時,它不必知道當時對象的執行狀態:當客戶向目標對象發送請求時,它不必知道當時目標對象是否處于活動狀態(即是否處于正在運行的進程中)。此目標對象是否處于活動狀態(即是否處于正在運行

30、的進程中)。此時,如果目標對象不是活動的,在把請求傳給它之際,時,如果目標對象不是活動的,在把請求傳給它之際,ORB會透明會透明地將它激活。地將它激活。 對象通信機制:客戶不必知道對象通信機制:客戶不必知道ORB所用的下層通信機制,如,所用的下層通信機制,如,TCP/IP、管道、共享內存、本地方法調用等。管道、共享內存、本地方法調用等。 數據表示:客戶不必知道本地主機和遠程主機對數據表示方式,如數據表示:客戶不必知道本地主機和遠程主機對數據表示方式,如高位字節在前還是在后等,是否有所不同。高位字節在前還是在后等,是否有所不同。山東大學計算機科學與技術學院5.4 IDL語言和語言映射語言和語言映

31、射1 在客戶向目標對象發送請求之前,它必須知道目在客戶向目標對象發送請求之前,它必須知道目標對象所能支持的服務。標對象所能支持的服務。2 對象是通過界面定義來說明它所能提供的服務。對象是通過界面定義來說明它所能提供的服務。3 CORBA對象的界面是利用對象的界面是利用OMG IDL來定義。來定義。山東大學計算機科學與技術學院IDL語言和語言映射語言和語言映射1 OMG IDL 的語法與的語法與C+類似(包括類似(包括C+的預處的預處理語句),它另外增加了一些支持分布式處理的理語句),它另外增加了一些支持分布式處理的關鍵字(關鍵字(in、out和和inout等)。等)。2 OMG IDL 不是編

32、程語言,而是一個純說明性語不是編程語言,而是一個純說明性語言,并且與具體的宿主語言(主機上的編程語言)言,并且與具體的宿主語言(主機上的編程語言)無關。無關。3 這就很自然地將界面與對象實現分離,使得可以這就很自然地將界面與對象實現分離,使得可以用不同的語言來實現對象,而它們之間卻又可以用不同的語言來實現對象,而它們之間卻又可以進行互操作。進行互操作。山東大學計算機科學與技術學院IDL語言和語言映射語言和語言映射1 一個界面說明包含兩部分:界面頭和界面體。一個界面說明包含兩部分:界面頭和界面體。2 界面頭由界面名和一組可選的繼承界面組成。界面頭由界面名和一組可選的繼承界面組成。3 界面體由常量

33、、變量、操作和異常聲明組成。操作界面體由常量、變量、操作和異常聲明組成。操作由操作名、參數和異常來定義。由操作名、參數和異常來定義。山東大學計算機科學與技術學院IDL語言和語言映射語言和語言映射module CCS typedef short TempType; interface Thermometer readonly attribute TempType temperature; ; interface Thermostat: Thermometer void set_temp(in TempType t); ;山東大學計算機科學與技術學院IDL語言和語言映射語言和語言映射1 不能用不能

34、用OMG IDL 直接去實現分布式應用,需要把直接去實現分布式應用,需要把IDL的特性映射為具體語言的實現,這就是語言映射的特性映射為具體語言的實現,這就是語言映射的任務。的任務。2 到目前為止,到目前為止,OMG已為已為C、C+、SmallTalk、Ada95、Cobol和和Java制定了語言映射標準。制定了語言映射標準。山東大學計算機科學與技術學院5.5 存根存根(stub)和框架和框架(skeleton)1 除了把除了把IDL的特性映射為具體語言外,的特性映射為具體語言外,OMG IDL編譯器還根據界面定義來產生客戶方的存根和服務編譯器還根據界面定義來產生客戶方的存根和服務方的框架。方的

35、框架。2 存根的作用是代表客戶創建并發出請求;存根的作用是代表客戶創建并發出請求;3 框架的作用則是把請求交給框架的作用則是把請求交給CORBA對象實現。對象實現。山東大學計算機科學與技術學院存根存根(stub)和框架和框架(skeleton)1 存根使得客戶能夠不關心存根使得客戶能夠不關心ORB的存在,而只要把請的存在,而只要把請求交給存根,存根則負責對請求參數進行封裝和發送,求交給存根,存根則負責對請求參數進行封裝和發送,以及對返回結果進行接收和解封裝。以及對返回結果進行接收和解封裝。2 框架在請求的接收端提供與存根類似的服務,它將框架在請求的接收端提供與存根類似的服務,它將請求參數解封裝

36、,識別客戶所請求的服務,調用對象請求參數解封裝,識別客戶所請求的服務,調用對象實現,并把執行結果封裝,然后返回給客戶方。實現,并把執行結果封裝,然后返回給客戶方。山東大學計算機科學與技術學院客戶端客戶端stub一段程序代碼,服務器端對象在本地的一個代理:一段程序代碼,服務器端對象在本地的一個代理:對客戶而言,可以使用,實際是虛的對客戶而言,可以使用,實際是虛的l利用中間件廠商提供的工具自動生成,利用中間件廠商提供的工具自動生成,l靜態的,一經生成不再改變,除非重新生成靜態的,一經生成不再改變,除非重新生成1.與與ORB的具體實現相關。的具體實現相關。山東大學計算機科學與技術學院服務器端服務器端

37、skeleton一段程序代碼,服務器端對象實現的代理,一段程序代碼,服務器端對象實現的代理,l利用中間件廠商提供的工具自動生成,利用中間件廠商提供的工具自動生成,l靜態的,一經生成不再改變,除非重新生成靜態的,一經生成不再改變,除非重新生成1.與與ORB的具體實現相關。的具體實現相關。山東大學計算機科學與技術學院存根和框架存根和框架1 由于存根和框架都是從用戶的界面定義編譯而來,由于存根和框架都是從用戶的界面定義編譯而來,所以它們都與具體的界面有關,所以它們都與具體的界面有關,2 在請求真實發生之前,存根和框架早已分別被直接在請求真實發生之前,存根和框架早已分別被直接連接到客戶程序和對象實現中

38、去。連接到客戶程序和對象實現中去。3 通過存根和框架的調用被通稱為靜態調用。通過存根和框架的調用被通稱為靜態調用。山東大學計算機科學與技術學院對象實現接收請求對象實現接收請求靜態方式:靜態方式:靜態方式通過由靜態方式通過由IDL生成的框架生成的框架完成。完成。 ORB通過通過IDL框架查找合適的實現代碼、傳送參數,框架查找合適的實現代碼、傳送參數,并將控制傳給對象實現,對象實現執行請求時可通過并將控制傳給對象實現,對象實現執行請求時可通過對象適配器對象適配器OA獲取獲取ORB的某些服務,請求完成后控的某些服務,請求完成后控制與結果返回給客戶程序。制與結果返回給客戶程序。山東大學計算機科學與技術

39、學院客戶端發送請求客戶端發送請求靜態調用(靜態調用(SII) 靜態調用借助于靜態調用借助于客戶程序樁完成客戶程序樁完成。樁與框架在編譯時創建并且在運行時不再改變樁與框架在編譯時創建并且在運行時不再改變,所,所以這些接口稱為以這些接口稱為SII。 IDL樁負責客戶程序的實現語言與樁負責客戶程序的實現語言與ORB內核之間的內核之間的映射。映射。客戶程序開發者必須在程序客戶程序開發者必須在程序編譯之前就知道操作的就知道操作的名字和所有參數與返回值的類型,實際的操作名字、名字和所有參數與返回值的類型,實際的操作名字、參數值和返回值是編寫在應用程序的源代碼中。參數值和返回值是編寫在應用程序的源代碼中。

40、山東大學計算機科學與技術學院請求的漫游請求的漫游Java調用的請求Java客戶端StubOrb可認知的請求Orb傳送請求(IIOP協議,基于HTTP)Poa服務代理服務對象解碼定位調用山東大學計算機科學與技術學院靜態方式的優缺點靜態方式的優缺點編程更容易編程更容易-根據名字調用遠程方法,將參數傳遞給根據名字調用遠程方法,將參數傳遞給方法,和本地方法調用相同。方法,和本地方法調用相同。更強的類型校驗更強的類型校驗-編譯程序時加強了類型校驗。編譯程序時加強了類型校驗。執行良好執行良好-比動態方式快比動態方式快40倍左右倍左右自編文檔自編文檔-通過閱讀代碼可以了解正在進行的東西。通過閱讀代碼可以了解

41、正在進行的東西。不夠靈活,用戶在系統中添加新的對象服務時,客戶不夠靈活,用戶在系統中添加新的對象服務時,客戶程序必須改動源程序,重新編譯,才能使用。程序必須改動源程序,重新編譯,才能使用。山東大學計算機科學與技術學院5.6 動態調用動態調用 CORBA支持兩種用于動態調用的界面:支持兩種用于動態調用的界面: 動態調用界面(動態調用界面(DII)支持客戶方的動態請求調用。支持客戶方的動態請求調用。 動態框架界面(動態框架界面(DSI)支持服務方的動態對象調用。支持服務方的動態對象調用。山東大學計算機科學與技術學院動態調用動態調用1 利用利用DII,客戶方應用可以在運行時動態地向任何對象發出請客戶

42、方應用可以在運行時動態地向任何對象發出請求,而不象靜態調用那樣,必須在編譯時就知道特定的目標求,而不象靜態調用那樣,必須在編譯時就知道特定的目標對象的界面信息。對象的界面信息。2 使用使用DII時,用戶必須手工構造請求信息,包括相應的操作及時,用戶必須手工構造請求信息,包括相應的操作及有關參數等。有關參數等。3 類似地,類似地, DSI允許用戶在沒有靜態框架信息的條件下來獲得允許用戶在沒有靜態框架信息的條件下來獲得對象實現。對象實現。4 過程:客戶在運行時發現服務,獲取界面,動態構造請求,過程:客戶在運行時發現服務,獲取界面,動態構造請求,從而使客戶方調用該對象實現提供服務從而使客戶方調用該對

43、象實現提供服務 山東大學計算機科學與技術學院客戶對象實現DIIDSIORB內核對象適配器OAORB內核接口庫 IR山東大學計算機科學與技術學院DII: Dynamic Invocation Interface客戶端程序在編譯的時候無法得知對象的詳細信息,客戶端程序在編譯的時候無法得知對象的詳細信息,通過通過DII向遠端對象發起調用向遠端對象發起調用客戶端可以通過客戶端可以通過DII中所含的標準的中所含的標準的API動態的決定:動態的決定:調用哪個對象,調用對象中的哪個操作,操作的參調用哪個對象,調用對象中的哪個操作,操作的參數是什么數是什么可以在運行時動態向任何對象請求可以在運行時動態向任何對

44、象請求用戶必須手工構造請求信息,包括相應操作及有關用戶必須手工構造請求信息,包括相應操作及有關參數參數山東大學計算機科學與技術學院DIIDII為客戶端程序提供了為客戶端程序提供了“構建構建”和和“發起發起”遠端對遠端對象調用的能力象調用的能力接口庫提供了在運行時刻發現對象的能力。接口庫提供了在運行時刻發現對象的能力。沒有接口庫,就不會有真正的沒有接口庫,就不會有真正的CORBA動態特性動態特性山東大學計算機科學與技術學院動態框架接口動態框架接口-DSI一組標準的一組標準的API服務器端通過這組標準的服務器端通過這組標準的API動態的決定調用的對動態的決定調用的對象、操作,以及參數象、操作,以及

45、參數山東大學計算機科學與技術學院問題案例:如何管理不斷出現的數字化設備問題案例:如何管理不斷出現的數字化設備電信設備新增結點ORB計算機設備計算機設備原有系統控制器IR名字服務DII注冊接口名字注冊取對象取接口山東大學計算機科學與技術學院動態方式優缺點動態方式優缺點靈活靈活可移植性強可移植性強可執行程序的可執行程序的“體積體積”小小使用復雜使用復雜速度緩慢速度緩慢在同一個應用程序中,可以同時使用兩種方式在同一個應用程序中,可以同時使用兩種方式山東大學計算機科學與技術學院5.7 對象適配器對象適配器ORB內核無法為所有的對象提供一個統一、方便有效的界面。內核無法為所有的對象提供一個統一、方便有效

46、的界面。可以將目的對象分成若干組,由特定的對象適配器來為各組對象服務可以將目的對象分成若干組,由特定的對象適配器來為各組對象服務 CORBA給出了對象適配器(給出了對象適配器(POA),以滿足大多數對象的需要),以滿足大多數對象的需要POA提供了產生和解釋對象引用、對請求進行認證、激活提供了產生和解釋對象引用、對請求進行認證、激活/去活實現去活實現 、激、激活活/去活單個對象、通過框架調用方法等功能去活單個對象、通過框架調用方法等功能. 在提供這些功能時在提供這些功能時 , POA要用到一些與操作系統有關的知識要用到一些與操作系統有關的知識 ,這些知識由這些知識由實現倉庫提供,實現倉庫還存放對

47、象實現的有關信息。實現倉庫提供,實現倉庫還存放對象實現的有關信息。 ORB將服務請求的參數及操作控制權傳遞給將服務請求的參數及操作控制權傳遞給POA,由,由POA將執行結果返將執行結果返回給回給ORB 山東大學計算機科學與技術學院對象適配器對象適配器類似于容器的概念,提供了若干服務:類似于容器的概念,提供了若干服務: 對象引用的生成與解釋對象引用的生成與解釋 根據對象引用找到它對應的對象實現根據對象引用找到它對應的對象實現 方法調用方法調用 交互的安全性交互的安全性 對象的激活與終止對象的激活與終止 對象實現的注冊對象實現的注冊同同5個組件打交道:個組件打交道:ORB核心,框架,動態框架,實現

48、庫,動態框架,實現庫,對象實現山東大學計算機科學與技術學院對象適配器對象適配器 對象適配器是聯系對象實現與對象適配器是聯系對象實現與ORB本身的紐帶。本身的紐帶。另外,它的引入還大大減輕了另外,它的引入還大大減輕了ORB的任務,從而簡化的任務,從而簡化了了ORB的設計。具體地說,對象適配器主要完成以下的設計。具體地說,對象適配器主要完成以下工作:工作: 對象登記對象登記利用對象適配器所提供的操作,可以將利用對象適配器所提供的操作,可以將CORBA的實現倉庫中具有編程語言形式的實體(的實現倉庫中具有編程語言形式的實體(servant,伺服器伺服器)登記為登記為CORBA的對象實現的對象實現。山東

49、大學計算機科學與技術學院對象適配器對象適配器 對象引用對象引用(OR,Object Reference)的產生的產生對象適配器為對象適配器為CORBA對象生成對象引用。客戶應用程序通過對象引用來訪對象生成對象引用。客戶應用程序通過對象引用來訪問對象實例。問對象實例。 服務器進程的激活服務器進程的激活如果客戶發出請求時,目標對象所在的如果客戶發出請求時,目標對象所在的服務器還未運行,則對象適配器自動激活該服務器。服務器還未運行,則對象適配器自動激活該服務器。山東大學計算機科學與技術學院對象適配器對象適配器對象的激活。對象的激活。對象的撤消對象的撤消在預先規定的時間片內,如果一直沒有發向某個在預先

50、規定的時間片內,如果一直沒有發向某個目標對象的請求,則對象適配器撤消這一對象,以節省系統資源。目標對象的請求,則對象適配器撤消這一對象,以節省系統資源。對象向上調用對象向上調用對象適配器把請求分配給已登記了的對象。對象適配器把請求分配給已登記了的對象。山東大學計算機科學與技術學院5.8 接口倉庫和實現倉庫接口倉庫和實現倉庫 ORB提供了兩個用于存儲有關對象信息的服務:提供了兩個用于存儲有關對象信息的服務:界面倉庫和實現倉庫。界面倉庫和實現倉庫。山東大學計算機科學與技術學院接口倉庫接口倉庫1 接口倉庫存儲各個界面信息的模塊,如用接口倉庫存儲各個界面信息的模塊,如用IDL編寫的接口定義、編寫的接口

51、定義、常量、類型等。常量、類型等。2 它本身作為一個對象而存在。它本身作為一個對象而存在。3 應用程序可以象調用其它應用程序可以象調用其它CORBA對象所提供的操作一樣,來對象所提供的操作一樣,來調用接口的操作。調用接口的操作。4接口倉庫允許應用程序在運行時訪問接口倉庫允許應用程序在運行時訪問OMG IDL類型系統。例類型系統。例如,當應用程序在運行時遇到一個不知道其類型的對象時,如,當應用程序在運行時遇到一個不知道其類型的對象時,可以通過接口倉庫的操作來遍歷系統中的所有接口信息。可以通過接口倉庫的操作來遍歷系統中的所有接口信息。5 由此可見,接口倉庫的引入很好地支持了由此可見,接口倉庫的引入

52、很好地支持了CORBA的動態調用。的動態調用。山東大學計算機科學與技術學院實現倉庫實現倉庫1 實現倉庫所完成的功能與接口倉庫類似,只不過它實現倉庫所完成的功能與接口倉庫類似,只不過它存儲的是對象實現的信息。存儲的是對象實現的信息。2 實現庫包括的信息讓實現庫包括的信息讓ORB可以定位并激活對象的實可以定位并激活對象的實現。實現庫中的信息是特定于現。實現庫中的信息是特定于ORB或實現環境的,或實現環境的,3 實現的安裝和控制策略是通過實現庫實現的。除了,實現的安裝和控制策略是通過實現庫實現的。除了,它可以充當它可以充當ORB功能外,實現庫通常還保存與功能外,實現庫通常還保存與ORB對對象實現相關

53、的信息。象實現相關的信息。 山東大學計算機科學與技術學院5.9 ORB 之間的互操作之間的互操作在發布在發布CORBA2.0之前,之前,ORB產品的最大缺點是:不產品的最大缺點是:不同廠商所提供的同廠商所提供的ORB產品之間并不能互操作。產品之間并不能互操作。為了達到異構為了達到異構ORB系統之間互操作的目的,系統之間互操作的目的,CORBA2.0規范中定義了標準通信協議規范中定義了標準通信協議GIOP(General inter-ORB Protocol)。)。山東大學計算機科學與技術學院5.9.1 域域指這樣一個范圍,在其中的對象具有公共的特征,服從相同指這樣一個范圍,在其中的對象具有公共

54、的特征,服從相同的規則。的規則。ORB間的互操作機制就是為不同實現的間的互操作機制就是為不同實現的ORB能共存于同一環能共存于同一環境下,而提供的相互識別和轉換的機制。境下,而提供的相互識別和轉換的機制。當需要的信息離開它的域時,就必須使用橋接來傳遞信息。當需要的信息離開它的域時,就必須使用橋接來傳遞信息。橋接的作用是確保信息能完整的從一個橋接的作用是確保信息能完整的從一個ORB映射到另一個映射到另一個ORB。 可采用可采用inter-ORB 實現實現間接橋接:不同域中多個間接橋接:不同域中多個ORB通信通信直接橋接:同域,即能理解相同的對象引用和相同的直接橋接:同域,即能理解相同的對象引用和

55、相同的IDL山東大學計算機科學與技術學院5.9.2 互操作性的實現互操作性的實現從策略上,它分為間接和直接兩種橋接機制,從策略上,它分為間接和直接兩種橋接機制,從實現層次上從實現層次上 線內橋接是指在線內橋接是指在ORB內部執行必要的轉折和代碼映射;內部執行必要的轉折和代碼映射; 請求層橋接是指在請求層橋接是指在ORB之外執行請求轉換和代碼映射。之外執行請求轉換和代碼映射。 為了實現為了實現ORB間的互操作,間的互操作,CORBA規范還定義了規范還定義了GIOP協議和協議和IIOP協議。協議。GIOP協議用于規定在協議用于規定在ORB間通信的標準傳輸語義和消息格式間通信的標準傳輸語義和消息格式

56、集,而集,而IIOP協議用于指明如何使用協議用于指明如何使用TCP/IP連接來交換連接來交換GIOP消息,它消息,它是一個用于是一個用于Internet上的標準交互協議。把上的標準交互協議。把ORB互操作規范加入互操作規范加入ORB體系結構中,會引起體系結構中,會引起ORB內部執行畸制發生一些改變。內部執行畸制發生一些改變。 山東大學計算機科學與技術學院5.9.3 協議協議GIOP協議:用于規定在協議:用于規定在ORB間通信的標準傳輸語間通信的標準傳輸語義和消息格式集義和消息格式集IIOP協議:用于指明如何使用協議:用于指明如何使用TCP/IP連接來交換連接來交換GIOP消息,是一個用于消息,是一個用于Internet上的標準交互協議。上的標準交互協議。把把ORB互操作規范加入互操作規范加入ORB體系結構中,會引起體系結構中,會引起ORB內部執行機制發生一些改變內部執行機制發生一些改變山東大學計算機科學與技術學院ORB 之間的互操作之間的互操作GIOP(Global Inter_ORB protocol)協議由協議由3個部分組成:個部分組成: 公共數據表示(公共數據

溫馨提示

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

評論

0/150

提交評論