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