天天看點

基于CORBA的分布式程式設計(Advanced CORBA Distributed Programming)(十一)

第八章  附錄

8.1  CORBA 版本

軟體市場中能夠見到的CORBA中間件産品很多,但基于不同公司的産品戰略以及研發方向,各個産品在服務性能、對進階語言的支援和所依賴的系統平台方面有很大差別。以下是對主要産品在幾方面進行了分析(參見表1),可供參考。

主要中間件産品

8.2目前最新的CORBA産品:

MICO、ORBacus、ORBacus 3、The ACE ORB (TAO)、VisiBroker、JacORB、omniORB 3、omniORB 4.0 preview、Orbix 2000、BusinessWare、OpenORB、OpenFusion、mico/E、TAO 1.2a (beta)、ORBacus/E、SmalltalkBroker、Orbix/E 2.0、orb2、e*ORB C++ Edition、e*ORB Java Edition 

8.3 最新标準CORBA3

CORBA3新特性

術語CORBA3是指一整套規範,這些規範總起來增強了CORBA的性能和可用性。所有這些規範已經被采用,并且幾乎所有規範已經由OMG組織作為正式的已經編号的CORBA版本的一部分釋出了。在OMG的一個新程式中,這些規範一開始被分為“産前”一類,隻有結束對它們的第一次維護修訂之後,才會轉為“可用”的(也就是,包含在目前已經編号的CORBA版本中的正式的OMG規範)。

CORBA 3 中的規範可以很清析地分為三大類:

•  Java和Internet內建;

•  服務品質(QoS)控制;

•  CORBA元件體系。

下面将依次介紹這三部分:

1. JAVA和INTERNET內建

下面的規範增強了CORBA與日益流行的JAVA語言及Internet的內建:

可以用值傳遞的對象

CORBA's language-independent equivalent of Java's serializable,(慚愧,我不知道這句該如何翻譯才好,如有會者,請不吝賜教) 值類型為CORBA增加了許多特性,包括Java到IDL的反映射(将在後面提到)和能夠把XML文檔表示為本地CORBA類型的XML/Value映射。現在,作為CORBA的很好地建立起來的一部分,這個特性已經包含在1999年6月份釋出的CORBA2.3标準中,并作為第5、6章 仍然保留在核心CORBA規範中。跟語言相關的方面包含在 各自的語言映射規範中。

Java到IDL的映射

這個映射使得Java RMI對象能夠跟CORBA對象一樣通過網絡進行互操作。它們具有CORBA對象引用,發出IIOP協定。就象CORBA元件模型和企業級JavaBeans 幫助開發人員和公司建構應用元件庫一樣,本規範将使CORBA元件庫和EJBs一起用來建構應用。就象值類型規範一樣,Java到IDL的映射也是CORBA 2.3規範的一部分,它可以在語言映射裡找到.

可共用的命名服務

CORBA對象引用是CORBA體系的基石。因為計算機可讀的IOR(Interoperable Object Reference可互操作的對象引用)是(直到現在)唯一用來連接配接一個執行個體并調用它的方法,沒有方法來連接配接一個遠端的執行個體----即使你知道它的位置并且它已經起來并運作着----除非你得到它的對象引用。得到對象引用的最簡單的方法是得到一個它的命名服務的引用,但是,如果你連命名服務的引用也沒有,怎麼辦呢?

可共用的命名服務定義了一種URL形式的對象引用:corbaloc,在一個程式裡,它可以用來連接配接到一個遠端的地方,包括命名服務。另一種URL形式, corbaname,實際上是通過使用使用者加在URL後面的名字調用名字服務傳回所指對象的IOR。

例如,一個corbaloc辨別符:

corbaloc::www.omg.org/NameService

将确定一個CORBA命名服務,這個命名服務正運轉在IP位址對應于www.omg.org域名的機器上(如果我們在OMG運轉着一個命名服務的話)。在2000年後期,這個服務被加在了CORBA2.4版本的規範中,在這個規範中,對象的URL定義在第13.6.10節,初始服務引用的配置定義在第4.5.3節。對象複合名字的标準語義的定義在命名CORBA服務的第2.4節。

防火牆規範

CORBA 3規範将定義CORBA用來安全的穿過防火牆的性能。當我們在2001年4月寫本文的時候,最初在1998采用的防火牆規範正在進行一次大的修訂。

你可以從這兒檢視有關修訂的過程及下載下傳規範的草案。 修訂工作計劃在2001年年中完成,當我們在7月份更新本文的時候,快要結束了。

