CORBA
CORBA(
Common Object Request Broker Architecture公共對象請求代理體系結構)是由
OMG組織制訂的一種標準的
面向?qū)ο?/font>應用程序體系規(guī)范。或者說 CORBA體系結構是對象管理組織(OMG)
為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案;OMG組織是一個國際性的
非盈利組織,其職責是為應用開發(fā)提供一個公共框架,制訂工業(yè)指南和對象管理規(guī)范,加快對象技術的發(fā)展。
OMG組織成立后不久就制訂了OMA(Object Management Architecture,對象管理體系結構)參考模型,該模型描述了OMG規(guī)范所遵循的概念化的基礎結構。OMA由對象請求代理ORB、對象服務、公共設施、域接口和應用接口這幾個部分組成,其核心部分是對象請求代理ORB(Object Request Broker)。對象服務是為使用和實現(xiàn)對象而提供的基本服務集合;公共設施是向終端用戶應用程序提供的一組共享服務接口;域接口是為應用領域服務而提供的接口;應用接口是由開發(fā)商提供的產(chǎn)品,用于它們的接口,不屬于OMG標準的內(nèi)容。ORB提供了一種機制,通過這種機制,對象可以透明的發(fā)出請求和接收響應。分布的、可以互操作的對象可以利用ORB構造可以互操作的應用。
CORBA標準由對象管理組織(OMG)設立并進行控制,CORBA定議了一系列API,通信協(xié)議,和物件/服務信息模型用于使得異質(zhì)應用程序能夠互相操作,這些應用程序用不同的程序語言編寫,運行在不同的平臺上。CORBA因此為定義明確的物件提供了平臺和位置的透明性,這些物件是分布式計算平臺的基礎。
CORBA分布計算技術,是由絕大多數(shù)分布計算平臺廠商所支持和遵循的系統(tǒng)規(guī)范技術,具有模型完整、先進,獨立于系統(tǒng)平臺和開發(fā)語言,被支持程度廣泛的特點,已逐漸成為分布計算技術的標準。COBRA標準主要分為3個層次:對象請求代理、公共對象服務和公共設施。最底層是對象請求代理ORB,規(guī)定了分布對象的定義(接口)和語言映射,實現(xiàn)對象間的通訊和互操作,是分布對象系統(tǒng)中的"軟總線";在ORB之上定義了很多公共服務,可以提供諸如并發(fā)服務、名字服務、事務(交易)服務、安全服務等各種各樣的服務;最上層的公共設施則定義了組件框架,提供可直接為業(yè)務對象使用的服務,規(guī)定業(yè)務對象有效協(xié)作所需的協(xié)定規(guī)則。
CORBA(公共對象請求代理架構):這是個和微軟com,com+齊名的同類軟件技術規(guī)范,由OMT提出。
用于在不同進程(程序)之間,甚至是不同物理機器上的進程(程序)之間通訊。底層技術依靠RPC[遠程過程調(diào)用]實現(xiàn)。
面向?qū)ο蟮能浖?#xff0c;以數(shù)據(jù)為中心設計,對象類既具有模塊的封裝性和類屬等特性,還具有繼承特性
,極大地提高了類的可擴充性和可再用能力。對象類較之于傳統(tǒng)軟件的功能模塊而另具有的優(yōu)點是:
(1)易于理解,具有完整的語義特征;
(2)易于擴充和修改,具有較高的通用性和適應性;
(3)易于構造組裝,具有規(guī)范的外部接口。
開發(fā)應用組件必須遵循標準,以保證軟件組件的互操作性,只有遵循統(tǒng)一的標準,不同廠商的、不同時期的、不同程序設計風格的、不同編程語言的、不同操作系統(tǒng)的、不同平臺上的軟件或軟件部件才能進行交流與合作。為此,OMG(ObjectManageGroup)提供了一個對象標準CORBA,它定義了一個網(wǎng)連對象的接口,使得對象可以同時工作。基于CORBA的對象請求代理ORB為客戶機/服務器開發(fā)提供了中間件的新格式。
作為OMG成員的微軟公司撇開CORBA而另辟了COM(ComponetObjectModel),即組件對象模型,并把COM定位成基于對象的軟件開發(fā)模型,盡管COM被認為是微軟鼓噪出來的技術,但支持COM的開發(fā)工具卻不斷增多,其中大部分來自于微軟,包括VisualBasic和VisualC ++。
公共對象請求代理結構:CORBA標準
全球性網(wǎng)絡使線上的所有設備和軟件成為全球共享的浩瀚的資源,計算機環(huán)境也從集中式發(fā)展到分布式環(huán)境,開放式系統(tǒng)的發(fā)展使用戶能夠透明地應用由不同廠商制造的不同機型不同平臺所組成的異構型計算資源,因此,分布式處理和應用集成自然而然地成為人們的共同要求,那么什么是分布式處理和應用集成呢?它們的功能和關鍵技術是什么呢?簡單地講,分布式處理和應用集成就是指在異構的、網(wǎng)絡的、物理性能差別很大的、不同廠商的、不同語言的信息資源的基礎上構建信息共享的分布式系統(tǒng),并且能夠有效地進行應用系統(tǒng)和分布式處理的集成。分布式處理的關鍵在于定義可管理的軟件構件,即面向?qū)ο蠹夹g中的“對象”。應用集成的關鍵在于為跨平臺、跨機種、跨編程語言的產(chǎn)品提供統(tǒng)一的應用接口。OMG組織針對當今信息產(chǎn)業(yè)的要求,公布了CORBA標準,即公共對象請求代理體系結構(Common Object Request Broker Architecture),這是一個具有互操作性和可移植性的分布式面向?qū)ο蟮膽脴藴省?
CORBA的核心是對象請求代理ORB,它提供對象定位、對象激活和對象通訊的透明機制。客戶發(fā)出要求服務的請求,而對象則提供服務,ORB把請求發(fā)送給對象、把輸出值返回給客戶。ORB的服務對客戶而言是透明的,客戶不知道對象駐留在網(wǎng)絡中何處、對象是如何通訊、如何實現(xiàn)以及如何執(zhí)行的,只要他持有對某對象的對象引用,就可以向該對象發(fā)出服務請求。
CORBA允許用戶以兩種不同的方式提出對象請求:
1)靜態(tài)調(diào)用:
通過給定接口的存根,在編譯了對象代碼后,進入客戶端的程序。因此,靜態(tài)調(diào)用必須在編譯時就知道對象及其類型。
2)動態(tài)調(diào)用:
通過ORB的動態(tài)調(diào)用接口DII,在運行時生成訪問對象的代碼。
不管客戶以哪一種形式提出請求,ORB的任務是:找出所要對象的位置,激活該對象,向?qū)ο髠鬟f此請求。對象執(zhí)行所請求的服務后,把輸出值返回給ORB,然后再由ORB返回給客戶。
CORBA的重要概念是:
1.對象連接
CORBA廣泛地支持對象的實現(xiàn),在單服務器系統(tǒng)中也可以實現(xiàn)由接口定義語言定義的接口。ORB的靈活性既可以直接集成已有的應用,又不會使新對象受某些原則的制約。
對象連接提供了有不同類型對象實現(xiàn)時,使用ORB服務的方法,服務包括:對象引用、方法調(diào)用、安全控制、對象實現(xiàn)的激活與靜候等。
2.接口定義語言(IDL)
CORBA用IDL來描述對象接口,IDL是一種說明性語言,它的語法類似于C++。
IDL提供的數(shù)據(jù)類型有:基本數(shù)據(jù)類型、構造類型、模板類型、和復合類型、操作說明。這些類型可以用來定義變元的類型和返回類型,操作說明則可以用來定義對象提供的服務。
IDL還提供模塊構造,其中可以包含接口,而接口是IDL各類型中最重要的,它除了描述CORBA對象以外,還可以用作對象引用類型。
IDL提供了接口繼承性,派生接口可以繼承其基類接口所定義的操作與類型。IDL的接口繼承性有其特殊性,此處不贅述。
總之,CORBA的IDL是一種說明性語言,描述面向?qū)ο笙到y(tǒng)開發(fā)所遵循的接口與實現(xiàn)相分離的基本原則。
3.動態(tài)調(diào)用接口
把IDL說明編譯成面向?qū)ο蟪绦蛟O計語言的實代碼后,客戶可以調(diào)用已知對象的操作。在某些應用中,用戶并不了解應用接口編譯信息,但也要求調(diào)用對象的操作,這時就要動態(tài)調(diào)用接口來調(diào)用用戶的操作了。例如,圖形用戶接口應支持用戶瀏覽接口公共庫,以獲得每個對象所支持的操作信息,用戶可根據(jù)自己的需求從瀏覽對象中挑選出所需的對象操作,具體的對象操作的調(diào)用實際上是用動態(tài)調(diào)用接口來完成的。
4.接口公用庫
接口公用庫持久地存儲IDL的接口說明,借助于接口公用庫,可以實現(xiàn)對象繼承性層次結構的導航,并且提供了有關對象支持的所有操作的描述。接口公用庫最常見的功能是為接口瀏覽器提供信息,幫助應用開發(fā)者找出潛在的可重用的軟件部件。ORB可以利用接口公用庫檢查運行時的操作參數(shù)類型,但接口公用庫的基本功能是提供類型信息,為動態(tài)調(diào)用接口發(fā)送請求提供信息支持。
CORBA的不足之處:
盡管有多家供應商提供CORBA產(chǎn)品,但是仍找不到能夠單獨為異種網(wǎng)絡中的所有環(huán)境提供實現(xiàn)的供應商。不同的CORBA實現(xiàn)之間會出現(xiàn)缺乏互操作性的現(xiàn)象,從而造成一些問題;而且,由于供應商常常會自行定義擴展,而CORBA又缺乏針對多線程環(huán)境的規(guī)范,對于像C或C++這樣的語言,源碼兼容性并未完全實現(xiàn)。
CORBA過于復雜,要熟悉CORBA,并進行相應的設計和編程,需要許多個月來掌握,而要達到專家水平,則需要好幾年。
OMG組織成立后不久就制訂了OMA(Object Management Architecture,對象管理體系結構)參考模型,該模型描述了OMG規(guī)范所遵循的概念化的基礎結構。OMA由對象請求代理ORB、對象服務、公共設施、域接口和應用接口這幾個部分組成,其核心部分是對象請求代理ORB(Object Request Broker)。對象服務是為使用和實現(xiàn)對象而提供的基本服務集合;公共設施是向終端用戶應用程序提供的一組共享服務接口;域接口是為應用領域服務而提供的接口;應用接口是由開發(fā)商提供的產(chǎn)品,用于它們的接口,不屬于OMG標準的內(nèi)容。ORB提供了一種機制,通過這種機制,對象可以透明的發(fā)出請求和接收響應。分布的、可以互操作的對象可以利用ORB構造可以互操作的應用。
CORBA標準由對象管理組織(OMG)設立并進行控制,CORBA定議了一系列API,通信協(xié)議,和物件/服務信息模型用于使得異質(zhì)應用程序能夠互相操作,這些應用程序用不同的程序語言編寫,運行在不同的平臺上。CORBA因此為定義明確的物件提供了平臺和位置的透明性,這些物件是分布式計算平臺的基礎。
CORBA分布計算技術,是由絕大多數(shù)分布計算平臺廠商所支持和遵循的系統(tǒng)規(guī)范技術,具有模型完整、先進,獨立于系統(tǒng)平臺和開發(fā)語言,被支持程度廣泛的特點,已逐漸成為分布計算技術的標準。COBRA標準主要分為3個層次:對象請求代理、公共對象服務和公共設施。最底層是對象請求代理ORB,規(guī)定了分布對象的定義(接口)和語言映射,實現(xiàn)對象間的通訊和互操作,是分布對象系統(tǒng)中的"軟總線";在ORB之上定義了很多公共服務,可以提供諸如并發(fā)服務、名字服務、事務(交易)服務、安全服務等各種各樣的服務;最上層的公共設施則定義了組件框架,提供可直接為業(yè)務對象使用的服務,規(guī)定業(yè)務對象有效協(xié)作所需的協(xié)定規(guī)則。
CORBA(公共對象請求代理架構):這是個和微軟com,com+齊名的同類軟件技術規(guī)范,由OMT提出。
用于在不同進程(程序)之間,甚至是不同物理機器上的進程(程序)之間通訊。底層技術依靠RPC[遠程過程調(diào)用]實現(xiàn)。
面向?qū)ο蟮能浖?#xff0c;以數(shù)據(jù)為中心設計,對象類既具有模塊的封裝性和類屬等特性,還具有繼承特性
,極大地提高了類的可擴充性和可再用能力。對象類較之于傳統(tǒng)軟件的功能模塊而另具有的優(yōu)點是:
(1)易于理解,具有完整的語義特征;
(2)易于擴充和修改,具有較高的通用性和適應性;
(3)易于構造組裝,具有規(guī)范的外部接口。
開發(fā)應用組件必須遵循標準,以保證軟件組件的互操作性,只有遵循統(tǒng)一的標準,不同廠商的、不同時期的、不同程序設計風格的、不同編程語言的、不同操作系統(tǒng)的、不同平臺上的軟件或軟件部件才能進行交流與合作。為此,OMG(ObjectManageGroup)提供了一個對象標準CORBA,它定義了一個網(wǎng)連對象的接口,使得對象可以同時工作。基于CORBA的對象請求代理ORB為客戶機/服務器開發(fā)提供了中間件的新格式。
作為OMG成員的微軟公司撇開CORBA而另辟了COM(ComponetObjectModel),即組件對象模型,并把COM定位成基于對象的軟件開發(fā)模型,盡管COM被認為是微軟鼓噪出來的技術,但支持COM的開發(fā)工具卻不斷增多,其中大部分來自于微軟,包括VisualBasic和VisualC ++。
公共對象請求代理結構:CORBA標準
全球性網(wǎng)絡使線上的所有設備和軟件成為全球共享的浩瀚的資源,計算機環(huán)境也從集中式發(fā)展到分布式環(huán)境,開放式系統(tǒng)的發(fā)展使用戶能夠透明地應用由不同廠商制造的不同機型不同平臺所組成的異構型計算資源,因此,分布式處理和應用集成自然而然地成為人們的共同要求,那么什么是分布式處理和應用集成呢?它們的功能和關鍵技術是什么呢?簡單地講,分布式處理和應用集成就是指在異構的、網(wǎng)絡的、物理性能差別很大的、不同廠商的、不同語言的信息資源的基礎上構建信息共享的分布式系統(tǒng),并且能夠有效地進行應用系統(tǒng)和分布式處理的集成。分布式處理的關鍵在于定義可管理的軟件構件,即面向?qū)ο蠹夹g中的“對象”。應用集成的關鍵在于為跨平臺、跨機種、跨編程語言的產(chǎn)品提供統(tǒng)一的應用接口。OMG組織針對當今信息產(chǎn)業(yè)的要求,公布了CORBA標準,即公共對象請求代理體系結構(Common Object Request Broker Architecture),這是一個具有互操作性和可移植性的分布式面向?qū)ο蟮膽脴藴省?
CORBA的核心是對象請求代理ORB,它提供對象定位、對象激活和對象通訊的透明機制。客戶發(fā)出要求服務的請求,而對象則提供服務,ORB把請求發(fā)送給對象、把輸出值返回給客戶。ORB的服務對客戶而言是透明的,客戶不知道對象駐留在網(wǎng)絡中何處、對象是如何通訊、如何實現(xiàn)以及如何執(zhí)行的,只要他持有對某對象的對象引用,就可以向該對象發(fā)出服務請求。
CORBA允許用戶以兩種不同的方式提出對象請求:
1)靜態(tài)調(diào)用:
通過給定接口的存根,在編譯了對象代碼后,進入客戶端的程序。因此,靜態(tài)調(diào)用必須在編譯時就知道對象及其類型。
2)動態(tài)調(diào)用:
通過ORB的動態(tài)調(diào)用接口DII,在運行時生成訪問對象的代碼。
不管客戶以哪一種形式提出請求,ORB的任務是:找出所要對象的位置,激活該對象,向?qū)ο髠鬟f此請求。對象執(zhí)行所請求的服務后,把輸出值返回給ORB,然后再由ORB返回給客戶。
CORBA的重要概念是:
1.對象連接
CORBA廣泛地支持對象的實現(xiàn),在單服務器系統(tǒng)中也可以實現(xiàn)由接口定義語言定義的接口。ORB的靈活性既可以直接集成已有的應用,又不會使新對象受某些原則的制約。
對象連接提供了有不同類型對象實現(xiàn)時,使用ORB服務的方法,服務包括:對象引用、方法調(diào)用、安全控制、對象實現(xiàn)的激活與靜候等。
2.接口定義語言(IDL)
CORBA用IDL來描述對象接口,IDL是一種說明性語言,它的語法類似于C++。
IDL提供的數(shù)據(jù)類型有:基本數(shù)據(jù)類型、構造類型、模板類型、和復合類型、操作說明。這些類型可以用來定義變元的類型和返回類型,操作說明則可以用來定義對象提供的服務。
IDL還提供模塊構造,其中可以包含接口,而接口是IDL各類型中最重要的,它除了描述CORBA對象以外,還可以用作對象引用類型。
IDL提供了接口繼承性,派生接口可以繼承其基類接口所定義的操作與類型。IDL的接口繼承性有其特殊性,此處不贅述。
總之,CORBA的IDL是一種說明性語言,描述面向?qū)ο笙到y(tǒng)開發(fā)所遵循的接口與實現(xiàn)相分離的基本原則。
3.動態(tài)調(diào)用接口
把IDL說明編譯成面向?qū)ο蟪绦蛟O計語言的實代碼后,客戶可以調(diào)用已知對象的操作。在某些應用中,用戶并不了解應用接口編譯信息,但也要求調(diào)用對象的操作,這時就要動態(tài)調(diào)用接口來調(diào)用用戶的操作了。例如,圖形用戶接口應支持用戶瀏覽接口公共庫,以獲得每個對象所支持的操作信息,用戶可根據(jù)自己的需求從瀏覽對象中挑選出所需的對象操作,具體的對象操作的調(diào)用實際上是用動態(tài)調(diào)用接口來完成的。
4.接口公用庫
接口公用庫持久地存儲IDL的接口說明,借助于接口公用庫,可以實現(xiàn)對象繼承性層次結構的導航,并且提供了有關對象支持的所有操作的描述。接口公用庫最常見的功能是為接口瀏覽器提供信息,幫助應用開發(fā)者找出潛在的可重用的軟件部件。ORB可以利用接口公用庫檢查運行時的操作參數(shù)類型,但接口公用庫的基本功能是提供類型信息,為動態(tài)調(diào)用接口發(fā)送請求提供信息支持。
CORBA的不足之處:
盡管有多家供應商提供CORBA產(chǎn)品,但是仍找不到能夠單獨為異種網(wǎng)絡中的所有環(huán)境提供實現(xiàn)的供應商。不同的CORBA實現(xiàn)之間會出現(xiàn)缺乏互操作性的現(xiàn)象,從而造成一些問題;而且,由于供應商常常會自行定義擴展,而CORBA又缺乏針對多線程環(huán)境的規(guī)范,對于像C或C++這樣的語言,源碼兼容性并未完全實現(xiàn)。
CORBA過于復雜,要熟悉CORBA,并進行相應的設計和編程,需要許多個月來掌握,而要達到專家水平,則需要好幾年。
總結
- 上一篇: 幻灯片中如何让日期和页码自动更新
- 下一篇: COM+