資源描述:
《對象請求代理(ORB)(陳柏年)》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、對象請求代理(ORB)(陳柏年)公用對象請求代理(調度)程序體系結構CORBA(CommonObjectRequestBrokerArchitecture),是對象管理組織OMG(ObjectManagementGroup)對應當今快速增長的軟硬件的協(xié)同工作能力的要求而提出的方案。簡而言之,CORBA允許應用程序和其他的應用程序通訊,而不論他們在什么地方或者由誰來設計。CORBA1.1由對象管理組織在1991年發(fā)布。他定義了接口定義語言(IDL)和應用編程接口(API),從而通過實現對象請求代理(ORB)來激活客戶/服務器的交互。
2、CORBA2.0于1994年的12月發(fā)布。他定義了如何跨越不同的ORB提供者而進行通訊。ORB是一個中間件,他在對象間建立客戶-服務器的關系。通過ORB,一個客戶可以很簡單地使用服務器對象的方法而不論服務器是在同一機器上還是通過一個網絡訪問。ORB截獲調用然后負責找到一個對象實現這個請求,傳遞參數和方法,最后返回結果??蛻舨挥弥缹ο笤谀睦?,是什么語言實現的,他的操作系統(tǒng)以及其他和對象接口無關的東西。在傳統(tǒng)的客戶/服務器程序中,開發(fā)者使用他們自己設計的或者公認的標準定義設備之間的協(xié)議。協(xié)議的定義依賴于實現的語言,網絡的傳輸和其他許
3、許多多因素。ORB將這個過程簡單化。使用ORB,協(xié)議定義是通過應用接口,而該接口是接口定義語言(IDL)的一個實現,他和使用的編程語言無關的。并且ORB提供了很大的靈活性。他讓程序員選擇最適當的操作系統(tǒng),運行環(huán)境和設計語言來建設系統(tǒng)中每個組件。更重要的是,他允許集成已經存在的組件。CORBA是在面向對象標準化和互操作性道路上的一個信號。通過CORBA,用戶不必要知道軟硬件的平臺和他們處在企業(yè)網的什么地方就可以操作。ORB結構通過ORB發(fā)送請求上面的圖形說明的是客戶端發(fā)送一個請求到對象的實現??蛻舳耸窍M麑δ硨ο髨?zhí)行操作的實體。對象
4、的實現是一片代碼和數據來實際實現對象。ORB負責下面的必要的機制:對該請求找到對象的實現,讓對象的實現準備好接受請求,和請求交換數據??蛻舳说慕涌谕耆毩⒂趯ο蟮奈恢?,其實現的語言和其他不影響對象接口的東西。ORB接口的結構上面的圖形顯示的是一個獨立的對象請求代理(ORB)的結構。ORB的接口是灰色的矩形。箭頭說明ORB的調用關系。為了提出一個請求,客戶端可以使用動態(tài)調用接口DII(DynamicInvocationInterface)(和目標對象的接口獨立)或者一個OMG的IDL占位程序(具體的占位程序依賴于目標對象的接口)???/p>
5、戶端也可以直接和ORB在某些地方交互。對象的實現通過OMG的IDL產生的骨架或者是一個動態(tài)骨架的調用來接受請求。對象的實現可能在處理請求或其他的時候調用ORB。對象接口定義的定義可以有下面兩種方式。接口可以通過接口定義語言靜態(tài)的定義,這叫做OMG的IDL。該語言按照可以進行的操作和該操作的參數定義對象類型?;蛘撸ㄒ部梢宰鳛檠a充),接口可以加入到InterfaceRepositoryservice。該服務描述了該接口作為一個對象的組件,并允許運行時訪問這些組件。在任何ORB實現中,IDL和InterfaceRepository有相同
6、的表達能力??蛻舳耸褂谜嘉怀绦蚧蛘邉討B(tài)調用接口客戶端通過訪問對象的對象引用和了解對象的類型及要求執(zhí)行的操作來發(fā)布一個請求??蛻粽{用占位程序例程來請求或者動態(tài)構造請求。無論動態(tài)還是占位程序的接口都可以相同實現。接收方不可能知道請求是如何發(fā)布的。對象的實現接受請求ORB向對象實現定位適當的代碼,傳遞參數,傳輸控制。這一切都通過IDL骨架或者動態(tài)骨架。骨架對于不同的接口和對象適配器是不同的。在執(zhí)行該請求的時候,對象的實現可能由ORB通過對象適配器來獲得一定的服務。當請求完成,控制和輸出值返回給客戶。對象的實現可能會選擇使用的對象適配器。
7、該決定基于對象的實現要求的服務。接口和ImplementationRepositories上圖說明的是接口和實現信息如何讓客戶和對象實現訪問的。接口用OMG的IDL和/或InterfaceRepository定義。該定義用于產生客戶占位程序和對象的實現的骨架。對象的實現的信息在安裝時就提供好了,儲存在ImplementationRepository中以便請求發(fā)布的時候使用。對象請求代理(ORB)詳細說明ORB是一個中間件(middleware),它可以建立對象之間的client/server關系。通過ORB,一個client可以透
8、明的引用同一臺機器上或網絡上的一個server對象的方法。ORB解釋該調用并負責查找一個實現該請求的對象,找到后,把參數傳給該對象,調用它的方法,最后返回結果。client并不清楚該對象的位置,它的編程語言,它的操作系統(tǒng)以及其它不是對象接口的系統(tǒng)信