CORBA

CORBA

CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構,通用對象請求代理體系結構)是由OMG組織制訂的一種標準的面向對象應用程式體系規範。或者說 CORBA體系結構是對象管理組織(OMG)為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案;OMG組織是一個國際性的非盈利組織,其職責是為套用開發提供一個公共框架,制訂工業指南和對象管理規範,加快對象技術的發展。

CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構,通用對象請求代理體系結構)是由OMG組織制訂的一種標準的面向對象套用程 序體系規範。或者說 CORBA體系結構對象管理組織(OMG)為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案;OMG組織是一個國際性的非盈利組織,其職責是為套用開發提供一個公共框架,制訂工業指南和對象管理規範,加快對象技術的發展。

OMG組織成立後不久就制訂了OMA(Object Management Architecture,對象管理體系結構)參考模型,該模型描述了OMG規範所遵循的概念化的基礎結構。OMA由對象請求代理ORB、對象服務、公共設施、域接口和套用接口這幾個部分組成,其核心部分是對象請求代理ORB(Object Request Broker)。對象服務是為使用和實現對象而提供的基本服務集合;公共設施是向終端用戶套用程式提供的一組共享服務接口;域接口是為套用領域服務而提供的接口;套用接口是由開發商提供的產品,用於它們的接口,不屬於OMG標準的內容。ORB提供了一種機制,通過這種機制,對象可以透明的發出請求和接收回響。分布的、可以互操作的對象可以利用ORB構造可以互操作的套用。

CORBA標準由物件管理組織(OMG)設立並進行控制,CORBA定議了一系列API,通信協定,和物件/服務信息模型用於使得異質應用程式能夠互相操作,這些應用程式用不同的程式語言編寫,運行在不同的平台上。CORBA因此為定義明確的物件提供了平台和位置的透明性,這些物件是分散式計算平台的基礎。

通常來說,CORBA把用其他語言開發的程式碼和關於該程式碼能力和如何調用該程式碼的資訊包到一個套裝(package)中,包成套裝的物件則可以在網路上被其他程式(或CORBA物件)調用。 在這個意義上來講,CORBA可以被看作是一個機器可讀的檔案檔格式,似於標頭檔(header),但是具有相當多的資訊。

CORBA使用一種接口定義語言用於刻畫物件將呈現出來的接口。CORBA又規定了從IDL到特定程式語言,如C++或Java,實現的映射。這個映射精確的描述了CORBA資料類型是如何被用戶端和伺服器端實現的。標準映射的有Ada、C、C++、Smalltalk、Java、以及Python。 還有一些非標準的映射,為Perl和Tcl的映射由這些語言寫的ORB實現。

CORBA的IDL只是IDL的一個例子。

在提供用戶語言和平台中性的遠端程式呼叫規範的同時,CORBA也定義了通常需要的服務,例如事務和安全。

CORBA(通用對象請求代理體系結構)是在當今快速發展的軟體與硬體資源的情況下發展出的一種新技術。它可以讓分布的應用程式完成通信,無論這種應用程式是什麼廠商生產的,只要符合CORBA標準就可以相互通信。CORBA 1.1於1991年由OMG提出,同時還提出了接口定義語言Interface Definition Language,IDL)以及能夠讓客戶/伺服器對象在特定的ORB(對象請求代理)實現中進行通信。而1994年提出並被採納的CORBA 2.0標準才真正實現了不同生產廠商間的互操作性。

ORB是一個在對象間建立客戶/伺服器聯繫的中件。使用ORB,客戶可以調用伺服器的對象或對象中的套用,被調用的對象不要求在同一台機器上。由ORB負責進行通信,同時ORB也??象完成後返回結果。客戶對象完全可以不關心伺服器對象的位置,實現它所採用的具體技術和工作的硬體平台,甚至不必關心伺服器對象的與服務無關的接口信息,這就大大簡化了客戶程式的工作。既然能夠這么方便,那ORB就需要提供在不同機器間應用程式間的通信,數據轉換,並提供多對象系統的無縫連線。

