天天看點

Corba概念(GIOP、IIOP、IOR、ORB、IDL)寫在前面CORBA

寫在前面

本文轉自 Corba概念(GIOP、IIOP、IOR、ORB、IDL).

防止哪天找不到了,是以自己做了個備份。

CORBA

公用對象請求代理(排程)程式體系結構(Common Object Request Broker Architecture),縮寫為 CORBA,是對象管理組織(Object Management Group)對應當今快速增長的軟硬體的協同工作能力的要求而提出的方案。簡而言之,CORBA 允許應用程式和其他的應用程式通訊,而不論他們在什麼地方或者由誰來設計。

CORBA曾經是分布式計算的主流技術,在電信等領域使用廣泛。開發和部署成本較高,目前屬于已經基本被遺棄的技術,被輕量級的Web服務、RESTful服務等代替了。

IOR

可互操作對象引用。

ORB(Object Request Broker)

對象請求代理。ORB 是一個中間件,他在對象間建立客戶-伺服器的關系。通過 ORB,一個客戶可以很簡單地使用伺服器對象的方法而不論伺服器是在同一機器上還是通過一個網絡通路。ORB 截獲調用然後負責找到一個對象實作這個請求,傳遞參數和方法,最後傳回結果。客戶不用知道對象在哪裡,是什麼語言實作的,他的作業系統以及其他和對象接口無關的東西。

ORB 守護程式

負責查找 IOR 指定的對象實作,以及建立客戶機和伺服器之間的連接配接。一旦建立了連接配接,GIOP 将定義一組由客戶機用于請求或伺服器用于響應的消息。

GIOP(General Inter-ORB Protocol)

GIOP(通用對象請求代理間通信協定)元件提供了一個标準傳輸文法(低層資料表示方法)和ORB之間通信的資訊格式集。GIOP隻能用在ORB與ORB之間,而且,隻能在符合理想條件的面向連接配接傳輸協定中使用。它不需要使用更高一層的RPC機制。這個協定是簡單的(盡可能簡單,但不是簡單化),可更新的,使用友善。它被設計為可移動的、高效能的表現、較少依靠其它的低層傳輸協定。當然,由于不同傳輸使用不同版本的GIOP,它們可能不能直接協作工作,但它能很容易的連接配接網絡域。

IIOP (Internet Inter-ORB Protocol)

IIOP(Internet對象代理間通信協定) 元件指出如何通過TCP/IP連接配接交換GIOP資訊。IIOP為Internet提供了一個标準的協作工作協定,它使相容的ORB能基于現在流行的協定和産品進行“out of the box”方式的協作工作。它也能被用于兩個半橋(half-bridges )之間的協定。該協定能用于任何ORB與IP(Internet Protocol)域之間的協作工作,除非ORB選擇了特殊的協定。這時,它是TCP/IP環境下基本的inter-ORB 協定,最普遍的傳輸層。

GIOP 不基于任何特别的網絡協定,OMG 在最廣泛使用的通信傳輸平台 – TCP/IP 上标準化 GIOP,GIOP 加 TCP/IP 等于 IIOP

IDL

IDL全稱接口定義語言,是用來描述軟體元件接口的一種規範語言。使用者可以定義子產品、接口、屬性、方法、輸入輸出參數,甚至異常等等。IDL在不同的語言下都有相應的實作,可以把IDL描述的接口編譯為目智語言,包括用戶端代理和伺服器端架構,以及相應的幫助類等等。比如Java中提供過了idlj指令用來編譯。

CORBA與ORB的關系

CORBA的分布式對象調用能力依賴于ORB,而ORB之間進行通信是通過GIOP協定完成的。GIOP定義了ORB之間互操作的傳輸文法和标準消息格式,比如請求頭、請求體所包含的字段和長度。

IIOP與GIOP的關系

IIOP與GIOP的關系就象特特殊語言與OMG IDL之間的關系;GIOP能被映射到不同層,它能指定協定。就象IDL不能見招完整的程式一樣,GIOP 本身也不能提供完整的協作工作。IIOP和不同傳輸層上的其它相似映射,實作抽象的GIOP定義。

GIOP是一個抽象的協定,而IIOP是其一個具體的實作,定義了,如何通過TCP/IP協定交換GIOP消息。 是以通常我們說CORBA是基于IIOP協定的。

OSI模型和GIOP模型

Corba概念(GIOP、IIOP、IOR、ORB、IDL)寫在前面CORBA