對象管理組織OMG(Object Management Group)是成立于1989年的非盈利聯(lián)盟,其宗旨是通過制訂與維護(hù)規(guī)范標(biāo)準(zhǔn)以促進(jìn)面向?qū)ο蠹夹g(shù)的理論與實踐發(fā)展,特別是在日新月異的分布式計算領(lǐng)域。由OMG發(fā)布的《對象管理體系結(jié)構(gòu)指南》是關(guān)于對象管理體系結(jié)構(gòu)OMA(Object Management Architecture)的正式規(guī)范,該指南描述了OMG的技術(shù)目標(biāo)與相關(guān)術(shù)語,并為所有CORBA規(guī)范提供概念性的基礎(chǔ)設(shè)施。指南的核心內(nèi)容是對象模型與參考模型,其中對象模型定義對象外部可見的、獨立于具體實現(xiàn)的語義,參考模型則標(biāo)識與刻劃組成OMA的組件、接口與協(xié)議。
基本介紹公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture,簡稱CORBA)是一個擁有800多個成員公司的非營利性國際組織即對象管理組織(OMG)的研究成果,這個組織包括了計算機(jī)工業(yè)界的各個主要的公司(如IBM,Microsoft,Apple,HP,SUN等),代表了整個計算機(jī)工業(yè)。
CORBA的核心是對象請求代理(Object Request Broker,簡稱ORB)。ORB就是對象總線,它的作用就像一個中間人,使得各個對象能夠相互傳遞請求。盡管ORB是在客戶機(jī)/服務(wù)器的環(huán)境中工作的,但是,與ORB一同工作的各個對象既可以是客戶機(jī),也可以是服務(wù)器。如果對象發(fā)出請求,那么它就是客戶機(jī);如果對象接收和處理請求,則是服務(wù)器。同一個對象在不同的時刻可能表現(xiàn)為客戶機(jī)也可能表現(xiàn)為服務(wù)器,這要取決于具體情況。ORB作為一種中間件,它有能力包容現(xiàn)有的客戶機(jī)/服務(wù)器中間件的任何一種形式。也就是說,CORBA將對象作為一個統(tǒng)一的隱性象征,將現(xiàn)有的所有應(yīng)用軟件都包容到ORB這一對象總線上來。同時,它也為基于組件的軟件開發(fā)奠定了堅實的基礎(chǔ)。
CORBA允許用戶創(chuàng)建通用的對象,然后通過讓對象繼承相應(yīng)的服務(wù),使對象具有事務(wù)處理、安全性、持久性等所需要的特性。這也就意味著可以設(shè)計一些具有常用功能的通用對象,然后在系統(tǒng)運(yùn)行時建立,與中間件混合成的適當(dāng)?shù)膶ο?。CORBA的這種可以通過中間件進(jìn)行混合的特性,極大地簡化了應(yīng)用編程的工作,同時又能保證系統(tǒng)的良好的可復(fù)用性、高可靠性和高質(zhì)量。
對象管理體系結(jié)構(gòu)指南
1990年秋,OMG第一次發(fā)表了對象管理體系結(jié)構(gòu)指南(Object ManagementArchitecture,簡稱OMA),1992年進(jìn)行了修訂,1995年又加入了關(guān)于公用設(shè)施的細(xì)節(jié)。圖1表示了OMA的四個主要的單元:
(1)對象請求代理(ORB)。ORB定義了CORBA對象總線。
(2)CORBA服務(wù)(CORBA Services)。CORBA服務(wù)定義了系統(tǒng)級對象框架,用來擴(kuò)展CORBA對象總線。
(3)CORBA公用設(shè)施(CORBA Common Facilities)。CORBA公用設(shè)施定義了可以直接被商務(wù)對象使用的水平和垂直應(yīng)用程序框架。
(4)應(yīng)用程序?qū)ο?Application Objects)。應(yīng)用程序?qū)ο蟀ㄉ虅?wù)對象及其應(yīng)用程序,它們是CORBA基礎(chǔ)結(jié)構(gòu)的最終使用者。下面對OMA的這四個方面進(jìn)行簡單介紹1。
對象請求代理(ORB)對象請求代理(ORB)是管理對象之問進(jìn)行通信和數(shù)據(jù)交換的中間件。ORB的功能類似于硬件總線的功能,它提供了對象之間信息流動所需的通路,因此也稱為對象總線。ORB可支持分布式對象之間的互操作性、可復(fù)用性和可移植性。通過它,各個對象可以透明地向本地或遠(yuǎn)程的其他對象發(fā)出請求或接收響應(yīng)。ORB提供了許多分布式中間件服務(wù),ORB使得各個對象可以在運(yùn)行時彼此發(fā)現(xiàn)并調(diào)用對方的服務(wù)。ORB是OMA的核心,它也是OMG最先定義好并且由軟件供應(yīng)商最先實現(xiàn)的部分。圖2是對象之間通過ORB進(jìn)行通信和數(shù)據(jù)交換的示意圖。
公用對象服務(wù)公用對象服務(wù)是CORBA提供的系統(tǒng)級服務(wù)的集合。公用對象服務(wù)可以看成是對ORB的功能的擴(kuò)充和補(bǔ)足。公用對象服務(wù)為創(chuàng)建對象、對象訪問控制、對象跟蹤和對象引用等提供了一套標(biāo)準(zhǔn)的服務(wù)。公用對象服務(wù)使得應(yīng)用程序開發(fā)人員只需調(diào)用這些對象服務(wù)功能即可,而沒有必要完全由應(yīng)用程序開發(fā)人員從頭進(jìn)行開發(fā)。現(xiàn)在已經(jīng)實現(xiàn)或正在實現(xiàn)的一些公用對象服務(wù)包括:命名、持久性、生命期、屬性、并發(fā)、集合、安全性、交易器、外表化、事件、事務(wù)處理、查詢、關(guān)系、計時、特許等服務(wù)。
公用設(shè)施ORB和公用對象服務(wù)是OMA的底層基本技術(shù),而公用設(shè)施則是基于這些技術(shù)向應(yīng)用程序開發(fā)者和最終用戶提供一些共同性的對象組件,如復(fù)合文檔等。CORBA公用設(shè)施是CORBA向應(yīng)用程序?qū)ο筇峁┲苯討?yīng)用服務(wù)的框架集合。公用設(shè)施分為兩類:水平公用設(shè)施和垂直公用設(shè)施。目前,CORBA提供的水平公用設(shè)施有:
(1)用戶界面設(shè)施:提供類似于OpenDoc和OLE的復(fù)合文檔技術(shù)和就地編輯的功能;
(2)信息管理設(shè)施:提供復(fù)合文檔存儲和數(shù)據(jù)交換服務(wù),還可用于表示和編碼組件數(shù)據(jù)、定義和交換元數(shù)據(jù)、進(jìn)行信息建模等;
(3)系統(tǒng)管理設(shè)施:提供管理、配置、安裝、操縱、修補(bǔ)分布式對象組件等的接口和服務(wù);
(4)任務(wù)管理設(shè)施:提供管理工作流、長事務(wù)、代理(Agent)、腳本、規(guī)則和任務(wù)自動化的框架。
垂直公用設(shè)施提供諸如金融、健康、制造、零售等“垂直”市場領(lǐng)域的接口和標(biāo)準(zhǔn),以方便各領(lǐng)域?qū)ο蟮南嗷ゲ僮?。
應(yīng)用程序?qū)ο髴?yīng)用程序?qū)ο蟀I(yè)務(wù)對象及其應(yīng)用程序,它們是CORBA基礎(chǔ)結(jié)構(gòu)的最終使用者。業(yè)務(wù)對象提供了一種很自然的方式來描述與應(yīng)用相關(guān)的概念,如顧客、訂單、支付等。對象技術(shù)和組件的最終承諾是提供與真實世界更為接近的中粒度組件。根據(jù)OMG的業(yè)務(wù)對象工作組的看法,業(yè)務(wù)對象是應(yīng)用程序級的組件.可以應(yīng)用到無法預(yù)測的任意組合當(dāng)中去。在CORBA中,業(yè)務(wù)對象可以分為三種。
(1)(狹義的)業(yè)務(wù)對象:業(yè)務(wù)對象封裝了數(shù)據(jù)存儲、元數(shù)據(jù)、并發(fā)以及與實際業(yè)務(wù)實體相關(guān)的業(yè)務(wù)規(guī)則,業(yè)務(wù)對象還定義了如何對系統(tǒng)中的事件做出反應(yīng)。
(2)業(yè)務(wù)過程對象:在CORBA中,不涉及其他業(yè)務(wù)對象的短期的過程由(1)中的業(yè)務(wù)對象處理,涉及其他業(yè)務(wù)對象的長期的過程由業(yè)務(wù)過程對象處理。業(yè)務(wù)過程對象通常是將其他的對象結(jié)合在一起。
(3)表示對象:即用戶可看到的對象。表示對象通常直接與業(yè)務(wù)對象通信,用于在屏幕上顯示數(shù)據(jù)。表示對象有時也可以與業(yè)務(wù)過程對象直接通信。一個典型的業(yè)務(wù)對象組件由一個業(yè)務(wù)對象,一個或多個表示對象和一個業(yè)務(wù)過程對象組成。
業(yè)務(wù)對象用于創(chuàng)建可擴(kuò)展的三層客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的解決方案是非常理想的。因為對象和三層模型一樣是可以分解的。業(yè)務(wù)對象并不是單塊的代碼,而是可以拆分為若干部分,然后根據(jù)需要裝配在一起。在三層模型中,用戶層(或稱為表示層)用于表示業(yè)務(wù)對象的可視方面,通常用表示對象來表示。中間的業(yè)務(wù)層,通常用業(yè)務(wù)對象和業(yè)務(wù)過程對象來表示業(yè)務(wù)邏輯功能的應(yīng)用服務(wù)器對象。第三層的數(shù)據(jù)層使用業(yè)務(wù)對象和業(yè)務(wù)過程對象來表示現(xiàn)有的數(shù)據(jù)庫或其他形式的數(shù)據(jù)(如文件)1。
本詞條內(nèi)容貢獻(xiàn)者為:
李嘉騫 - 博士 - 同濟(jì)大學(xué)