高榕嶺
[摘要]CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu))是由OMG(對象管理組織,Object Management Group)提出的應(yīng)用軟件體系結(jié)構(gòu)和對象技術(shù)規(guī)范,其核心是一套標(biāo)準(zhǔn)的語言、接口和協(xié)議,以支持異構(gòu)分布應(yīng)用程序間的互操作性及獨(dú)立于平臺和編程語言的對象重用。是對象管理組織(OMG)為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案。CORBA經(jīng)過近十年的發(fā)展,已逐步走向成熟,并成功地應(yīng)用在我國許多大型的軟件系統(tǒng)中。
[關(guān)鍵詞]CORBA OMG DCE ONC ORB
中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)0310135-01
近年來,隨著互聯(lián)網(wǎng)技術(shù)的日益成熟,公眾及商業(yè)企業(yè)正享受著高速、低價網(wǎng)絡(luò)信息傳輸所帶來的高品質(zhì)數(shù)字生活。但是,由于網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大以及計(jì)算機(jī)軟硬件技術(shù)水平的飛速提高,給傳統(tǒng)的應(yīng)用軟件系統(tǒng)的實(shí)現(xiàn)方式帶來了巨大挑戰(zhàn)。首先,在企業(yè)級應(yīng)用中,硬件系統(tǒng)集成商基于性能、價格、服務(wù)等方面的考慮,通常在同一系統(tǒng)中集成來自不同廠商的硬件設(shè)備、操作系統(tǒng)、數(shù)據(jù)庫平臺和網(wǎng)絡(luò)協(xié)議等,由此帶來的異構(gòu)性給應(yīng)用軟件的互操作性、兼容性以及平滑升級能力帶來了嚴(yán)重問題。另外,隨著基于網(wǎng)絡(luò)的業(yè)務(wù)不斷增多,傳統(tǒng)的客戶/服務(wù)器(C/S)模式的分布式應(yīng)用方式越來越顯示出在運(yùn)行效率、系統(tǒng)網(wǎng)絡(luò)安全性和系統(tǒng)升級能力等方面的局限性。
為了解決分布式計(jì)算環(huán)境(DCE,Distributed Computing Environment)
中不同硬件設(shè)備和軟件系統(tǒng)的互聯(lián),增強(qiáng)網(wǎng)絡(luò)間軟件的互操作性,解決傳統(tǒng)分布式計(jì)算模式中的不足等問題,對象管理組織(OMG)提出了公共對象請求代理體系結(jié)構(gòu)(CORBA),以增強(qiáng)軟件系統(tǒng)間的互操作能力。作為面向?qū)ο笙到y(tǒng)的對象通信的核心,CORBA為當(dāng)今網(wǎng)絡(luò)計(jì)算環(huán)境帶來了真正意義上的互聯(lián)。
CORBA作為系統(tǒng)集成的一種工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu),其主要優(yōu)點(diǎn)在于:
1.CORBA簡化了分布式應(yīng)用的集成,對于最終用戶而言,它更易使用,因而在時間和成本方面都有所節(jié)約。
2.CORBA作為一種抽象的規(guī)范定義并不限制具體的實(shí)現(xiàn)方案,這一點(diǎn)對于軟件供應(yīng)商而言最具吸引力。因?yàn)檫@種靈活性使供應(yīng)商可以充分利用現(xiàn)有的網(wǎng)絡(luò)設(shè)施,比如有些供應(yīng)商(如IONA)是以基于ONC(Open Network Computing)兼容的RPC方式實(shí)現(xiàn)CORBA,而有些供應(yīng)商(如HP)是利用OSF DCE來實(shí)現(xiàn)CORBA,還有些供應(yīng)商(如SunSoft)則跳過RPC層直接在底層直接實(shí)施CORBA,大多數(shù)供應(yīng)商都提供使用OMG IDL接口實(shí)現(xiàn)連接庫代碼的支持。這種軟件結(jié)構(gòu)與實(shí)現(xiàn)手段相分離的特點(diǎn),使得供應(yīng)商們可以先利用IDL完成軟件的結(jié)構(gòu)設(shè)計(jì),然后再選擇合適的通信機(jī)制,以使系統(tǒng)具有最大限度的可用性。
3.與原有的基于RPC機(jī)制的單純的C/S結(jié)構(gòu)相比,CORBA結(jié)構(gòu)更有利于資源的靈活、合理利用。因?yàn)镃ORBA是對等式的分布計(jì)算環(huán)境,所有應(yīng)用對象之間的地位是平等的,其擔(dān)任的角色也是可以轉(zhuǎn)換的:當(dāng)某一對象產(chǎn)生服務(wù)請求時就被稱為客戶方,而當(dāng)它接受服務(wù)請求時就被稱為服務(wù)方。絕大多數(shù)CORBA對象都可以擔(dān)任客戶方和服務(wù)方兩種角色。使用CORBA,用戶可以透明地訪問信息,不需要知道信息存在于什么軟件中、使用什么硬件平臺。作為面向?qū)ο笙到y(tǒng)的通信核心,CORBA為今天的計(jì)算環(huán)境帶來了真正的互操作性。
4.CORBA是面向?qū)ο蟮?,這意味著面向?qū)ο蟮姆N種方便與強(qiáng)大功能將在CORBA的使用中得以體現(xiàn),如系統(tǒng)的開放性、可重用性以及與原有系統(tǒng)的無縫集成和新功能的快速開發(fā)等等。它使程序員選擇最適合的操作系統(tǒng)、執(zhí)行環(huán)境,甚至系統(tǒng)各個組件也可以采用不同的編程語言實(shí)現(xiàn)。更重要的是,它允許現(xiàn)有組件的集成。
5.CORBA IDL是一種與編程語言無關(guān)的接口定義語言,用來定義對象的請求/服務(wù)接口,描述應(yīng)用對象所封裝的內(nèi)容及界限。它類似于C++中類的描述,也包括屬性和操作兩部分,并且也支持接口之間的繼承,以實(shí)現(xiàn)對象的可重用性。IDL定義經(jīng)過編譯后成為可為開發(fā)人員直接使用的頭文件和stub程序。由OMG IDL到任何編程語言的映射理論上都是可以得到支持的。
6.CORBA作為一種標(biāo)準(zhǔn),其核心元素的穩(wěn)定性是有保證的。CORBA產(chǎn)生于擁有700多成員的OMG組織,該組織包括了多家主要的計(jì)算機(jī)軟硬件廠商及大的科研院所,并得到X/Open,OSF,COSE,CI Labs,X/Consortium等的支持,權(quán)威性是毋庸置疑的。
正是基于CORBA的以上優(yōu)點(diǎn),可以把CORBA與JAVA相結(jié)合,Java彌補(bǔ)了CORBA的一些不足,而CORBA則可以為Java帶來可移植的面向?qū)ο蟮能浖h(huán)境。兩種技術(shù)的基礎(chǔ)結(jié)構(gòu)彼此互補(bǔ),具有非常好的應(yīng)用前景。
CORBA不只意味著對象請求代理(ORB),它同時也是一個非常完整的分布式對象操作平臺。CORBA使JAVA應(yīng)用可以跨越網(wǎng)絡(luò)、程序語言、組件界限以及操作系統(tǒng),并為JAVA提供了一組分布服務(wù),如分布式自我觀察、動態(tài)發(fā)現(xiàn)、事務(wù)、關(guān)系、安全和命名等。因此能夠大大擴(kuò)展Java應(yīng)用軟件的使用范圍。
Java也不光只是一套能和CORBA結(jié)合的程序語言。Java不僅是一種面向?qū)ο蟮恼Z言,它還是一個動態(tài)代碼系統(tǒng),它對運(yùn)行對象來說是一個可移植的虛擬機(jī)(JVM)。JAVA為開發(fā)、管理、發(fā)布Client/Server應(yīng)用提供了更簡單的方式。人們可以通過將應(yīng)用放在一個Web服務(wù)器上將這一應(yīng)用發(fā)布給成千上萬個用戶,而不必關(guān)心它的安裝和升級。JAVA還非常適合服務(wù)器的開發(fā),它可以動態(tài)地將服務(wù)代碼移向最需要它們的地方。
Java允許CORBA對象在各種不同的機(jī)器上執(zhí)行,無論是大型機(jī)、網(wǎng)路電腦(NC),甚至是蜂窩式電話等可編程的各種機(jī)器上,并簡化了大型CORBA系統(tǒng)的代碼發(fā)布。對客戶和服務(wù)對象來說JAVA是很理想的編程語言,JAVA內(nèi)置的多線程、垃圾收集和錯誤處理使編寫健壯的網(wǎng)絡(luò)對象變得很容易。
這兩種對象模型可以很好地相互補(bǔ)充,CORBA處理網(wǎng)絡(luò)的透明性,JAVA處理實(shí)現(xiàn)的透明性,CORBA為JAVA可移植應(yīng)用環(huán)境提供了一個分布式的結(jié)構(gòu)。
這個方案成功的關(guān)鍵在于這兩種技術(shù)的基礎(chǔ)結(jié)構(gòu)能夠彼此互補(bǔ)。Java彌補(bǔ)了CORBA的一些不足,而CORBA則可以為Java帶來可移植的面向?qū)ο蟮能浖h(huán)境。
CORBA和Java為Object Web上各種產(chǎn)品的集成起著沾合劑的作用。這是軟件工業(yè)界中第一個嘗試即插即用功能的軟件,而這個功能正是開放系統(tǒng)最終希望實(shí)現(xiàn)的。
參考文獻(xiàn):
[1]張偉、熊齊幫、仲冬竹,CORBA技術(shù)在網(wǎng)絡(luò)層管理中的應(yīng)用[J].微型機(jī)與應(yīng)用,2001(01).
[2]李琪林、陳宇、周明天,基于CORBA的分布對象容錯機(jī)制研究與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2002(12).
[3]徐占洋、沈琦,實(shí)時CORBA系統(tǒng)中ORB間通信機(jī)制研究[J].計(jì)算機(jī)應(yīng)用與軟件,2005(03).