什麼是CORBA

  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分佈計算技術,是由絕大多數分佈計算平臺廠商所支持和遵循的系統規範技術,具有模型完整、先進,獨立於系統平臺和開發語言,被支持程 度廣泛的特點,已逐漸成爲分佈計算技術的標準。COBRA標準主要分爲3個層次:對象請求代理、公共對象服務和公共設施。最底層是對象請求代理ORB,規 定了分佈對象的定義(接口)和語言映射,實現對象間的通訊和互操作,是分佈對象系統中的"軟總線";在ORB之上定義了很多公共服務,可以提供諸如併發服 務、名字服務、事務(交易)服務、安全服務等各種各樣的服務;最上層的公共設施則定義了組件框架,提供可直接爲業務對象使用的服務,規定業務對象有效協作 所需的協定規則。

  CORBA(公共對象請求代理架構):這是個和微軟com,com+齊名的同類軟件技術規範,由OMT提出。

  用於在不同進程(程序)之間,甚至是不同物理機器上的進程(程序)之間通訊。底層技術依靠RPC[遠程過程調用]實現。

  面向對象的軟件,以數據爲中心設計,對象類既具有模塊的封裝性和類屬等特性,還具有繼承特性,極大地提高了類的可擴充性和可再用能力。對象類較之於傳統軟件的功能模塊而另具有的優點是:

  (1)易於理解,具有完整的語義特徵;

  (2)易於擴充和修改,具有較高的通用性和適應性;

  (3)易於構造組裝,具有規範的外部接口。

  開發應用組件必須遵循標準,以保證軟件組件的互操作性,只有遵循統一的標準,不同廠商的、不同時期的、不同程序設計風格的、不同編程語言的、不 同操作系統的、不同平臺上的軟件或軟件部件才能進行交流與合作。爲此,OMG(ObjectManageGroup)提供了一個對象標準CORBA,它定 義了一個網連對象的接口,使得對象可以同時工作。基於CORBA的對象請求代理ORB爲客戶機/服務器開發提供了中間件的新格式。

  作爲OMG成員的微軟公司撇開CORBA而另闢了COM(ComponetObjectModel),即組件對象模型,並把COM定位成基於對 象的軟件開發模型,儘管COM被認爲是微軟鼓譟出來的技術,但支持COM的開發工具卻不斷增多,其中大部分來自於微軟,包括VisualBasic和 VisualC ++。

  公共對象請求代理結構:CORBA標準

  全球性網絡使線上的所有設備和軟件成爲全球共享的浩瀚的資源,計算機環境也從集中式發展到分佈式環境,開放式系統的發展使用戶能夠透明地應用由 不同廠商製造的不同機型不同平臺所組成的異構型計算資源,因此,分佈式處理和應用集成自然而然地成爲人們的共同要求,那麼什麼是分佈式處理和應用集成呢? 它們的功能和關鍵技術是什麼呢?簡單地講,分佈式處理和應用集成就是指在異構的、網絡的、物理性能差別很大的、不同廠商的、不同語言的信息資源的基礎上構 建信息共享的分佈式系統,並且能夠有效地進行應用系統和分佈式處理的集成。分佈式處理的關鍵在於定義可管理的軟件構件,即面向對象技術中的“對象”。應用 集成的關鍵在於爲跨平臺、跨機種、跨編程語言的產品提供統一的應用接口。OMG組織針對當今信息產業的要求,公佈了CORBA標準,即公共對象請求代理體 繫結構(Common Object Request Broker Architecture),這是一個具有互操作性和可移植性的分佈式面向對象的應用標準。

  CORBA的核心是對象請求代理ORB,它提供對象定位、對象激活和對象通訊的透明機制。客戶發出要求服務的請求,而對象則提供服務,ORB把 請求發送給對象、把輸出值返回給客戶。ORB的服務對客戶而言是透明的,客戶不知道對象駐留在網絡中何處、對象是如何通訊、如何實現以及如何執行的,只要 他持有對某對象的對象引用,就可以向該對象發出服務請求。

  CORBA允許用戶以兩種不同的方式提出對象請求:

  1)靜態調用:

  通過給定接口的存根,在編譯了對象代碼後,進入客戶端的程序。因此,靜態調用必須在編譯時就知道對象及其類型。

  2)動態調用:

  通過ORB的動態調用接口DII,在運行時生成訪問對象的代碼。

  不管客戶以哪一種形式提出請求,ORB的任務是:找出所要對象的位置,激活該對象,向對象傳遞此請求。對象執行所請求的服務後,把輸出值返回給ORB,然後再由ORB返回給客戶。

  CORBA的重要概念是:

  1.對象連接

  CORBA廣泛地支持對象的實現,在單服務器系統中也可以實現由接口定義語言定義的接口。ORB的靈活性既可以直接集成已有的應用,又不會使新對象受某些原則的制約。

  對象連接提供了有不同類型對象實現時,使用ORB服務的方法,服務包括:對象引用、方法調用、安全控制、對象實現的激活與靜候等。

  2.接口定義語言(IDL)

  CORBA用IDL來描述對象接口,IDL是一種說明性語言,它的語法類似於C++。

  IDL提供的數據類型有:基本數據類型、構造類型、模板類型、和複合類型、操作說明。這些類型可以用來定義變元的類型和返回類型,操作說明則可以用來定義對象提供的服務。

  IDL還提供模塊構造,其中可以包含接口,而接口是IDL各類型中最重要的,它除了描述CORBA對象以外,還可以用作對象引用類型。

  IDL提供了接口繼承性,派生接口可以繼承其基類接口所定義的操作與類型。IDL的接口繼承性有其特殊性,此處不贅述。

  總之,CORBA的IDL是一種說明性語言,描述面向對象系統開發所遵循的接口與實現相分離的基本原則。

  3.動態調用接口

  把IDL說明編譯成面向對象程序設計語言的實代碼後,客戶可以調用已知對象的操作。在某些應用中,用戶並不瞭解應用接口編譯信息,但也要求調用 對象的操作,這時就要動態調用接口來調用用戶的操作了。例如,圖形用戶接口應支持用戶瀏覽接口公共庫,以獲得每個對象所支持的操作信息,用戶可根據自己的 需求從瀏覽對象中挑選出所需的對象操作,具體的對象操作的調用實際上是用動態調用接口來完成的。

  4.接口公用庫

  接口公用庫持久地存儲IDL的接口說明,藉助於接口公用庫,可以實現對象繼承性層次結構的導航,並且提供了有關對象支持的所有操作的描述。接口 公用庫最常見的功能是爲接口瀏覽器提供信息,幫助應用開發者找出潛在的可重用的軟件部件。ORB可以利用接口公用庫檢查運行時的操作參數類型,但接口公用 庫的基本功能是提供類型信息,爲動態調用接口發送請求提供信息支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章