我們通常編制客戶/伺服器程式時,常常需要自己定義通信協定,而協定的制定往往與硬體和實現的方法有關,而ORB能夠簡化這一過程。在ORB下,協定通過IDL語言進行定義,保證了一致性,為了照顧到靈活性,ORB允許程式設計師選擇相應的作業系統,執行環境和程式語言。更重要的是它可以使原來的代碼通過一定的方式重用。CORBA是面向對象標準的第一步,有了這個標準,軟體的實現與工作環境對用戶和開發者不再重要,可以把精力更多地放在本地系統的實現與最佳化上。

下面我們來看看CORBA的一些具體情況。CORBA被設計用來對不同對象系統進行集成,提供靈活的的對象調用與功能實現。下圖是客戶對象通過ORB調用伺服器對象。

CORBA

對象請求代理結構的大體工作過程就象上面的工作過程一樣。客戶將需要完成的工作交給ORB,由ORB決定由哪一個對象實例完成這個請求,然後激活這個對象,將完成請求所需要的參數傳送給這個激活的對象。除了客戶傳送參數的接口外,客戶不需要了解其它任何信息,這就大大節省了用戶的開發精力。而下圖著重說明ORB的接口結構。

CORBA

這個圖中的一些信息希望大家能夠注意一下,在編程的時候不一定能夠全部用上,但是它們還是很重要的。在提出請求時,客戶可以使用動態調用接口或者OMG IDL句柄。當然用戶也可以直接調用一些ORB內部的功能。對象實現通過OMG IDL產生的框架或通過動態框架接收到調用請求,在處理這些請求時,對象實現可以調用對象適配器和ORB。

對象的接口有兩種定義方式,可以使用接口定義語言(稱為OMG接口定義語言,OMG IDL)進行靜態定義,這種語言根據進行的操作和傳送的參數定義對象。另一種方法,可以將接口加入接口庫服務中,這種服務代表作為對象的接口的組件,允許在運行時對這些成為組件的接口進行訪問,這兩種方法是等效的。下圖表示的是客戶使用句柄或動態調用接口進行訪問的情況。

CORBA

客戶知道對象的類型和希望進行的操作(一般客戶都知道這個,如果連需要進行什麼操作都不知道,那就可笑了)客戶可以通過訪問一個對象的對象參考提出請求。客戶可以通過調用句柄函式初始化調用,也可以動態提出請求。動態發出的請求和通過句柄接口發出的靜態請求兩者在格式是一樣的,請求的接收者不可能知道這種請求是動態發出的還是靜態發出的。下圖是一個對象實現接收請求的示意圖。

CORBA

ORB定位合適的可以實現這個功能的代碼,通過IDL框架或動態框架傳向對象實現傳送參數,並將控制權交給對象實現。框架是指定於接和對象適配器的,在實現請求的過程中,對象實現可以通過對象適配器獲取一些ORB服務。在完成請求時,將控制權和輸出數據返回給客戶。不要被圖給迷惑了,對象實現可以根據自己的需要選擇需要的對象適配器使用。下圖是接口和實現庫的結構示意圖。

CORBA

上圖顯示了接口和實現住處如何對客戶和對象實現是可用的,接口可以在OMG IDL或在接口庫中實現,這種對接口的定義用於產生客戶句柄和對象實現框架。對象實現信息在安裝時提供,保存於實現庫中,在傳送請求時可以使用這個信息庫中的內容。

對象請求代理這個結構在上圖中並不需要作為組件單獨實現,它由接口定義。任何提供正確接口的ORB實現都是可被接受的。接口可分為以下幾大類:

1.對於所有ORB實現均相同的接口;
2. 指定於特定對象類型的操作;
3. 指定於對象實現的特定形式的操作;

