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