CORBA技術(shù)探索起步
發(fā)表時(shí)間:2024-01-16 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]一、概述 CORBA(Common Object Request Broker Architecture, 公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是由OMG(對(duì)象管理組織,Object Management Group)提出的應(yīng)用軟件體系結(jié)構(gòu)和對(duì)象技術(shù)規(guī)范,其核心是一套標(biāo)準(zhǔn)的語(yǔ)言、接口和協(xié)議,以支持異構(gòu)分...
一、概述
CORBA(Common Object Request Broker Architecture, 公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是由OMG(對(duì)象管理組織,Object Management Group)提出的應(yīng)用軟件體系結(jié)構(gòu)和對(duì)象技術(shù)規(guī)范,其核心是一套標(biāo)準(zhǔn)的語(yǔ)言、接口和協(xié)議,以支持異構(gòu)分布應(yīng)用程序間的互操作性及獨(dú)立于平臺(tái)和編程語(yǔ)言的對(duì)象重用。
CORBA經(jīng)過(guò)近十多年的發(fā)展,已逐步走向成熟,并成功地應(yīng)用在我國(guó)許多大型的軟件系統(tǒng)中,由此產(chǎn)生了對(duì)掌握CORBA技術(shù)的軟件開(kāi)發(fā)人員的大量需求。在此,我們應(yīng)廣大讀者的要求組織了本次講座。
二、CORBA產(chǎn)生的背景
近年來(lái),隨著互聯(lián)網(wǎng)技術(shù)的日益成熟,公眾及商業(yè)企業(yè)正享受著高速、低價(jià)網(wǎng)絡(luò)信息傳輸所帶來(lái)的高品質(zhì)數(shù)字生活。但是,由于網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大以及計(jì)算機(jī)軟硬件技術(shù)水平的飛速提高,給傳統(tǒng)的應(yīng)用軟件系統(tǒng)的實(shí)現(xiàn)方式帶來(lái)了巨大挑戰(zhàn)。
首先,在企業(yè)級(jí)應(yīng)用中,硬件系統(tǒng)集成商基于性能、價(jià)格、服務(wù)等方面的考慮,通常在同一系統(tǒng)中集成來(lái)自不同廠商的硬件設(shè)備、操作系統(tǒng)、數(shù)據(jù)庫(kù)平臺(tái)和網(wǎng)絡(luò)協(xié)議等,由此帶來(lái)的異構(gòu)性給應(yīng)用軟件的互操作性、兼容性以及平滑升級(jí)能力帶來(lái)了嚴(yán)重問(wèn)題。
另外,隨著基于網(wǎng)絡(luò)的業(yè)務(wù)不斷增多,傳統(tǒng)的客戶/服務(wù)器(C/S)模式的分布式應(yīng)用方式越來(lái)越顯示出在運(yùn)行效率、系統(tǒng)網(wǎng)絡(luò)安全性和系統(tǒng)升級(jí)能力等方面的局限性。
為了解決分布式計(jì)算環(huán)境(DCE,Distributed Computing Environment)中不同硬件設(shè)備和軟件系統(tǒng)的互聯(lián),增強(qiáng)網(wǎng)絡(luò)間軟件的互操作性,解決傳統(tǒng)分布式計(jì)算模式中的不足等問(wèn)題,對(duì)象管理組織(OMG)提出了公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)(CORBA),以增強(qiáng)軟件系統(tǒng)間的互操作能力,使構(gòu)造靈活的分布式應(yīng)用系統(tǒng)成為可能。
正是基于面向?qū)ο蠹夹g(shù)的發(fā)展和成熟、客戶/服務(wù)器軟件系統(tǒng)模式的普遍應(yīng)用以及集成已有系統(tǒng)等方面的需求,推動(dòng)了CORBA技術(shù)的成熟與發(fā)展。作為面向?qū)ο笙到y(tǒng)的對(duì)象通信的核心,CORBA為當(dāng)今網(wǎng)絡(luò)計(jì)算環(huán)境帶來(lái)了真正意義上的互聯(lián)。
三、CORBA的發(fā)展歷程
1、對(duì)象管理組織(OMG)簡(jiǎn)介
OMG成立于1989年,作為一個(gè)非營(yíng)利性組織,集中致力于開(kāi)發(fā)在技術(shù)上具有先進(jìn)性、在商業(yè)上具有可行性并且獨(dú)立于廠商的軟件互聯(lián)規(guī)范,推廣面向?qū)ο竽P图夹g(shù),增強(qiáng)軟件的可移植性(Portability)、可重用性(Reusability)和互操作性(Interoperability)。該組織成立之初,成員包括Unisys、Sun、Cannon、Hewlett-Packard、Philips等在業(yè)界享有聲譽(yù)的軟硬件廠商,目前該組織擁有800多家成員。
2、CORBA主要版本的發(fā)展歷程
· 1990年11月,OMG發(fā)表《對(duì)象管理體系指南》,初步闡明了CORBA的思想;
· 1991年10月,OMG推出1.0版,其中定義了接口定義語(yǔ)言(IDL)、對(duì)象管理模型以及基于動(dòng)態(tài)請(qǐng)求的API和接口倉(cāng)庫(kù)等內(nèi)容;
· 1991年12月,OMG推出了CORBA 1.1版,在澄清了1.0版中存在的二義性的基礎(chǔ)上,引入了對(duì)象適配器的概念;
· 1996年8月,OMG基于以前的升級(jí)版本,完成了2.0版的開(kāi)發(fā),該版本中重要的內(nèi)容是對(duì)象請(qǐng)求代理間協(xié)議(IIOP,Internet Inter-ORB Protocol)的引入,用以實(shí)現(xiàn)不同廠商的ORB真正意義上的互通;
· 1998年9月,OMG發(fā)表了CORBA 2.3版,增加了支持CORBA對(duì)象的異步實(shí)時(shí)傳輸、服務(wù)質(zhì)量規(guī)范等內(nèi)容。目前,宣布支持CORBA 2.3規(guī)范的中間件廠商包括Inprise(Borland)、Iona、BEA System等著名的CORBA產(chǎn)品生產(chǎn)商。
· 2002年8月,CORBA規(guī)范3.0終于出來(lái)了,在CORBA3.0規(guī)范中去掉了MiniCORBA和實(shí)時(shí)CORBA。
四、CORBA體系結(jié)構(gòu)
CORBA規(guī)范充分利用了現(xiàn)今軟件技術(shù)發(fā)展的最新成果,在基于網(wǎng)絡(luò)的分布式應(yīng)用環(huán)境下實(shí)現(xiàn)應(yīng)用軟件的集成,使得面向?qū)ο蟮能浖诜植肌悩?gòu)環(huán)境下實(shí)現(xiàn)可重用、可移植和互操作。其特點(diǎn)可以總結(jié)為如下幾個(gè)方面:
1、引入中間件(MiddleWare)作為事務(wù)代理,完成客戶機(jī)(Client)向服務(wù)對(duì)象方(Server)提出的業(yè)務(wù)請(qǐng)求(引入中間件概念后分布計(jì)算模式;
2、實(shí)現(xiàn)客戶與服務(wù)對(duì)象的完全分開(kāi),客戶不需要了解服務(wù)對(duì)象的實(shí)現(xiàn)過(guò)程以及具體位置;
3、提供軟總線機(jī)制,使得在任何環(huán)境下、采用任何語(yǔ)言開(kāi)發(fā)的軟件只要符合接口規(guī)范的定義,均能夠集成到分布式系統(tǒng)中;
4、CORBA規(guī)范軟件系統(tǒng)采用面向?qū)ο蟮能浖䦟?shí)現(xiàn)方法開(kāi)發(fā)應(yīng)用系統(tǒng),實(shí)現(xiàn)對(duì)象內(nèi)部細(xì)節(jié)的完整封裝,保留對(duì)象方法的對(duì)外接口定義。
在以上特點(diǎn)中,最突出的是中間件的引入, 在CORBA系統(tǒng)中稱為對(duì)象請(qǐng)求代理(ORB,Object Request Broker)和采用面向?qū)ο蟮拈_(kāi)發(fā)模式。
對(duì)象模型是應(yīng)用開(kāi)發(fā)人員對(duì)客觀事物屬性和功能的具體抽象。由于CORBA使用了對(duì)象模型,將CORBA系統(tǒng)中所有的應(yīng)用看成是對(duì)象及相關(guān)操作的集合,因此通過(guò)對(duì)象請(qǐng)求代理(ORB),使CORBA系統(tǒng)中分布在網(wǎng)絡(luò)中應(yīng)用對(duì)象的獲取只取決于網(wǎng)絡(luò)的暢通性和服務(wù)對(duì)象特征獲取的準(zhǔn)確程度,而與對(duì)象的位置以及對(duì)象所處的設(shè)備環(huán)境無(wú)關(guān)。
CORBA體系的主要內(nèi)容包括以下幾部分:
(1) 對(duì)象請(qǐng)求代理ORB(Object Request Broker):負(fù)責(zé)對(duì)象在分布環(huán)境中透明地收發(fā)請(qǐng)求和響應(yīng),它是構(gòu)建分布對(duì)象應(yīng)用、在異構(gòu)或同構(gòu)環(huán)境下實(shí)現(xiàn)應(yīng)用間互操作的基礎(chǔ)。
(2) 對(duì)象服務(wù)(Object Services):為使用和實(shí)現(xiàn)對(duì)象而提供的基本對(duì)象集合,這些服務(wù)應(yīng)獨(dú)立于應(yīng)用領(lǐng)域。主要的CORBA服務(wù)有:名錄服務(wù)(Naming Service)、事件服務(wù)(Event Service)、生命周期服務(wù)(Life Cycle Service)、關(guān)系服務(wù)(Relationship Service)、事務(wù)服務(wù)(Transaction Service)等。這些服務(wù)幾乎包括分布系統(tǒng)和面向?qū)ο笙到y(tǒng)的各個(gè)方面,每個(gè)組成部分都非常復(fù)雜。
(3) 公共設(shè)施(Common Facilitites):向終端用戶提供一組共享服務(wù)接口,例如系統(tǒng)管理、組合文檔和電子郵件等。
(4) 應(yīng)用接口(Application Interfaces):由銷(xiāo)售商提供的可控制其接口的產(chǎn)品,相應(yīng)于傳統(tǒng)的應(yīng)用層表示,處于參考模型的最高層。
(5) 領(lǐng)域接口(Domain Interfaces):為應(yīng)用領(lǐng)域服務(wù)而提供的接口。如OMG組織為PDM系統(tǒng)制定的規(guī)范。
CORBA技術(shù)是先進(jìn)技術(shù)發(fā)展的結(jié)果,它將面向?qū)ο蟮母拍钊嗪系椒植加?jì)算中,使得CORBA規(guī)范成為開(kāi)放的、基于客戶/服務(wù)器模式的、面向?qū)ο蟮姆植加?jì)算的工業(yè)標(biāo)準(zhǔn)。
在CORBA體系結(jié)構(gòu)的中心部分是對(duì)象請(qǐng)求代理程序(Object Request Broker,ORB),它作為一個(gè)"軟件總線"來(lái)連接網(wǎng)絡(luò)上的不同對(duì)象。在客戶端,ORB提供一個(gè)發(fā)送操作調(diào)用的接口;而在服務(wù)器端,ORB提供一個(gè)將操作調(diào)用傳輸?shù)椒⻊?wù)器的API。ORB的任務(wù)是定位一個(gè)合適的服務(wù)器,并且通過(guò)一個(gè)對(duì)象適配器(Object Adapter,OA)將操作調(diào)用傳送給服務(wù)器。OA的目的是:給框架發(fā)送方法,調(diào)用并且支持服務(wù)器對(duì)象的生命周期(例如,對(duì)象的建立和刪除)。老版本的CORBA規(guī)范包含一個(gè)基本對(duì)象適配器(Basic Object Adapter,BOA),就像它的名字一樣,BOA是十分簡(jiǎn)單的。它定制的也不是很好,它禁止CORBA應(yīng)用程序的可移植性。作為CORBA標(biāo)準(zhǔn)的版本2.2,BOA被可對(duì)象適配器(Portable Object Adapter,POA)所取代。MICO支持BOA和POA。
在客戶端,ORB提供一個(gè)一般的API,它是一個(gè)動(dòng)態(tài)調(diào)用接口(Dynamic Invocation Interface,DII)來(lái)發(fā)送操作調(diào)用。在服務(wù)器端,OA通過(guò)動(dòng)態(tài)框架接口(Dynamic Skeleton Interface,DSI)來(lái)傳輸一個(gè)操作調(diào)用,它為服務(wù)器端鏡像DII的行為。一個(gè)在客戶和服務(wù)器之間的靜態(tài)接口通過(guò)一種接口定義語(yǔ)言(Interface Definition Language,IDL)來(lái)定義。雖然DII和DSI代表到ORB的一般接口,并且通常被用于橋,但一個(gè)IDL規(guī)范可以用于產(chǎn)生到ORB的類(lèi)型安全的、應(yīng)用特定的接口。
在客戶端,客戶與ORB之間的靜態(tài)接口被稱為靜態(tài)調(diào)用接口(Static Invocation Interface,SII),在服務(wù)器端,這個(gè)接口被稱為靜態(tài)框架接口(Static Skeleton Interface,SSI)。一個(gè)IDL編譯器從一個(gè)IDL規(guī)范來(lái)生成一個(gè)存根stub和一個(gè)框架skeketon。存根的功能類(lèi)似于一個(gè)客戶代理,而框架負(fù)責(zé)發(fā)送一個(gè)操作調(diào)作給一個(gè)真正的此操作的實(shí)現(xiàn)程序。
CORBA也定義了兩個(gè)運(yùn)行時(shí)的數(shù)據(jù)庫(kù)。接口存儲(chǔ)庫(kù)(Interface Repository,IR)包含運(yùn)行時(shí)所需要的IDL規(guī)范。IR可以查詢用戶定義的IDL類(lèi)型的詳細(xì)情況,從而提供一個(gè)基本類(lèi)型映射機(jī)制。第二個(gè)數(shù)據(jù)庫(kù)被稱為實(shí)現(xiàn)存儲(chǔ)庫(kù)(Implementation Repository,IMR),并且它包含服務(wù)器的詳細(xì)信息(即,哪一個(gè)執(zhí)行程序需要被放置到哪一個(gè)服務(wù)器上)。OA需要這個(gè)信息來(lái)自動(dòng)激活服務(wù)器。
CORBA標(biāo)準(zhǔn)也包含一個(gè)ORB之間的協(xié)議,它被稱為互聯(lián)網(wǎng)ORB之間的協(xié)議(Internet Inter-ORB Protocol,IIOP),它描述了基本的和結(jié)構(gòu)化的IDL類(lèi)型的在線表示,以及協(xié)議所需的協(xié)議數(shù)據(jù)單元。設(shè)計(jì)IIOP的目的是使它保持簡(jiǎn)單、可升級(jí)并且通作。IIOP使用TCP/IP來(lái)在不同的ORB之間傳輸操作調(diào)作和它們的參數(shù)。
最后,需要說(shuō)明一點(diǎn),CORBA是一個(gè)規(guī)范而不是一個(gè)程序?qū)崿F(xiàn)。CORBA提供了一個(gè)允許在分布式和異構(gòu)型環(huán)境中的應(yīng)用程序之間進(jìn)行互操作的框架,但是關(guān)于如何實(shí)現(xiàn)CORBA標(biāo)準(zhǔn)的特定技術(shù),它并沒(méi)有給出任何規(guī)定。因此,目前在市場(chǎng)上有許許多的CORBA程序?qū)崿F(xiàn),如Iona的Orbix,Inprise的VisiBroker。
五、分布式對(duì)象技術(shù)-- COM、Java和COBRA之間特性比較
目前國(guó)際上,分布式對(duì)象技術(shù)有三大流派-- COBRA、COM/DCOM和Java。CORBA技術(shù)是最早出現(xiàn)的,1991年OMG頒布了COBRA 1.0標(biāo)準(zhǔn),在當(dāng)時(shí)來(lái)說(shuō)做得非常漂亮;再有就是Microsoft的COM系列,從最初的COM發(fā)展成現(xiàn)在的DCOM,形成了Microsoft一套分布式對(duì)象的計(jì)算平臺(tái);而Sun公司的Java平臺(tái),在其最早推出的時(shí)候,只提供了遠(yuǎn)程的方法調(diào)用,在當(dāng)時(shí)并不能被稱為分布式對(duì)象計(jì)算,只是屬于網(wǎng)絡(luò)計(jì)算里的一種,接著推出的JavaBean,也還不足以和上述兩大流派抗衡,而其目前的版本叫J2EE,推出了EJB,除了語(yǔ)言外還有組件的標(biāo)準(zhǔn)以及組件之間協(xié)同工作通訊的框架。于是,也就形成了目前的三大流派。
應(yīng)該說(shuō),這三者之中,COBRA標(biāo)準(zhǔn)是做的最漂亮的。COBRA標(biāo)準(zhǔn)主要分為3個(gè)層次:對(duì)象請(qǐng)求代理、公共對(duì)象服務(wù)和公共設(shè)施。最底層是對(duì)象請(qǐng)求代理ORB,規(guī)定了分布對(duì)象的定義(接口)和語(yǔ)言映射,實(shí)現(xiàn)對(duì)象間的通訊和互操作,是分布對(duì)象系統(tǒng)中的"軟總線";在ORB之上定義了很多公共服務(wù),可以提供諸如并發(fā)服務(wù)、名字服務(wù)、事務(wù)(交易)服務(wù)、安全服務(wù)等各種各樣的服務(wù);最上層的公共設(shè)施則定義了組件框架,提供可直接為業(yè)務(wù)對(duì)象使用的服務(wù),規(guī)定業(yè)務(wù)對(duì)象有效協(xié)作所需的協(xié)定規(guī)則。總之,CORBA的特點(diǎn)是大而全,互操作性和開(kāi)放性非常好。目前CORBA的版本是2.3。CORBA 3.0也已完成了,增加了有關(guān)Internet集成和QoS控制等內(nèi)容。CORBA的缺點(diǎn)是龐大而復(fù)雜,并且技術(shù)和標(biāo)準(zhǔn)的更新相對(duì)較慢,COBRA規(guī)范從1.0升級(jí)到2.0所花的時(shí)間非常短,而再往上的版本的發(fā)布就相對(duì)十分緩慢了。
相比之下,Java標(biāo)準(zhǔn)的制訂就快得多,Java是Sun公司自己定的,演變的很快。Java的優(yōu)勢(shì)是純語(yǔ)言的,跨平臺(tái)性非常好。Java分布對(duì)象技術(shù)通常指遠(yuǎn)程方法調(diào)用(RMI)和企業(yè)級(jí)JavaBean(EJB)。RMI提供了一個(gè)Java對(duì)象遠(yuǎn)程調(diào)用另一Java對(duì)象的方法的能力,與傳統(tǒng)RPC類(lèi)似,只能支持初級(jí)的分布對(duì)象互操作。Sun公司于是基于RMI,提出了EJB。基于Java服務(wù)器端組件模型,EJB框架提供了像遠(yuǎn)程訪問(wèn)、安全、交易、持久和生命期管理等多種支持分布對(duì)象計(jì)算的服務(wù)。目前,Java技術(shù)和CORBA技術(shù)有融合的趨勢(shì)。
COM技術(shù)是Microsoft獨(dú)家做的,是在Windows 3.1中最初為支持復(fù)合文檔而使用OLE技術(shù)上發(fā)展而來(lái),經(jīng)歷了OLE 2/COM、ActiveX、DCOM和COM+等幾個(gè)階段,目前COM+把消息通訊模塊MSMQ和解決關(guān)鍵業(yè)務(wù)的交易模塊MTS都加進(jìn)去了,是分布對(duì)象計(jì)算的一個(gè)比較完整的平臺(tái)。Microsoft的COM平臺(tái)效率比較高,同時(shí)它有一系列相應(yīng)的開(kāi)發(fā)工具支持,應(yīng)用開(kāi)發(fā)相對(duì)簡(jiǎn)單。但它有一個(gè)致命的弱點(diǎn)就是COM的跨平臺(tái)性較差,如何實(shí)現(xiàn)與第三方廠商的互操作性始終是它的一大問(wèn)題。從分布對(duì)象技術(shù)發(fā)展的角度來(lái)看,大多數(shù)人認(rèn)為COM競(jìng)爭(zhēng)不過(guò)COBRA。
下面是三者在集成性和可用性方面的比較:
·CORBA/ORB ActiveX/DCOM EJB/RMI
·集成性:
·支持跨語(yǔ)言操作 好 好 一般
·支持跨平臺(tái)操作 好 一般 好
·網(wǎng)絡(luò)通訊 好 一般 好
·公共服務(wù)構(gòu)件 好 一般 好
可用性:
·事務(wù)處理 好 一般 一般
·消息服務(wù) 一般 一般 一般
·安全服務(wù) 好 一般 好
·目錄服務(wù) 好 一般 一般
·容錯(cuò)性 一般 一般 一般
·產(chǎn)品成熟性 一般 一般 一般
·軟件開(kāi)發(fā)商的支持度 一般 好 好
·可擴(kuò)展性 好 一般 好
六、CORBA應(yīng)用前景
CORBA規(guī)范的推出,重新調(diào)整了客戶機(jī)與服務(wù)器之間的關(guān)系。客戶機(jī)可以向服務(wù)器提出事務(wù)請(qǐng)求,同時(shí)也可以為下一個(gè)請(qǐng)求充當(dāng)服務(wù)器角色。
由于CORBA系統(tǒng)引入了中間件的概念,即事務(wù)代理,由中間件完成客戶機(jī)與服務(wù)器之間的通信,使得服務(wù)器對(duì)于客戶機(jī)的位置相對(duì)透明,取消了原有分布式計(jì)算模型中客戶機(jī)、服務(wù)器之間的一一對(duì)應(yīng)關(guān)系。CORBA客戶機(jī)可以在運(yùn)行時(shí)動(dòng)態(tài)獲得服務(wù)對(duì)象的位置,并且可以對(duì)多個(gè)服務(wù)對(duì)象提交事務(wù)請(qǐng)求,因此,極大推動(dòng)了分布計(jì)算的發(fā)展。
分布計(jì)算是指網(wǎng)絡(luò)中兩個(gè)或兩個(gè)以上的軟件相互共享信息資源。這些軟件可以位于同一臺(tái)計(jì)算機(jī)中,也可以部署在網(wǎng)絡(luò)節(jié)點(diǎn)的任意位置。基于分布式模型的軟件系統(tǒng)具有均衡運(yùn)行系統(tǒng)負(fù)載、共享網(wǎng)絡(luò)資源的技術(shù)優(yōu)勢(shì)。
另外,CORBA規(guī)范約束采用面向?qū)ο蟮姆植际杰浖臉?gòu)造方法,以接口定義語(yǔ)言的形式實(shí)現(xiàn)對(duì)象內(nèi)部細(xì)節(jié)的完整封裝,從而降低了軟件系統(tǒng)的復(fù)雜程度,增加了軟件功能的可重用性。CORBA提供到C/C++、Java、SmallTalk等高級(jí)語(yǔ)言的映射,很大程度地減小了對(duì)程序設(shè)計(jì)語(yǔ)言的依賴性,使軟件開(kāi)發(fā)人員可以在較大范圍內(nèi)共享已有成果。
正是以上特點(diǎn)推動(dòng)了分布式多層軟件體系結(jié)構(gòu)的發(fā)展。目前,CORBA技術(shù)在銀行、電信、保險(xiǎn)、電力和電子商務(wù)領(lǐng)域都有廣泛的應(yīng)用。對(duì)象中間件技術(shù)發(fā)展迅速,各大軟硬件廠商都在積極參與有關(guān)標(biāo)準(zhǔn)的制定和產(chǎn)品開(kāi)發(fā)工作,像IBM、HP、DEC、AT&T、ICL、Microsoft等都制定了相應(yīng)的戰(zhàn)略。許多對(duì)象中間件的專(zhuān)門(mén)廠商也相繼誕生,未來(lái)的對(duì)象中間件市場(chǎng)將會(huì)出現(xiàn)群雄逐鹿的局面。
附:學(xué)習(xí)CORBA應(yīng)理解的一些基本概念
1、CORBA(Common Object Request Broker Architecture)公共對(duì)象請(qǐng)求代理程序體系結(jié)構(gòu))。CORBA是一個(gè)規(guī)范(specification)而不是程序?qū)崿F(xiàn)(implementation)。它提供了一個(gè)允許在分布式和異構(gòu)型環(huán)境中應(yīng)用程序之間進(jìn)行互操作的框架。
2、ORB(Object Request Broker)對(duì)象請(qǐng)求代理:它作為一個(gè)"軟件總線"來(lái)連接網(wǎng)絡(luò)上的不同對(duì)象,提供對(duì)象的定位和方法調(diào)用,它是CORBA實(shí)現(xiàn)的關(guān)鍵。
3、OA(Object Adapter)對(duì)象適配器:用于構(gòu)造對(duì)象實(shí)現(xiàn)與ORB之間的接口。它給框架發(fā)送方法,調(diào)用并且支持服務(wù)器對(duì)象的生命周期(如:對(duì)象的創(chuàng)建和刪除)。
4、BOA(Basic Object Adapter)基本對(duì)象適配器:負(fù)責(zé)激活對(duì)象,即當(dāng)客戶請(qǐng)求對(duì)象的服務(wù)時(shí),激活對(duì)象實(shí)現(xiàn)的能力。
5、POA(Portable Object Adapter)可移植對(duì)象適配器:是BOA的替代方式,提供大量可擴(kuò)展的接口,來(lái)處理一些對(duì)于BOA來(lái)說(shuō)不合理的要求。特性:
(1)支持透明激活對(duì)象。
(2)允許單個(gè)服務(wù)者支持很多對(duì)象標(biāo)識(shí)。
(3)允許一個(gè)服務(wù)者上有多個(gè)POA,每個(gè)都有自己的一套管理策略。
(4)將對(duì)不存在服務(wù)者的請(qǐng)求委托給默認(rèn)服務(wù)者,或者向服務(wù)者的管理器請(qǐng)求一個(gè)合適的服務(wù)者。
6、DII(Dynamic Invocation Interface)動(dòng)態(tài)調(diào)用接口:位于客戶端,發(fā)送客戶端的調(diào)用請(qǐng)求。
7、DSI(Dynamic Skeleton Interface)動(dòng)態(tài)框架接口,位于服務(wù)器端,傳送客戶端的調(diào)用請(qǐng)求。
8、IDL(Interface Definition Language)接口定義語(yǔ)言:定義客戶和服務(wù)器之間的靜態(tài)接口,通過(guò)編譯器生成客戶存根、服務(wù)器框架,以及根據(jù)支持的語(yǔ)言映射,自動(dòng)生成來(lái)自一個(gè)CORBA IDL的代碼。目前支持的語(yǔ)言映射包括:Java,C++,Ada,SmallTalk和COBOL等。
9、SII(Static Invocation Interface)靜態(tài)調(diào)用接口:位于客戶端,客戶與ORB之間的靜態(tài)接口。
10、SSI(Static Skeleton Interface)靜態(tài)框架接口:位于服務(wù)器端,ORB與服務(wù)器之間的靜態(tài)接口。
11、stub 存根:位于客戶端,由IDL編譯器編譯IDL文件生成,其功能類(lèi)似一個(gè)客戶代理。
12、skeleton 框架:位于服務(wù)器端,由IDL編譯器編譯IDL文件生成,其功能是負(fù)責(zé)發(fā)送一個(gè)操作調(diào)用給能實(shí)現(xiàn)此操作的服務(wù)。
13、IR(Interface Repository)接口存儲(chǔ)庫(kù):存儲(chǔ)運(yùn)行時(shí)所需要的IDL規(guī)范。
14、IMR(Implementation Repository)實(shí)現(xiàn)存儲(chǔ)庫(kù):存儲(chǔ)對(duì)象實(shí)現(xiàn)(一個(gè)服務(wù)器)的詳細(xì)信息(即一個(gè)執(zhí)行程序需要被放置在哪一個(gè)服務(wù)器上)。
15、GIOP(General Inter-ORB Protocol)通用ORB之間的協(xié)議:定義了一個(gè)不同ORB之間的接口。
16、IIOP(Internet Inter-ORB Protocol)因特網(wǎng)ORB之間的協(xié)議:IIOP把GIOP消息數(shù)據(jù)映射為T(mén)CP/IP連接行為和輸入/輸出流讀/寫(xiě)。
注意:IIOP不是完全從GIOP分離出來(lái)的協(xié)議,它更像是GIOP的一個(gè)實(shí)例。
17、IOR(Interoperable Object Reference)可操作對(duì)象引用:它包括所有客戶與服務(wù)器聯(lián)系所需的各種信息(包括CORBA服務(wù)器對(duì)象進(jìn)程的IP地址和TCP端口等),ORB將通過(guò)它產(chǎn)生在網(wǎng)絡(luò)上唯一標(biāo)識(shí)那個(gè)將被分布對(duì)象的消息。
18、ORBAservices-- CORBA服務(wù):在ORB級(jí)別之上,定義了大多數(shù)分布式企業(yè)對(duì)象利用的公共服務(wù)。
如:命名服務(wù)、交易對(duì)象服務(wù)、關(guān)系服務(wù)、生命周期服務(wù)、外表化服務(wù)、持久性服務(wù)、查詢服務(wù)、對(duì)象集合服務(wù)、屬性服務(wù)、事件服務(wù)、許可證服務(wù)、時(shí)間服務(wù)、事務(wù)服務(wù)、并發(fā)控制服務(wù)和安全服務(wù)等
19、CORBAfacilities-- CORBA工廠:位于CORBAservices之上,定義了更高層次的分步式服務(wù)與框架。如:打印、電子郵件、文檔管理等。