不同的ORB可以採用不同的實現策略,加上IDL編譯器,庫和不同的對象適配器,這一切提供了一系列對客戶的服務和對具有不同屬性對象的實現。可以存在多個ORB實現,它們有不同的名稱和不同的實現方法與調用方法,對於客戶而言,客戶可以同時訪問由不同ORB實現管理的對象,當幾個ORB共同工作時,它們必須能夠區別它們各自的對象名(也就是對象參考),客戶不管區別只管使用。ORB核心是ORB的一部分,它提供了對象的基本命名和請求通信機制。CORBA設計得可以支持不同的對象機制,它是通過在ORB核心上建立ORB來完成這一點的。

一個對象的客戶可以訪問此對象參考,並對對象進行操作。客戶不清楚對象的內部結構,它只知道對象的接口和執行操作所需要的時間和空間等資源。雖然我們可以把客戶想像為一個調用對象的進程,但是我們也不要忘記了對象也可以調用另外對象的服務。客戶看到的ORB接口和人觀念中的接口有差不多,這就為編程提供了幫助。客戶不需要對代碼進行改變就可以通過ORB實現功能,對象適配器只能由ORB或對象實現調用。

對象實現提供了對象的表現形式。通常實現由另一對象提供或由相應的軟體提供,當然也可以自己編程實現。在某些情況下,對象的主要功能是非對象實體產生作用。在CORBA中可以支持對象的不同實現。通常,對象實現不依賴於ORB或客戶請求,對象實現可以通過選擇對象適配器選擇和ORB相關服務來選擇接口。

對象參考是需要在ORB內指定的信息,客戶和對象實現相應於語言映射有對象參考的一個透明定義,這樣就把實現的表示與參考隔離開了。兩個ORB實現可能在選擇對象參考表示時是不同的。所有的ORB必須提供相對於對象參考一致的語言映射,這使得程式能夠獨立於ORB對對象參考進行訪問。

OMG接口定義語言(OMG IDL)通過對象的接口定義了對象的類型。一個接口由一些命名的操作和與這些操作相關的參數組成。請注意,雖然IDL提供概念框架用於??同的信息以句柄函式或運行接口庫的形式提供,特定的ORB就可以正常工作。IDL是一種方法,它使對象實現能夠告訴潛在的客戶,什麼樣的操作可以執行。從IDL的定義上可以將CORBA對象映射為特定的程式語言或對象系統。

不同的面向對象語言和非面向對象語言可以以不同的方式訪問CORBA對象。對於面向對象語言而言,它希望看到的是對象的形式,即使對非面向對象語言來說,它所希望看到的也不包括具體的內部實現。將OMG IDL映射為程式語言的方法對於所有的ORB實現應該是一致的。這些映射可能包括數據類型的映射和調用ORB的過程(或函式)接口的映射。語言映射還定義了對象調用和客戶(或實現)中的控制執行緒之間的相互作用。最普通的映射提供了同步調用,結果可以在過程完成時返回。其它的映射可以用來初始化調用並將控制權返回給程式,在這些情況下,附加的函式必須相應的同步功能。

為了映射非面向對象語言,將有一個對每個接口類型的程式接口。通常,句柄將提供訪問OMG IDL定義的操作的機制。句柄調用對於ORB核心是私有的那部分ORB。如果有多於一個ORB,將會有對應於不同ORB的接口。在這種情況下,需要ORB和語言映射相互協調以訪問正確的對象參考句柄。面向對象語言不需要句柄接口。接口允許對象動態調用,用戶可以不必調用一個特定對象上的操作,他可以指定調用特定的對象。客戶程式提供關於操作和參數類型的信息就可以了。

允許動態處理對象調用的接口是非常有用的,不是由與特殊操作相關的框架來訪問對象實現,而是由一個提供訪問操作名和參數的界面用一種類似於動態調用接口的方式來訪問對象實現。動態框架界面可以由客戶句柄或動態調用接口來調用,它們向動態框架接口發出對象請求。動態框架接口的基本思想是讓所有的對象請求通過調用同一組例程來達到調用對象實現中方法的目的,這組例程便叫做動態調用例程DIR。

