對象請求代理

對象請求代理

對象請求代理(Object Request Broker)是用戶提供與其他分散式網路環境中對象通信的接口,是中間件(Middleware)中主要的一類,它在CORBA(Common Object Request Broker Architecture)規範中處於核心地位,定義異構環境下對象透明地傳送請求和接收回響的基本機制,是建立對象之間client/server關係的中間件。它的作用在於提供一個通信框架,透明地在異構的分布計算環境中傳遞對象請求。CORBA規範包括了ORB的所有標準接口。對象請求代理這個結構不需要作為組件單獨實現,它由接口定義。任何提供正確接口的ORB實現都是可被接受的。

基本信息

定義

對象請求處理是在對象間建立客戶/伺服器聯繫的一種中間件

概述

對象請求代理對象請求代理
中間件是一種獨立的系統軟體服務程式,分散式套用軟體藉助這種軟體在不同的技術之間共享資源。
中間件位於客戶機/伺服器的作業系統之上,管理計算資源網路通訊。是連線兩個獨立應用程式或獨立系統的軟體。相連線的系統,即使它們具有不同的接口,但通過中間件相互之間仍能交換信息。執行中間件的一個關鍵途徑是信息傳遞。通過中間件,應用程式可以工作於多平台或OS環境,能滿足大量套用的需要運行於多種硬體和OS平台支持分布計算,提供跨網路、硬體和OS平台的透明性的套用或服務的互動支持標準的協定支持標準的接口。

功用

功能

對象請求代理(ORB)是對象匯流排,它在CORBA規範中處於核心地位,定義異構環境下對象透明地傳送請求和接收回響的基本機制,是建立對象之間client/server關係的中間件。ORB使得對象可以透明地向其他對象發出請求或接受其他對象的回響,這些對象可以位於本地也可以位於遠程機器。ORB攔截請求調用,並負責找到可以實現請求的對象、傳送參數、調用相應的方法、返回結果等。client對象並不知道同server對象通訊、激活或存儲server對象的機制,也不必知道server對象位於何處、它是用何種語言實現的、使用什麼作業系統或其他不屬於對象接口的系統成分。

作用

它的作用在於提供一個通信框架,透明地在異構的分布計算環境中傳遞對象請求。CORBA規範包括了ORB的所有標準接口。1991年推出的CORBA 1.1 定義了接口描述語言OMGIDL和支持Client/Server對象在具體的ORB上進行互操作的API。CORBA 2.0 規範描述的是不同廠商提供的ORB之間的互操作。值得指出的是client和server角色只是用來協調對象之間的相互作用,根據相應的場合,ORB上的對象可以是client,也可以是server,甚至兼有兩者。當對象發出一個請求時,它是處於client角色;當它在接收請求時,它就處於server角色。大部分的對象都是既扮演client角色又扮演server角色。另外由於ORB負責對象請求的傳送和server的管理,client和server之間並不直接連線,因此,與RPC所支持的單純的Client/Server結構相比,ORB可以支持更加複雜的結構。

體系結構

公共對象請求代理體系結構(CommonObjectRequestBroker Architecture,也稱通用對象請求代理體系結構),是由OMG組織制訂的一種標準的面向對象套用程 序體系規範。或者說 CORBA體系結構是對象管理組織(OMG)為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案;OMG組織是一個國際性的非盈利組織,其職責是為套用開發提供一個公共框架,制訂工業指南和對象管理規範,加快對象技術的發展。

OMG組織成立後不久就制訂了OMA(Object Management Architecture,對象管理體系結構)參考模型,該模型描述了OMG規範所遵循的概念化的基礎結構。OMA由對象請求代理ORB、對象服務、公共設施、域接口和套用接口這幾個部分組成,其核心部分是對象請求代理ORB(Object Request Broker)。對象服務是為使用和實現對象而提供的基本服務集合;公共設施是向終端用戶應用程式提供的一組共享服務接口;域接口是為套用領域服務而提供的接口;套用接口是由開發商提供的產品,用於它們的接口,不屬於OMG標準的內容。ORB提供了一種機制,通過這種機制,對象可以透明的發出請求和接收回響。分布的、可以互操作的對象可以利用ORB構造可以互操作的套用。

CORBA標準由物件管理組織(OMG)設立並進行控制,CORBA定議了一系列API,通信協定,和物件/服務信息模型用於使得異質應用程式能夠互相操作,這些應用程式用不同的程式語言編寫,運行在不同的平台上。CORBA因此為定義明確的物件提供了平台和位置的透明性,這些物件是分散式計算平台的基礎。

通常來說,CORBA把用其他語言開發的程式碼和關於該程式碼能力和如何調用該程式碼的資訊包到一個套裝(package)中,包成套裝的物件則可以在網路上被其他程式(或CORBA物件)調用。 在這個意義上來講,CORBA可以被看作是一個機器可讀的檔案檔格式,類似於標頭檔(header),但是具有相當多的資訊。

CORBA使用一種接口定義語言用於刻畫物件將呈現出來的接口。CORBA又規定了從IDL到特定程式語言,如C++或Java,實現的映射。這個映射精確的描述了CORBA資料類型是如何被用戶端和伺服器端實現的。標準映射的有Ada、C、C++、Smalltalk、Java、以及Python。還有一些非標準的映射,為Perl和Tcl的映射由這些語言寫的ORB實現。

分類

對象請求代理這個結構不需要作為組件單獨實現,它由接口定義。任何提供正確接口的ORB實現都是可被接受的。接口可分為以下幾大類:

1.對於所有ORB實現均相同的接口;

2. 指定於特定對象類型的操作;

3. 指定於對象實現的特定形式的操作;

不同的ORB可以採用不同的實現策略,加上IDL編譯器,庫和不同的對象適配器,這一切提供了一系列對客戶的服務和對具有不同屬性對象的實現。可以存在多個ORB實現,它們有不同的名稱和不同的實現方法與調用方法,對於客戶而言,客戶可以同時訪問由不同ORB實現管理的對象,當幾個ORB共同工作時,它們必須能夠區別它們各自的對象名(也就是對象參考),客戶不管區別只管使用。ORB核心是ORB的一部分,它提供了對象的基本命名和請求通信機制。CORBA設計得可以支持不同的對象機制,它是通過在ORB核心上建立ORB來完成這一點的。

一個對象的客戶可以訪問此對象參考,並對對象進行操作。客戶不清楚對象的內部結構,它只知道對象的接口和執行操作所需要的時間和空間等資源。雖然我們可以把客戶想像為一個調用對象的進程,但是我們也不要忘記了對象也可以調用另外對象的服務。客戶看到的ORB接口和人觀念中的接口有差不多,這就為編程提供了幫助。客戶不需要對代碼進行改變就可以通過ORB實現功能,對象適配器只能由ORB或對象實現調用。

對象實現提供了對象的表現形式。通常實現由另一對象提供或由相應的軟體提供,當然也可以自己編程實現。在某些情況下,對象的主要功能是非對象實體產生作用。在CORBA中可以支持對象的不同實現。通常,對象實現不依賴於ORB或客戶請求,對象實現可以通過選擇對象適配器選擇和ORB相關服務來選擇接口。

對象參考是需要在ORB內指定的信息,客戶和對象實現相應於語言映射有對象參考的一個透明定義,這樣就把實現的表示與參考隔離開了。兩個ORB實現可能在選擇對象參考表示時是不同的。所有的ORB必須提供相對於對象參考一致的語言映射,這使得程式能夠獨立於ORB對對象參考進行訪問。

相關詞條

相關搜尋

熱門詞條

聯絡我們