CORBA技術(shù)與COM技術(shù)的比較分析
- 期刊名字:武漢工業(yè)學(xué)院學(xué)報
- 文件大?。?78kb
- 論文作者:汪洪,豐洪才
- 作者單位:深圳市星火電子工程公司,武漢工業(yè)學(xué)院
- 更新時間:2020-10-26
- 下載次數(shù):次
第22卷第4期武漢工業(yè)學(xué)院學(xué)報Vol.22 No. 42003年12月”Jourmalof Wuhan Polytechnic UUniversityDec. 2003文章編號:1009 - 4881(2003 )04 -0014 -04CORBA技術(shù)與COM技術(shù)的比較分析汪洪' ,豐洪才(1.深圳市星火電子工程公司,廣東深圳518040; 2.武漢工業(yè)學(xué)院計算機與信息工程系,湖北武漢430023 )摘要:C0RBA技術(shù)和COM技術(shù)是兩種主要的分布式對象技術(shù)。文章對二者的結(jié)構(gòu)和運行機理進行了比較,并舉出了一個簡單的實例。關(guān)鍵詞:分布式對象技術(shù);CORBA;COM;對象請求代理;RPC中圖分類號:TP 311文獻標(biāo)識碼:A態(tài)框架接口及對象適配器組成,它們均給出了一組0引言接口來支持應(yīng)用對象,其中動態(tài)調(diào)用接口、IDL樁和隨著面向?qū)ο蠹夹g(shù)的進一步發(fā)展,分布式計算ORB接口(由ORB內(nèi)核提供)可為客戶方使用,稱與面向?qū)ο蠹夹g(shù)相結(jié)合,從而出現(xiàn)了分布式對象技為客戶方接口;IDL框架、動態(tài)框架接口、對象適配術(shù)。目前,分布式對象技術(shù)已經(jīng)成為建立服務(wù)應(yīng)用器和ORB接口可為對象實現(xiàn)方使用,稱為對象實現(xiàn)框架和軟件構(gòu)件的核心技術(shù),在開發(fā)大型分布式應(yīng)方接口。同時為了使這些ORB部件均能完成其功用系統(tǒng)中表現(xiàn)出了強大的生命力,并逐漸形成了3能,CORBA給出了接口庫和實現(xiàn)庫的描述,這部分種具有代表性的主流技術(shù),即OMG的CORBA技可稱為輔助設(shè)施。術(shù)、Microsoft的COM技術(shù)和Sun公司的Javea 技公共設(shè)施應(yīng)用接口領(lǐng)域接口腐術(shù)。其中Java和CORBA在很大程度上可以看作是互補的,它們緊密結(jié)合的趨勢是勢不可擋的,而且它對象請求代理ORB們的結(jié)合將成為OhjectWeb技術(shù)的主要形態(tài)。因此中王文章主要選擇CORBA技術(shù)與COM技術(shù)進行比較對象服務(wù)物分析。圖1 OMA 參考模型1結(jié)構(gòu)1.21客戶萬對象實現(xiàn)萬CORBA結(jié)構(gòu)的關(guān)鍵是OMA ( ObjectManagement Architecture) 參考模型,其結(jié)構(gòu)如圖1所示。它包括對象請求代理ORB(0bjectRequestCRB動志陽OlteaBroker)、對象服務(wù)( 0bject Service)、 公共設(shè)施IDL樁接口. 框規(guī)賀傳EAlipe對象適配器( Common Facilitis)、 應(yīng)用接口(ApplicationORB核心Interfaces). 領(lǐng)域接口( Domain Interfaces) 等五個組對子兩衣oRB使現(xiàn)杯一樣的德口1a1訓(xùn)日成部分,其中對象請求代理ORB是參考模型的核用以有多個時黑省配a每個對重都有一個母料一個相葛心。ORB使對象在一個分布式環(huán)境下透明地建立恒線CRN的柳L并接收請求和回答,它象一部電話交換機 ,提供創(chuàng)立和接收調(diào)用的基本機制,用于接收請求、定位請求的圖2對象請 求代理的體系結(jié)構(gòu)對象實現(xiàn),或用于準(zhǔn)備對象實現(xiàn)及與組成請求的數(shù)0RB核心是ORB的--部分,它提供基本的對據(jù)通信等。其體系結(jié)構(gòu)如圖2所示。單個0RB由象表示和請求的通信。CORBA 被設(shè)計用于支持不動態(tài)調(diào)用接口、IDL樁、ORB接口、靜態(tài)IDL框架、動同的對中國煤化工RB核心之上的收稿E日期:2003-02 -26YH ;CNMHG作者簡介:汪洪(1958 -),男,安徽省休臨市人,工程師。4期汪洪,豐洪才:CORBA技術(shù)與COM技術(shù)的比較分析15組件結(jié)構(gòu)化ORB來實現(xiàn)的,這些組件提供掩蓋ORB圖5所示COM的體系結(jié)構(gòu)僅對0LE2.0定義,核心之間的差別的接口??梢娝]有定義類似于CORBA中OMA的整體Microsoft 的組件對象模型COM ( Component結(jié)構(gòu);其中COM的永久存儲等組件大致對應(yīng)于Object Model)定義了組件和它們的客戶之間互相作CORBA的對象服務(wù)規(guī)范;OLE組件是和應(yīng)用(用戶用的方式,它使得組件和客戶端無需任何中介組件界面)緊密相關(guān)的,對應(yīng)于CORBA的公共設(shè)施范就能相互聯(lián)系??蛻暨M程直接調(diào)用組件中的對象的疇;自動化在COM的基礎(chǔ)上提供了更簡單、層次更方法。圖3說明了組件對象模型的表示法。高的編程界面,并沒有增加更多的對象操作和管理功能。戶方服務(wù)方組件0:表示接口2規(guī)范[2]CORBA和COM都具有相應(yīng)的規(guī)范,無論從研圖3同一進程中 的COM組件在現(xiàn)在的操作系統(tǒng)中,各進程之間是相互屏蔽究它們的規(guī)范本身,還是研究實際應(yīng)用中的案例,二的。當(dāng)一個客戶進程需要和另一個進程中的組件通者在權(quán)威性、風(fēng)格、精確性、目標(biāo)等方面存在著不小.訊時,它不能直接調(diào)用該進程,而需要遵循操作系統(tǒng)的差別。對進程間通訊所做的規(guī)定。COM使得這種通訊能CORBA規(guī)范本身十分正規(guī),并用IDL(OMC夠以- -種完全透明的方式進行:它截取從客戶進程.IDL也是一個ISO的標(biāo)準(zhǔn))進行表述。CORBA 規(guī)范來的調(diào)用并將其傳送到另一進程中的組件。圖4表主要分為3個層次:對象請求代理、公共對象服務(wù)和明了COM運行庫是怎樣提供客戶進程和組件之間公共設(shè)施。最底層是對象請求代理ORB,它規(guī)定了的聯(lián)系的。DCOM 是COM的進- -步擴展,當(dāng)客戶進分布對象的定義(接口)和語言映射,實現(xiàn)對象間的程和組件位于不同的機器時, DCOM僅僅只是用網(wǎng)通訊和互操作,是分布對象系統(tǒng)中的“軟總線”;在ORB之上定義了很多公共服務(wù),可以提供諸如并發(fā)絡(luò)協(xié)議來代替本地進程之間的通訊。服務(wù)、名字服務(wù)、事務(wù)(交易)服務(wù)、安全服務(wù)等各種客戶方COM運行時COM運行時服務(wù)方組件各樣的服務(wù);最上層的公共設(shè)施則定義了組件框架,環(huán)境提供可直接為業(yè)務(wù)對象使用的服務(wù),規(guī)定業(yè)務(wù)對象安全RPC]「安全工RPC服務(wù) 服務(wù)服務(wù)服務(wù)有效協(xié)作所需的協(xié)定規(guī)則??傊?,CORBA的特點是術(shù)地進程間通信一木 地進程間通信大而全,互操作性和開放性好。目前CORBA的最新版本是3.0,增加了有關(guān)Intermet集成和Qos控制圖4不同進程中的COM組件COM中不僅提供對象的創(chuàng)建和管理功能,還包等內(nèi)容。但CORBA的缺點是龐大而復(fù)雜,并且技括三個最基本的組件:永久存儲、智能名字和統(tǒng)-數(shù)術(shù)和標(biāo)準(zhǔn)的更新相對較慢。CORBA 作為一-種抽象據(jù)傳輸。OLE是建造在COM上的更高層次的技的規(guī)范定義并不限制具體的實現(xiàn)方案,這一點對軟術(shù)。OLE2.0 第一個實現(xiàn)了COM規(guī)范的子集,包括件供應(yīng)商而言最具吸引力。從COM體系結(jié)構(gòu)的基礎(chǔ)來看,COM規(guī)范是相進程內(nèi)的對象、本地對象以及其他COM技術(shù),但不當(dāng)完備的,等同于CORBA語言映射規(guī)范的信息在包括遠程對象。0LE 組件之間以及0LE和COM之微軟的各種語言的文檔中很多。MIDL ( Microsoft間的關(guān)系形成了COM的體系結(jié)構(gòu)(如圖5所示)。Interface Definition Language) 是0SF DCE RPC的IDL擴展,COM規(guī)范對這些擴展進行了闡述??梢暬庉嬫溄覥OM規(guī)范里有非常多的十分有用的細節(jié)方面的內(nèi)嵌入復(fù)合文檔容,但仍有很多內(nèi)容沒有被包容進來或加以充分C自動化h說明。OLE從以_上的闡述,我們不難看出, CORBA是-一個COM-統(tǒng)一數(shù)據(jù)傳輸)通用的分布式對象規(guī)范說明,由于它沒有給出參考的實現(xiàn)方案.所以為空現(xiàn)棍供了極大的靈活性,而C水久存儲智能名字)中國煤化工制之上的一層協(xié)議,組件對象模型和組件對象YHCNMHG細致,但又不利于優(yōu)化。圖5 COM 體系結(jié)構(gòu)16武漢工業(yè)學(xué)院學(xué)報2003年3運行機理"上進行注冊,以便客戶能通過注冊表上的對象唯--標(biāo)識找到該對象。CORBA給出了一個在多種環(huán)境下面向?qū)ο蟮腃OM也支持動態(tài)和靜態(tài)兩種對象調(diào)用。這一編程范例。在CORBA下的每一個應(yīng)用,無論它是點同CORBA是一致的,但二者實現(xiàn)機制上稍有不運行在客戶端還是服務(wù)器端,都是作為一個對象來同。在CORBA下,不管哪種調(diào)用方法,實現(xiàn)接口是.對待的,服務(wù)器上的對象可以調(diào)用客戶機上的對象,一樣的;而COM則提供了兩種接口,不同的調(diào)用方反之亦然,因而服務(wù)器與客戶機間的傳統(tǒng)界限變得法需要不同的接口來實現(xiàn)。在COM中使用靜態(tài)調(diào)模糊起來。CORBA體系中的核心部分0RB負責(zé)將用,要定義一個接口和它的組件,讓MIDL編輯程序客戶機的需求傳遞到本地或遠程服務(wù)器上,并將結(jié)自動產(chǎn)生連接這些組件的代理存根模塊(proxy-果返回。對一個客戶機來說,服務(wù)器的位置應(yīng)該是stub)代碼。對于動態(tài)調(diào)用, COM是通過類型庫透明的返回,它通過接口與服務(wù)器組件通信。接口(Type Library)來提供支持的,類型庫中包含了描述中存放了服務(wù)器組件的調(diào)用方法和可用函數(shù)。為了組件的文件,客戶應(yīng)用在運行期間通過一個被保證在語言、操作系統(tǒng)、網(wǎng)絡(luò)及ORB之間的互用性,稱為Idispatch的COM接口來獲取這些接口,優(yōu)點是OMG提供了標(biāo)準(zhǔn)IDL語言映射。CORBA還支持繼無需手工定義接口,讓MIDL產(chǎn)生proxy - stub代碼承,允許-一個接口從另一接口中導(dǎo)出,并繼承該接口了,我們可以使用缺省的IDispatch代理存根模塊的實現(xiàn)。CORBA允許一個客戶機組件以靜態(tài)和動代碼。態(tài)兩種方式調(diào)用服務(wù)器組件。如果使用靜態(tài)調(diào)用,所有的分布計算必然包括通信,如果分布計客戶機要指定是哪個服務(wù)器組件、調(diào)用的是哪個函算是在分布式網(wǎng)絡(luò)上,那么在傳輸數(shù)據(jù)時,數(shù)據(jù)的數(shù);如果使用動態(tài)調(diào)用,客戶機預(yù)先不知道服務(wù)器組安全性和完整性都有危險。安全性必須保證用戶件的接口,客戶機要在運行時通過CORBA提供的不受破壞代碼的侵害。CORBA的安全服務(wù)提供了Naming Server或Trading Server 找到服務(wù)對象,然后鑒別授權(quán)、加密、安全域、甚至還有跟蹤網(wǎng)絡(luò)上安再動態(tài)地調(diào)用服務(wù)方法。全行為的審核服務(wù),另外還提供一些安全接口,允COM/DCOM作為微軟的分布式計算策略,是在許在客戶應(yīng)用中操作安全選項;還有一些管理接開放性軟件基金會DCE遠程過程調(diào)用(RPC)協(xié)議口,允許對ORB的訪問控制策略進行操作。COM的基礎(chǔ)上開發(fā)的。使用COM,客戶能夠透明地訪問使用遠程過程調(diào)用(RPC),用于在相距異地的對進程內(nèi)或本地跨進程的服務(wù)對象。對于遠程對象的象間通信。使用COM實現(xiàn)的ActiveX控件不含嚴存取則是通過一個遠程對象代理和微軟的對象遠程格的安全性檢查或資源權(quán)限檢查,控件具有其資過程調(diào)用0RPC,增加了調(diào)用遠程服務(wù)器對象的能源的所有權(quán)限。這樣就缺乏固有的安全性。COM力,而本地跨進程調(diào)用則是通過獨立于操作系統(tǒng)的所采用的是Windows NT的安全體制。對于非進程間通信完成的。DCOM為遠程服務(wù)提供了本地Windows平臺,COM將使用它所處平臺上的安全/遠程透明度。機制,同時提供了一個與Windows NT兼容的安全對于本地或遠程的進程內(nèi)或跨進程客戶服務(wù)請措施。求,COM調(diào)度程序創(chuàng)建客戶端客戶代理對象,為客4應(yīng)用實例(4]戶應(yīng)用提供了指向服務(wù)器對象接口的指針;同時,創(chuàng)建存根模塊對象,由它向服務(wù)器對象發(fā)送和接收參研究CORBA和COM技術(shù)不僅是要研究技術(shù)數(shù);使用實際接口指針調(diào)用服務(wù)器對象。同CORBA本身,更重要的是研究如何把它們合理的應(yīng)用到實一樣,COM也是采用面向?qū)ο蟮姆椒?所有應(yīng)用都際的系統(tǒng)中去,以充分發(fā)揮它們的優(yōu)勢,最大限度的被看作是一個對象。在COM環(huán)境下,客戶應(yīng)用與創(chuàng)造經(jīng)濟效益和社會效益。這里將介紹-一個應(yīng)用實COM組件的通信只需通過包含指向該對象可用函例一簡化的學(xué)生 成績統(tǒng)計子系統(tǒng)。該系統(tǒng)的設(shè)計數(shù)的指針的接口。在COM中,接口無疑是關(guān)鍵所采用三層結(jié)構(gòu)模式:表示層、業(yè)務(wù)功能層和數(shù)據(jù)服務(wù)在,組件是接口的具體實現(xiàn),-一個組件可以被支持相層。其中,業(yè)務(wù)功能層是系統(tǒng)的核心,它根據(jù)用戶申同接口的另-個組件透明地刪除和替換, COM支持請的操作提供的參數(shù)來完成相應(yīng)的功能。它在表接口繼承,即一-個接口可以從另一個接口中導(dǎo)出,但示層中國煤化工月,從表示層發(fā)來導(dǎo)出的接口不能繼承原始接口上的組件。COM允請求Y片CN MHG對象從數(shù)據(jù)庫中許你使用現(xiàn)存組件,這可通過在應(yīng)用接口中插人指讀取數(shù)諾升對效據(jù)進仃相應(yīng)的分析處理,然后,將處向該組件的指針來實現(xiàn)。每一個對象必須在本地機理完的數(shù)據(jù)傳回到表示層。下面將分別給出該層中.4期汪洪豐洪才:CORBA技術(shù)與COM技術(shù)的比較分析12所實現(xiàn)的統(tǒng)計組件( RepExample)的0MG IDL描述oleautomation”和MICROSOFT IDL( MIDL)描述。pointer_ default( unique) ]4.1 統(tǒng)計組件RepExample的OMG IDL描述interface Ireport: IDispatch組件模塊RepExample:module RepExample |://接口所提供的服務(wù)的定義interface Report||;[ uuid ( 5A04A381 - FE71 - 11D4 - 8FE2-://接口中數(shù)據(jù)類型的定義和接口所提供CAF286AAEFOA), .的服務(wù)的定義versiob(I.0),hlepstring( " RepExample 1.0 Type Library" )]};library RepExample|{ importlib( " stdole32. db" );組件模塊RepExample所提供的Report接口中包importib( " stdole2. tb" );含五i個基本操作: GetStudentScore、GelCourseScore、[ uuid ( 5A04A390 - FE71 - 11D4 - 8FE2 -GetF ailedStudent ComputeAverageID、GetCourse。這里CAF286AAEF0A),選取GetStudentScore加以說明。hlepstring( ”Report Class" )]GetStudentScore ( term, StudentID , StudentScoreSet)coclass Report的功能是獲得指定學(xué)生(StudentID)在指定學(xué)期|[ defaul] interface Ireport;(term)所修的全部課程的成績(StudentScoreSet)。學(xué)生每門課程成績的數(shù)據(jù)結(jié)構(gòu)由課程號、課程名、成績組成,定義結(jié)構(gòu)類型StudentScore,又由于操作返該COM組件中接口服務(wù)所用到的數(shù)據(jù)結(jié)構(gòu)和以上回的是包含多門課程成績的結(jié)果集,因此定義序列OMGIDL描述非常相似,這里不在講述。類型StudentScoreSet作為操作結(jié)果集返回客戶方。從以,上介紹中我們可以看到OMGIDL與其IDL定義如下:MICROSOFT IDL在對接口定義和所提供的數(shù)據(jù)類Struct StudentScore |型等方面存在著很大的差別。0MGIDL所描述的String coursecode;組件接口看起來更加清晰、簡潔、易于理解;而String coursename;MICROSOFTIDL所描述的組件接口相對來說有些Float score ;零亂、繁雜、晦澀難懂。設(shè)計好組件對象的IDL描述以后,就可以將它typedef sequence < StudentScore > StudentScoreSet;們映射到多種程序開發(fā)語言,獲得組件程序的主框void GetStudentScore( in string term,架,然后將組件實現(xiàn)的關(guān)鍵代碼加人其中,編譯生成in string StudentID ,一個真正的組件程序。out StudentScoreSet resultset) ;參考文獻:4.2 統(tǒng)計組件RepExample的MDL描述使用1] Guy Eddon, Henry Eddon . Inside COM+ Base微軟提供的活動模板庫ATL來創(chuàng)建該組件,其原始Services 組件編程技術(shù)內(nèi)幕[M].北京:希望MIDL描述如下:電子出版社1999.import " oaidl. idl"[2]楊喜敏,陸際光,唐菀. 分布式應(yīng)用技術(shù)中的import " ocidl. idl"CORBA、JavaRMI和DCOM[J].中南民族大學(xué)學(xué)報(自然科學(xué)版) ,2002 ,21(2):61 -63.://組件對象所用到的數(shù)據(jù)結(jié)構(gòu)定義[3] 侯迪,黃朝陽,齊勇,等. CORBA安全對象系統(tǒng)模型框架研究[J].小型微型計算機系統(tǒng),[ object,2002 ,23( 10) :1200 - 1204.uuid ( 5A04A38F - FE71 - 11D4 - 8FE2 -中國煤化工0RBA封裝已有系CAF286AAEFOA),[J].小型徽型計算lual,CNMHG-83.hlepstring( ”Irport Interface" ),(下轉(zhuǎn)第24頁)24武漢工業(yè)學(xué)院學(xué)報2003年些文件,就將Authorware安裝目錄下的文件及整個從而得 到動態(tài)生成的效果。xtras文件夾拷人程序目錄中。不然, flash動畫不能3.6當(dāng)軟件打包發(fā)布時 ,應(yīng)用平臺- -定要選定為:工作或工作狀態(tài)不理想?!皯?yīng)用平臺Windows 95/98/NT。這樣才可以打包3.4對于 AVI電影文件,可以使用Authorware中的成可執(zhí)行文件?!按虬鼤r包含全部內(nèi)部庫"和“打包電影播放知識對象控制,也可以自行設(shè)計--個簡易時包含外部媒介”兩個選項不選中,這樣,可以減小的播放器來控制。程序運行大小。3.5對于工藝生產(chǎn)過程的描述 ,常需用到自動增長3.7如果需 要在軟件中實現(xiàn)背景配樂和配音講解線。方法如圖5所示。時,可采用調(diào)用外部函數(shù)的方案予以解決??晒┻x中使的簡色樣式擇的有由Macromedia公司提供的A5wmme. u32。1 點壓導(dǎo)初如化4結(jié)束語循環(huán)外克在計算機技術(shù)高速發(fā)展的今天,很多領(lǐng)域已經(jīng).推出了多媒體學(xué)習(xí)軟件,對人們學(xué)習(xí)相關(guān)知識提供了良好的工具。飼料加工工藝由于其專業(yè)性強,至圖5方法示意圖今還沒有一個較為完整的學(xué)習(xí)軟件。本軟件充分利其中,在第一個計算圖標(biāo)中,定義線的寬度和顏用計算機資源,開發(fā)符合專業(yè)特點的演示軟件填補色,第二個計算圖標(biāo)則指定起始點及終點的座標(biāo)。了該專業(yè)領(lǐng)域科普推廣及專業(yè)教學(xué)的空白,并可為“循環(huán)分支”中,包含一個計算圖標(biāo),用于繪制一段相似軟件的開發(fā)提供參考。直線并改變下一短線的起點和終點,代碼如下所示:參考文獻:Line(2,52,y1 ,52,y2)[1]袁海 東. Auhorware5. 1開發(fā)實例與技巧[M].Y1: =Yz北京:電子工業(yè)出版社,2001.y2: =y; +2[2]田園.3DStudioMAX3.0應(yīng)用基礎(chǔ)教程[M].這樣就可以將-條直線分成若干條短線依次繪成,北京:中國石化出版社,1999.DEVELOPMENT OF FEED PROCESSING ANIMATED - SHOWING SYSTEMLI Jian-wen',YE Min2(1. Department of Feed Science , Wuhan Polytechnic University, Wuhan 430023, China;2. Advanced Vocational College ,Hubei University , Wuhan 430023 , China)Abstract: This paper has discussed the methods of developing the Feed Processing CAI in defermining the aims,selecting the developing tools, designing the construct of oftware and program files, debugging the program andpacking.Key words: feed processing; animated - showing;developing(上接第17頁)THE COMPARATIVE ANALYSIS OF CORBA TECHNOLOGYAND COM TECHNOLOGYWANG Hong' , FENG Hong - cai2(1. Shenzhen Spark electronic engineering Co. , Ltd,Shenzhen 518040 ,China;2. Department of Computer and Information Engineering, Wuhan Polytechnic University, Wuhan 430023 ,China)Abstract: CORBA technology and COM technology are two kinds of main distributed object technology. This papercompares their structure and operation mechanism, and cites a sit中國煤化工Key words distibuted object technology ;CORBA;COM ;object re:MYHCNMHG
-
C4烯烴制丙烯催化劑 2020-10-26
-
煤基聚乙醇酸技術(shù)進展 2020-10-26
-
生物質(zhì)能的應(yīng)用工程 2020-10-26
-
我國甲醇工業(yè)現(xiàn)狀 2020-10-26
-
石油化工設(shè)備腐蝕與防護參考書十本免費下載,絕版珍藏 2020-10-26
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡介 2020-10-26
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-10-26
-
甲醇制芳烴研究進展 2020-10-26
-
精甲醇及MTO級甲醇精餾工藝技術(shù)進展 2020-10-26