對象適配器是對象實現訪問ORB提供的服務的主要方式由ORB提供的服務在一個對象適配器中經常包括:對象引用的產生和解釋、方式調用、互動性安全、對象和實現的激活與釋放、對象引用到實現的映射及實現的定位由於各個不同對象的對象粒度、生命周期等等。ORB核心無法為所有的對象提供一個統一、方便有效的界面。通過對象適配器的作用,可以將目的對象分成若干組,每組通過特定的對象適配器來滿足其特定的需要,但這樣一來,對象適配器的種類便會急劇膨脹,為了減少對象適配器的種類,CORBA給出了基本對象適配器(BOA),以滿足大多數對象的需要,BOA提供了產生和解釋對象引用、對請求進行認證、激活/去活實現 、激活/去活單個對象、通過框架調用方法等功能. 在提供這些功能時 ,BOA要用到一些與作業系統有關的知識 ,這些知識由實現倉庫提供,實現倉庫還存放對象實現的有關信息。

ORB接口一種直接對應於ORB的接口,它對於所有的對象接口,對象適配器都是一樣的。大部的操作都由對象適配器,句柄,框架或動態調用實現,對於所有對象都需要的操作很少。接口庫是一種服務,其中保存著接口信息,這些信息在ORB執行請求時會用得上。而且,當一個應用程式在調用一個未知接口的對象時,可以通過接口庫了解能夠在其上進行的操作。除了,它可以充當ORB功能外,實現庫通常還保存與ORB對象實現相關的信息。實現庫包括了一些信息,這些信息讓ORB可以定位並激活對象的實現。實現庫中的信息是特定於ORB或實現環境的,通常,實現的安裝和控制策略是通過實現庫實現的。除了,它可以充當ORB功能外,實現庫通常還保存與ORB對象實現相關的信息。

一、CORBA的來源

●CORBA體系結構是對象管理組織(OMG)為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案;

●OMG是一個世界性的非贏利論壇組織,成立於1989年,最初有3Com、AmericanAirlines、Cannon Inc、DataGeneral、HP、Philips Telecommunication N.M、SUN、Unisys八個成員,目前已超過700個成員,其目標是開發一種技術上先進和商業上可用,獨立於廠商的軟體工業規範;

●1991年OMG提出了CORBA1.1,定義了IDL接口定義語言,開發出對象請求代理ORB中間件,在客戶機/伺服器結構中,ORB通過一定的應用程式接口(API),實現對象之間的互動;

●1994年12月OMG完成了CORBA2.0,提出了IIOP(Internet Inter Object Protocol),用以規範不同廠家的ORB之間的真正互通,同時增加了互操作性和對C++及SmallTalk的匹配,OMG期望通過上述規範,建立一種“連線世界的體系結構”;

●CORBA 在面向對象的標準化和互操作上邁出了堅實的一步。使用CORBA,用戶能在不知道軟體和硬體平台以及網路位置的情況下透明的獲取信息;

●CORBA自動進行許多網路規劃任務如對象註冊、定位、激活;多路徑請求;分幀和錯誤處理機制;並行處理以及執行操作;

●作為面向對象系統中的通信核心, CORBA為當代的計算環境中帶來了真正意義上的互聯;

二、CORBA的含義及特點

●CORBA定義了一種面向對象的軟體構件構造方法,使不同的套用可以共享由此構造出來的軟體構件;

●每個對象都將其內部操作細節封裝起來,同時又向外界提供了精確定義的接口,從而降低了套用系統的複雜性,也降低了軟體開發費用;

●CORBA的平台無關性實現了對象的跨平台引用,開發人員可以在更大的範圍內選擇最實用的對象加入到自己的套用系統之中;