2. 服務品質控制

異步消息和服務品質控制

新的消息規範為CORBA定義了一些異步的、時間無關的調用模式,允許用任何模式來進行靜态或動态調用。異步調用的結果可以由輪徇檢測或回調取得,這由用戶端在原始調用中所用的模式決定。政策可以用來控制調用的服務品質。用戶端和對象可以控制排序(按照時間、優先級或期限);設定優先級、期限和生存時間;可以為一個時間敏感的調用設定開始和結束時間;可以控制路由政策和網絡路由的躍距計數。消息規範包含在2000年後期釋出的CORBA 2.4版本規範的第22章。

最小CORBA,容錯CORBA,和實時CORBA

最小CORBA是主要是為了嵌入式和卡片式的系統。這些系統一旦被定下來,燒制到産品的蕊片裡,就固定了,它們跟外部網絡的互動作用是可預見的——它們不需要CORBA的動态特性,如動态調用接口或者支援它的接口倉庫,是以這些沒有包含在最小CORBA裡。最小CORBA成為2000年後期釋出的 CORBA2.4規範的一部分,在第23章中。

實時CORBA标準化了資源控制——線程、協定、連結等等——利用優先級模型來為硬的和統計的實時環境實作可預測的行為。動态排程,還不是目前規範的一部分,已經通過一個單獨的RFP的形式加了進來,在我們2001年7月更新此文的時候已經完成工作,進入到最後的投票階段。 實時CORBA成為2000年後期釋出的 CORBA2.4規範的一部分,在第24章中。

容錯CORBA标準化備援軟體配置和系統,當它們運轉在備援硬體裝置上時,給了CORBA企業應用所依賴的可靠的及健壯的性能。比實時CORBA和最小CORBA更新,這個規範還沒有作為一個編号的版本釋出。這個規範已經被正式采納,現在已經完成了它的第一輪修訂,你可以從這兒找到這個規範。

3. CORBA元件包

CORBA元件和CORBA腳本

這是OMG自從在CORBA2中定義IIOP協定以來最令人興奮的事情之一,CORBA元件在開發人員、使用者及元件消費者的好處上有了多方面的提高。CORBA元件三個最主要的部分是:

l         一個容器環境,它打包了事務、安全、持久性,并提供接口和事件處理;

l         跟企業級JavaBeans內建;

l         一個能夠促使形成CORBA元件軟體市場的軟體分發形式。

CORBA元件容器環境是持久的、支援事務的和安全的。對程式設計人員來說,這些功能是在一個比CORBA服務所提供的功能更高的抽象層次上被預打包和提供的。這相當于大大提高了商業程式員的技能:他們不再需要建構事務和安全應用的技能,他們現在可以用他們的才能來生産商業應用,而這些應用自然就具有這些必要的特性。

容器知道元件産生的和消費的事件類型,并提供傳送事件的通道。容器也知道它所包含的元件所提供的和需要的接口,并把互相适合的連在一起。CORBA元件支援多接口,該體系支援在它們中間進行引導(navigation)。

企業級JavaBeans (EJBs)将作為CORBA元件發生作用,并能安裝在CORBA元件容器中。當然,跟EBJs不同, CORBA元件可以用多種語言來編寫并支援多接口。

本規範定義了一個多平台的軟體分發形式,包括安裝器及基于XML的配置工具,還定義了一個單獨的腳本規範,用來把CORBA群組件裝配映射到一些已經可用的腳本語言。

CORBA元件模型現在正處于維護階段,在結束之前,你可以下載下傳已經采納的規範。

腳本語言

腳本語言最初是為了從CORBA元件(和企業級JavaBeans)中動态地裝配應用,現在用來通路CORBA用戶端和對象。對元件裝配的擴充将跟随CORBA3.0中的CCM。CORBA支援到兩種腳本語言的映射:一個到Python,另一個定義了一種 針對CORBA的腳本語言。它們已經正式釋出,但是因為它們在OMG的語言映射的書裡,而不是在CORBA的書裡,是以沒有CORBA的釋出版本。

結論…

經過OMG組織成員十年的共同努力,基本的CORBA架構已經完成,并且在成千上萬的地方一直應用着。CORBA3的最初綁定的擴充為OMG組織建立的體系帶來了易用性和精确地控制。這些擴充保證了CORBA在将來的計算機世界中的作用。

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/helloworlder/archive/2003/07/03/20374.aspx