基於CORBA的分佈式程序設計(Advanced CORBA Distributed Programming)(二)

第二章 Corba 的核心

2.1基本概念:

1、ORB(object Request Broker)對象請求代理:它作爲一個“軟件總線”來連接網絡上的不同對象,提供對象的定位和方法調用,它是CORBA實現的關鍵。

2、OA(Object Adapter)對象適配器:用於構造對象實現與ORB之間的接口。它給框架發送方法,調用並且支持服務器對象的生命週期(如:對象的創建和刪除)。

3、BOA(Basic Object Adapter)基本對象適配器:負責激活對象,即當客戶請求對象的服務時,激活對象實現的能力。

4、POA(Portable Object Adapter)可移植對象適配器:是BOA的替代方式,提供大量可擴展的接口,來處理一些對於BOA來說不合理的要求。特性:

(1) 支持透明激活對象。

(2) 允許單個服務者支持很多對象標識。

(3) 允許一個服務者上有多個POA,每個都有自己的一套管理策略。

(4) 將對不存在服務者的請求委託給默認服務者,或者向服務者的管理器請求一個合適的服務者。

5、DII(Dynamic Invocation Interface)動態調用接口:位於客戶端,發送客戶端的調用請求。

6、DSI(Dynamic Skeleton Interface)動態框架接口,位於服務器端,傳送客戶端的調用請求。

7、IDL(Interface Definition Language)接口定義語言:定義客戶和服務器之間的靜態接口,通過編譯器生成客戶存根、服務器框架,以及根據支持的語言映射,自動生成來自一個CORBA IDL的代碼。

目前支持的語言映射包括:Java,C++,Ada,SmallTalk和COBOL等。 CORBA IDL是由對象管理組織(Object Management Group)爲定義所有的CORBA界面而制定的。這裏提供一個IDL的瀏覽,讓你能夠建立IDL文件定義大多數的對象。最新的IDL完整定義見OMG的web站點([email protected])。

你可以用IDL定義types(類型),constans(常量)和interfaces(界面)。這與C++中定義類型、常量和類相似。IDL是定義界面和類型的語言,它沒有供你編寫實現部分的元素。界面定義在IDL文件中的對象必須實現在分離的實現單元中。

IDL文件的標識符包括英文字母、數字和下劃線,但不可以用下劃線開頭。IDL是大小寫敏感的。然而,避免使用下劃線通常是個好主意,因爲將IDL翻譯到不支持下劃線的語言時會出問題。類似的,僅用大小寫區標識符也不好,這在大小寫不敏感的語言中會引起問題。

8、SII(Static Invocation Interface)靜態調用接口:位於客戶端,客戶與ORB之間的靜態接口。

9、SSI(Static Skeleton Interface)靜態框架接口:位於服務器端,ORB與服務器之間的靜態接口。

10、stub 存根:位於客戶端,由IDL編譯器編譯IDL文件生成,其功能類似一個客戶代理。

11、skeleton 框架:位於服務器端,由IDL編譯器編譯IDL文件生成,其功能是負責發送一個操作調用給能實現此操作的服務。

12、IR(Interface Repository)接口存儲庫:存儲運行時所需要的IDL規範。

13、IMR(Implementation Repository)實現存儲庫:存儲對象實現(一個服務器)的詳細信息(即一個執行程序需要被放置在哪一個服務器上)。

14、GIOP(General Inter-ORB Protocol)通用ORB之間的協議:定義了一個不同ORB之間的接口。 GIOP 是 CORBA 方法調用的核心部分。GIOP 不基於任何特別的網絡協議,如 IPX 或 TCP/IP。爲了確保互操作性,OMG 必須將 GIOP 定義在所有供應商都支持的特定傳輸之上。如果有詳細和簡潔的消息規範,則不會提供互操作性,因爲所有供應商使用不同的傳送機制來實現這個互操作性。

15、IIOP(Inte.NET Inter-ORB Protocol)因特網ORB之間的協議:IIOP把GIOP消息數據映射爲TCP/IP連接行爲和輸入/輸出流讀/寫。OMG 在最廣泛使用的通信傳輸平臺 -- TCP/ip 上標準化 GIOP。GIOP 加 TCP/IP 等於 IIOP!就這麼簡單。

注意:IIOP不是完全從GIOP分離出來的協議,它更像是GIOP的一個實例。

16、IOR(Interoperable Object Reference)可操作對象引用:它包括所有客戶與服務器聯繫所需的各種信息(包括CORBA服務器對象進程的IP地址和TCP端口等),ORB將通過它產生在網絡上唯一標識那個將被分佈對象的消息。

17、ORBAservices CORBA服務:在ORB級別之上,定義了大多數分佈式企業對象利用的公共服務。

如:

命名服務

交易對象服務

關係服務

生命週期服務