●CORBA的語言無關性使開發人員可以在更大的範圍內相互利用別人的編程技能和成果, 是實現軟體復用的實用化工具;

三、CORBA的一般用途

●存取來自現行桌面應用程式的分布信息和資源;

●使現有業務數據和系統成為可供利用的網路資源;

●為某一特定業務用的定製的功能和能力來增強現行桌面工具和應用程式;

●改變和發展基於網路的系統以反映新的拓撲結構或新資源;

四、CORBA的技術背景

●面向對象技術的興起;

●客戶/伺服器模式的普遍套用;

●集成已有系統及通信和實現細節的需求

●現有分布處理機制和方法存在著不足之處;

五、基於分散式對象計算的CORBA

●在CORBA環境中,應用程式的集成是基於面向對象模型的;

●CORBA通過分散式對象計算,即分散式計算和面向對象計算的結合,以實現軟體重用,這是開發下一代軟體的基礎;

●分散式對象計算的組成

分散式計算和對象模型的結合:CORBA是這兩者的完美結合,這兩部分不僅帶來了自身的優點,而且完善了對方的優點;

代理器的使用:CORBA使用代理器來處理系統中客戶機與伺服器之間的訊息

●什麼是分散式計算

分散式計算是兩個或多個軟體互相共享信息;

大部分分散式計算是基於客戶/伺服器模型的;

分散式計算可以擁有稀有資源共享、平衡機器負載等優點,使計算機資源的使用更為有效;

CORBA採用一定的手段增強分散式計算:

●CORBA採用增強分散式計算的手段

允許客戶機與器間靈活變化的關係;

加入一個稱為代理的中介;

允許伺服器有多個進程;

支持同步及異步兩種通信形式;

●對象模型是對象計算中的概念,是考慮問題及其可能解決方案的概念性框架; 對象模型的基礎是對象概念之上的,對象提供了把行為和屬性結合成一單獨實體的手段;

●使用對象模型具有以下優點:定義一個基於現實世界的系統模型

 把系統邏輯地分成能完成特定任務的對象

 當需求改變時擴展模組

● 在CORBA中分散式計算和對象模型的結合實現了相互促進,CORBA在分散式計算和對象模型環境中加入了下列內容:

●分散式計算方面的增強:對分散式計算環境,CORBA在環境中加入了特定對象的引用。在CORBA中,要完成某個操作,所需要做的僅僅是請求某個有能力完成該操作的對象去完成它,客戶機不需要知道更多的信息;

對象模型方面的增強:對於對象模型,CORBA加入了代理器的概念。代理器使應用程式不需要知道對象在網路上哪個地方和對方是如何工作的就可以進行互動,只有代理器需要知道CORBA伺服器和客戶機在網路上的位置;

六、CORBA――通信中間件

●中間件是處於應用程式及應用程式所在系統的內部工作方式之間的軟體;

●中間件把應用程式與系統所依附軟體的較低層細節和複雜性隔離開來,使應用程式開發者只處理某種類型的單個API――其他細節則可以由中間件處理;

●CORBA可以被稱為通信中間件,它可以看成是把應用程式和通信核心的細節分離的軟體;

七、CORBA規範的技術特點

●引入了代理的概念;

●所實現的客戶方程式與伺服器方程式的完全分離;

●將分布計算同面向對象的概念相互結合;

●提供了軟體匯流排的機制;

分層的設計原則與實現方法;

八、CORBA產品一覽

●IONA公司的Orbix ;

●Inprise公司的VisoBroler ;

●Digital公司的Component Broker ;

●IBM公司的Component Broker ;

●Sun Microsystems 公司的NEO、JOE;

●SunSoft公司的DOE ;

●東南大學開發研製的ORBUS;

九、CORBA服務的基本內容

