隨筆 - 71  文章 - 15  trackbacks - 0
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          因?yàn)榭诳剩系蹌?chuàng)造了水;
          因?yàn)楹诎担系蹌?chuàng)造了火;
          因?yàn)槲倚枰笥眩陨系圩屇銇?lái)到我身邊
          Click for Shaanxi xi'an, Shaanxi Forecast
          ╱◥█◣
            |田|田|
          ╬╬╬╬╬╬╬╬╬╬╬
          If only I have such a house!
          〖總在爬山 所以艱辛〗
          Email:myesjoy@yahoo.com.cn
          NickName:yesjoy
          MSN:myesjoy@hotmail.com
          QQ:150230516

          〖總在尋夢(mèng) 所以苦痛〗

          常用鏈接

          留言簿(3)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          Hibernate在線

          Java友情

          Java認(rèn)證

          linux經(jīng)典

          OA系統(tǒng)

          Spring在線

          Structs在線

          專(zhuān)家專(zhuān)欄

          企業(yè)信息化

          大型設(shè)備共享系統(tǒng)

          工作流

          工作流產(chǎn)品

          網(wǎng)上購(gòu)書(shū)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

           


          翻譯:Wilbur Lang

          CORBA 是什么

            公用對(duì)象請(qǐng)求代理(調(diào)度)程序體系結(jié)構(gòu)(Common Object Request Broker Architecture),縮寫(xiě)為 CORBA,是對(duì)象管理組織(Object Management Group)對(duì)應(yīng)當(dāng)今快速增長(zhǎng)的軟硬件的協(xié)同工作能力的要求而提出的方案。簡(jiǎn)而言之,CORBA 允許應(yīng)用程序和其他的應(yīng)用程序通訊,而不論他們?cè)谑裁吹胤交蛘哂烧l(shuí)來(lái)設(shè)計(jì)。CORBA 1.1 由對(duì)象管理組織在 1991 年發(fā)布。他定義了接口定義語(yǔ)言(IDL)和應(yīng)用編程接口(API),從而通過(guò)實(shí)現(xiàn)對(duì)象請(qǐng)求代理(ORB)來(lái)激活客戶(hù)/服務(wù)器的交互。CORBA 2.0 于 1994 年的 12 月發(fā)布。他定義了如何跨越不同的 ORB 提供者而進(jìn)行通訊。

            ORB 是一個(gè)中間件,他在對(duì)象間建立客戶(hù)-服務(wù)器的關(guān)系。通過(guò) ORB,一個(gè)客戶(hù)可以很簡(jiǎn)單地使用服務(wù)器對(duì)象的方法而不論服務(wù)器是在同一機(jī)器上還是通過(guò)一個(gè)網(wǎng)絡(luò)訪問(wèn)。ORB 截獲調(diào)用然后負(fù)責(zé)找到一個(gè)對(duì)象實(shí)現(xiàn)這個(gè)請(qǐng)求,傳遞參數(shù)和方法,最后返回結(jié)果。客戶(hù)不用知道對(duì)象在哪里,是什么語(yǔ)言實(shí)現(xiàn)的,他的操作系統(tǒng)以及其他和對(duì)象接口無(wú)關(guān)的東西。

            在傳統(tǒng)的客戶(hù)/服務(wù)器程序中,開(kāi)發(fā)者使用他們自己設(shè)計(jì)的或者公認(rèn)的標(biāo)準(zhǔn)定義設(shè)備之間的協(xié)議。協(xié)議的定義依賴(lài)于實(shí)現(xiàn)的語(yǔ)言,網(wǎng)絡(luò)的傳輸和其他許許多多因素。ORB 將這個(gè)過(guò)程簡(jiǎn)單化。使用 ORB,協(xié)議定義是通過(guò)應(yīng)用接口,而該接口是接口定義語(yǔ)言(IDL)的一個(gè)實(shí)現(xiàn),他和使用的編程語(yǔ)言無(wú)關(guān)的。并且 ORB 提供了很大的靈活性。他讓程序員選擇最適當(dāng)?shù)牟僮飨到y(tǒng),運(yùn)行環(huán)境和設(shè)計(jì)語(yǔ)言來(lái)建設(shè)系統(tǒng)中每個(gè)組件。更重要的是,他允許集成已經(jīng)存在的組件。

            CORBA 是在面向?qū)ο髽?biāo)準(zhǔn)化和互操作性道路上的一個(gè)信號(hào)。通過(guò) CORBA,用戶(hù)不必要知道軟硬件的平臺(tái)和他們處在企業(yè)網(wǎng)的什么地方就可以操作。

          ORB 結(jié)構(gòu)

            下面我來(lái)用些圖形說(shuō)明一下:

            通過(guò) ORB 發(fā)送請(qǐng)求

            上面的圖形說(shuō)明的是客戶(hù)端發(fā)送一個(gè)請(qǐng)求到對(duì)象的實(shí)現(xiàn)。客戶(hù)端是希望對(duì)某對(duì)象執(zhí)行操作的實(shí)體。對(duì)象的實(shí)現(xiàn)是一片代碼和數(shù)據(jù)來(lái)實(shí)際實(shí)現(xiàn)對(duì)象。ORB 負(fù)責(zé)下面的必要的機(jī)制:對(duì)該請(qǐng)求找到對(duì)象的實(shí)現(xiàn),讓對(duì)象的實(shí)現(xiàn)準(zhǔn)備好接受請(qǐng)求,和請(qǐng)求交換數(shù)據(jù)。客戶(hù)端的接口完全獨(dú)立于對(duì)象的位置,其實(shí)現(xiàn)的語(yǔ)言和其他不影響對(duì)象接口的東西。

            ORB 接口的結(jié)構(gòu)

            上面的圖形顯示的是一個(gè)獨(dú)立的對(duì)象請(qǐng)求代理(ORB)的結(jié)構(gòu)。ORB 的接口是灰色的矩形。箭頭說(shuō)明 ORB 的調(diào)用關(guān)系。

            為了提出一個(gè)請(qǐng)求,客戶(hù)端可以使用動(dòng)態(tài)調(diào)用接口(Dynamic Invocation Interface)(和目標(biāo)對(duì)象的接口獨(dú)立)或者一個(gè) OMG 的 IDL 占位程序(具體的占位程序依賴(lài)于目標(biāo)對(duì)象的接口)。客戶(hù)端也可以直接和 ORB 在某些地方交互。

            對(duì)象的實(shí)現(xiàn)通過(guò) OMG 的 IDL 產(chǎn)生的骨架或者是一個(gè)動(dòng)態(tài)骨架的調(diào)用來(lái)接受請(qǐng)求。對(duì)象的實(shí)現(xiàn)可能在處理請(qǐng)求或其他的時(shí)候調(diào)用 ORB。

            對(duì)象接口定義的定義可以有下面兩種方式。接口可以通過(guò)接口定義語(yǔ)言靜態(tài)的定義,這叫做 OMG 的 IDL。該語(yǔ)言按照可以進(jìn)行的操作和該操作的參數(shù)定義對(duì)象類(lèi)型。或者(也可以作為補(bǔ)充),接口可以加入到 Interface Repository service。該服務(wù)描述了該接口作為一個(gè)對(duì)象的組件,并允許運(yùn)行時(shí)訪問(wèn)這些組件。在任何 ORB 實(shí)現(xiàn)中,IDL 和 Interface Repository 有相同的表達(dá)能力。

            客戶(hù)端使用占位程序或者動(dòng)態(tài)調(diào)用接口

            客戶(hù)端通過(guò)訪問(wèn)對(duì)象的對(duì)象引用和了解對(duì)象的類(lèi)型及要求執(zhí)行的操作來(lái)發(fā)布一個(gè)請(qǐng)求。客戶(hù)調(diào)用占位程序例程來(lái)請(qǐng)求或者動(dòng)態(tài)構(gòu)造請(qǐng)求。

            無(wú)論動(dòng)態(tài)還是占位程序的接口都可以相同實(shí)現(xiàn)。接收方不可能知道請(qǐng)求是如何發(fā)布的。

            對(duì)象的實(shí)現(xiàn)接受請(qǐng)求

            ORB 向?qū)ο髮?shí)現(xiàn)定位適當(dāng)?shù)拇a,傳遞參數(shù),傳輸控制。這一切都通過(guò) IDL 骨架或者動(dòng)態(tài)骨架。骨架對(duì)于不同的接口和對(duì)象適配器是不同的。在執(zhí)行該請(qǐng)求的時(shí)候,對(duì)象的實(shí)現(xiàn)可能由 ORB 通過(guò)對(duì)象適配器來(lái)獲得一定的服務(wù)。當(dāng)請(qǐng)求完成,控制和輸出值返回給客戶(hù)。

            對(duì)象的實(shí)現(xiàn)可能會(huì)選擇使用的對(duì)象適配器。該決定基于對(duì)象的實(shí)現(xiàn)要求的服務(wù)。

            接口和 Implementation Repositories

            上圖說(shuō)明的是接口和實(shí)現(xiàn)信息如何讓客戶(hù)和對(duì)象實(shí)現(xiàn)訪問(wèn)的。接口用 OMG 的 IDL 和/或 Interface Repository 定義。該定義用于產(chǎn)生客戶(hù)占位程序和對(duì)象的實(shí)現(xiàn)的骨架。

            對(duì)象的實(shí)現(xiàn)的信息在安裝時(shí)就提供好了,儲(chǔ)存在 Implementation Repository 中以便請(qǐng)求發(fā)布的時(shí)候使用。

           

          posted on 2006-02-19 16:49 ★yesjoy★ 閱讀(234) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): CORBA 學(xué)習(xí)

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 肃北| 吕梁市| 高密市| 德兴市| 公主岭市| 玉溪市| 尼玛县| 米脂县| 景宁| 合山市| 衡阳市| 海阳市| 福州市| 定远县| 松桃| 阿克| 彭泽县| 肥乡县| 正阳县| 河北省| 仙桃市| 屏东市| 崇义县| 萨嘎县| 桐乡市| 奉节县| 天水市| 绥化市| 都江堰市| 北安市| 招远市| 大冶市| 甘肃省| 噶尔县| 都江堰市| 闻喜县| 崇信县| 盐源县| 漳州市| 萝北县| 遵义市|