外表化服務

持久性服務

查詢服務

對象集合服務

屬性服務

事件服務

許可證服務

時間服務

事務服務

併發控制服務

安全服務

18、CORBA Facilities CORBA工廠:位於CORBA Services之上,定義了更高層次的分佈式服務與框架。如:打印、電子郵件、文檔管理等。

下圖是CORBA的一張框架圖:

 圖 

2-1 CORBA框架圖

 

2.2 CORBA體系結構概述

CORBA規範充分利用了現今軟件技術發展的最新成果,在基於網絡的分佈式應用環境下實現應用軟件的集成,使得面向對象的軟件在分佈、異構環境下實現可重用、可移植和互操作。其特點可以總結爲如下幾個方面: XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

CORBA的核心是一套標準的語言、接口和協議,以支持異構分佈應用程序間的互操作性及獨立於平臺和編程語言的對象重用。

引入中間件(Middleware)作爲事務代理,完成客戶機(Client)向服務對象方(Server)提出的業務請求(引入中間件概念後分布計算模式如圖2-2所示); 

 

 

  圖2-2 引入中間件後客戶機與服務器之間的關係

2. 實現客戶與服務對象的完全分離,客戶不再需要了解服務對象的實現過程以及具體位置(參見圖2所示的CORBA系統體系結構圖);

3. 提供軟總線機制,使得在任何環境下、採用任何語言開發的軟件只要符合接口規範的定義,均能夠集成到分佈式系統中;

4. CORBA規範軟件系統採用面向對象的軟件實現方法開發應用系統,實現對象內部細節的完整封裝,保留對象方法的對外接口定義。

在以上特點中,最突出的是中間件的引入, 在CORBA系統中稱爲對象請求代理(ORB,Object Request Broker)和採用面向對象的開發模式。

對象模型是應用開發人員對客觀事物屬性和功能的具體抽象。由於CORBA使用了對象模型,將CORBA系統中所有的應用看成是對象及相關操作的集合,因此通過對象請求代理(ORB),使CORBA系統中分佈在網絡中應用對象的獲取只取決於網絡的暢通性和服務對象特徵獲取的準確程度,而與對象的位置以及對象所處的設備環境無關。

 

 

  圖2-3 CORBA系統體系結構圖

CORBA體系的主要內容包括以下幾部分:

(1) 對象請求代理ORB(Object Request Broker):負責對象在分佈環境中透明地收發請求和響應,它是構建分佈對象應用、在異構或同構環境下實現應用間互操作的基礎。

(2) 對象服務(Object Services):爲使用和實現對象而提供的基本對象集合,這些服務應獨立於應用領域。主要的CORBA服務有:名錄服務(Naming Service)、事件服務(Event Service)、生命週期服務(Life Cycle Service)、關係服務(Relationship Service)、事務服務(Transaction Service)等。這些服務幾乎包括分佈系統和麪向對象系統的各個方面,每個組成部分都非常複雜。

(3) 公共設施(Common Facilitites):向終端用戶提供一組共享服務接口,例如系統管理、組合文檔和電子郵件等。

(4) 應用接口(Application Interfaces):由銷售商提供的可控制其接口的產品,相應於傳統的應用層表示,處於參考模型的最高層。

(5) 領域接口(domain Interfaces):爲應用領域服務而提供的接口。如OMG組織爲PDM系統制定的規範。

CORBA的產生有其特定的背景,它是在面嚮對象的技術興起,客戶/服務器模式普遍得到應用的前提下,爲屏蔽通信和實現細節的需求,繼承已有系統,消除“孤島”現象而產生的。他彌補了傳統分佈處理系統的不足(如RPC等),具有很多新的特色:

(1) 引入代理(Broker)概念。代理起到如下作用:完成對客戶方提出的抽象服務請求的映射;自動發現和找到服務器;自動設定路由,實現服務方程序的執行。

(2) 客戶方程序與服務方程序完全分離。用傳統的客戶/服務器方式有很大的不同,客戶將不再與服務方發生直接的聯繫,而僅需要與代理髮生聯繫,客戶與服務器方都可方便升級。

(3) 提供“軟件總線”機制。任何應用系統只要提供符合CORBA系統定義的一組接口規範,就可以方便的集成到CORBA系統中,這個接口規範獨立於任何實現語言和環境。如此,客戶應用於服務對象之間可以透明地交互運行,實現應用軟件在“軟件總線”上的“即插即用”。

(4) 分層的設計原則和實現方式。CORBA系統的底層核心是一個精練的系統,各種複雜系統和應用可以由核心擴展和延伸。

CORBA技術是先進技術發展的結果,它將面向對象的概念揉合到分佈計算中,使得CORBA規範成爲開放的、基於客戶/服務器模式的、面向對象的分佈計算的工業標準。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章