在CORBA體系規範中定義了多種類型的服務(Service),如命名(Naming)、生存期(LifeCycle)、事件(Event)、事務(Transaction)、對象持久化(Persistent Objects)、查詢(Query)、特徵(Property)、時間(Time)等服務功能。

在CORBA規範中,沒有明確說明不同廠商的中間件產品要實現所有的服務功能,並且允許廠商開發自己的服務類型。因此, 不同廠商的ORB產品對CORBA服務的支持能力不同,使我們在針對待開發系統的功能進行中間件產品選擇時,有更多的選擇餘地。

下面介紹與分散式套用程式設計和開發關係密切的CORBA服務內容:

1. 對象命名服務(Naming Service)

在命名服務中,通過將服務對象賦予一個在當前網路空間中的惟一標識來確定服務對象的實現。在客戶端,通過指定服務對象的名字,利用綁定(Bind)方式,實現對服務對象實現的查找和定位,進而可以調用服務對象實現中的方法。

2. 對象安全性(Security)服務

在分散式系統中,服務對象的安全性和客戶端套用的安全性一直是一個比較敏感的問題,安全性要求影響著分散式套用計算的每個方面。對於分布在網際網路中的分散式套用來講,為了防止惡意用戶或未經授權的方法調用對象的服務功能,CORBA提供了嚴格的安全策略,並制定了相應的對象安全服務。安全服務可以實現如下功能:

● 服務請求對象的識別與認證;

● 授權和訪問控制;

● 安全監聽;

● 通信安全的保證;

● 安全信息的管理;

● 行為確認。

CORBA系統將對象請求的安全性管理的功能交由ORB負責,系統組件只需負責系統本身的安全管理,使得基於分散式套用在安全性控制方面的責任十分明確。

3. 並發控制(Cocurrency Control)服務

CORBA規範中定義並發控制服務的目的在於實現多客戶訪問情況下的並發性控制和對共享資源的管理。

並發控制服務由多個接口構成,能夠支持訪問方法的事務模型和非事務模型。由於兩種模型的引入,使得非事務型客戶在訪問共享資源時,如果該資源被擁有事務模型的方法鎖定(Lock),則該客戶轉入阻塞狀態,直到事務型方法執行結束,將共享資源鎖打開,非事務模型的客戶才能夠訪問該共享資源。

並發控制服務使多個對象能夠利用資源鎖定(Lock)的方式來對共享資源進行訪問。在訪問共享資源之前,客戶對象必須從並發控制服務中獲得鎖定。在確認資源目前正在空閒時,獲得資源的使用權。每個鎖定是一個資源-客戶對,說明哪個客戶正在訪問何種類型的資源。

4. 對象生命期服務(LifeCycle)

CORBA中的生命期服務定義和描述了創建、刪除、拷貝和移動對象的方法。通過生命期服務,客戶端套用可以實現對遠程對象的控制。

利用命名(Naming)服務

實現分散式套用

在上篇文章中介紹的利用JavaIDL開發分散式套用時曾採用命名服務的方式。對象命名服務是ORB查找服務對象實現的一種簡單的方式。

1. 功能需求分是模擬電話用戶註冊及電話號碼查詢業務,開發基於命名服務的分散式應用程式,中間件產品採用VisiBroker 4.5.1 for Java。

根據系統功能的定義,兩種業務均屬於電信業務的經營範圍,因此定義模組名TeleCom。電話號碼註冊為電信業務管理功能範圍,需定義該功能接口Registry,該接口內包含用戶註冊方法register();電話號碼查詢為用戶服務功能範圍,需定義接口User,該接口內包含查詢個人電話號碼方法getNumber()。經過上述分析後編寫的IDL接口定義檔案TeleCom.idl如下:

module TeleCom

{ interface User //接口User聲明

{ //接口中getNumber方法的定義

int getNumber();

};

interface Registry //接口Registry聲明

{ //接口中register方法定義,其中以string類型變數作為輸入參數 ’方法返回User對象

User register(in string name);

};

};

上述接口定義檔案經idl2java編譯後,在當前接口檔案目錄中生成TeleCom子目錄,該目錄中包括UserPOA.java、RegistryPOA.java等檔案。這些檔案是客戶端和服務對象實現功能的框架以及相關的支持檔案。有興趣的讀者可以實際創建IDL檔案,經IDL到Java語言的映射後,分析生成檔案的格式。

2. 實現服務功能

(1)實現User接口的類UserImpl

根據系統分析確定的功能,定義接口User對應的實現類UserImpl的代碼如下:

// UserImpl類繼承定義在UserPOA.java中的UserPOA類

public class UserImpl extends TeleCom

.UserPOA

{ private int aNumber;

//

十、CORBA系統在CIMS中的套用

在CIMS環境下,套用通常是分布的,套用之間需要交換信息和數據,例如CAD和CAM之間,CAD、CAM和MRP II之間,甚至是不同的CAD套用之間都會發生數據的互動。分散式套用的開發,尤其是面向對象的分散式套用的開發,對於系統開發者而言是極具挑戰性的。CORBA、C OM/OLE Automation和JavaBeans是目前針對此類套用的主要分布對象計算模型和支持系統。一般來說,如果所開發的套用只面向Windows平台(Windows 3.x/95/NT),那么使用COM 是最佳的選擇;如果所開發的套用完全是使用Java語言編制的,那么就應該採用JavaBeans 的方案。但是,如果所開發的套用需要集成異構的平台,那么無疑應該選擇CORBA。通過C ORBA系統的支持,分布套用的開發者可以採用不同的語言、作業系統和硬體平台來開發面向對象的分散式套用。當然,首要的條件是存在支持該種平台、作業系統和語言的CORBA系統。

利用CORBA系統進行分布對象套用的開發具有下面三個特點:①開發代價小、效率高。系統開發者只需要編寫描述服務對象接口的IDL語言檔案並安裝描述檔案,實現服務對象的功能即完成了全部的任務。其它的相關代碼或者是由IDL編譯器自動創建,或者是由ORB 類庫提供,應用程式員並不需要編寫例如網路通信、數據編碼/解碼、名址映射和安全管理的程式代碼,從而可以把工作重點放到服務對象實現的過程中去。②通過CORBA系統的支持,一個服務對象可以透明地被分布在本地和網路上的客戶所調用,擴大了服務對象的使用範圍,為分布的客戶所共享。③CORBA系統作為“軟體匯流排”,可以為服務對象提供“ 即插即用”的功能,而且當對象實現改進或升級時,只要接口保持不變,客戶代碼無需作任何改動。

在CIMS的套用環境之下,CORBA系統的另一個十分重要的作用是集成已有的套用系統,這樣的套用系統通常稱為“遺留系統”(Legacy System)。“面向CIMS的並行工程集成框架關鍵技術”課題就是一個很好的例子。各個領域框架的套用系統,例如,機械領域的Pro Engi neer、電子領域的Mentor Graphics等等,需要通過CORBA系統集成到一起實現信息的互動和共享。集成的關鍵在於對遺留系統的封裝和包裹(wrap),經過包裹,遺留系統就能夠以OMG IDL的形式提供給用戶,從而和新開發的面向對象的分散式套用同樣處理。包裹的形式視不同的遺留系統而不同,對於能夠提供用戶調用接口的遺留系統,只要利用原有的調用來構造新的界面(必要時需要進行一定的擴充)即可;而對於比較封閉的遺留系統,集成的難度就大得多了,通常是利用檔案作為中介來集成。不過,目前CAD、CAM和MRP II 的系統廠商在發展過程中也在逐步使自身的套用系統更加開放,向用戶提供更靈活的控制手段,完全封閉的系統已經十分少見了,從而使集成工作也變得相對簡單。

相關詞條

相關搜尋

熱門詞條

聯絡我們