5.2 分布式應(yīng)用開(kāi)發(fā)技術(shù)概述
發(fā)表時(shí)間:2023-08-02 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]5.2 分布式應(yīng)用開(kāi)發(fā)技術(shù)概述 目前分布對(duì)象技術(shù)已經(jīng)成為建立應(yīng)用框架(Application Framework)和軟構(gòu)件(Software Component)的核心技術(shù),在開(kāi)發(fā)大型分布式應(yīng)用系統(tǒng)...
5.2 分布式應(yīng)用開(kāi)發(fā)技術(shù)概述
目前分布對(duì)象技術(shù)已經(jīng)成為建立應(yīng)用框架(Application Framework)和軟構(gòu)件(Software Component)的核心技術(shù),在開(kāi)發(fā)大型分布式應(yīng)用系統(tǒng)中表現(xiàn)出強(qiáng)大的生命力,并形成了三項(xiàng)具有代表性的主流技術(shù),即OMG的CORBA(Common Object Request Broker Architecture)、Microsoft的ActiveX/DCOM (Distributed Compound Object Model)和SUN公司的Java/RMI。
5.2.1CORBA、DCOM、RMI
1.CORBA
----OMG是一個(gè)非盈利性國(guó)際組織,致力于使CORBA成為"無(wú)所不在的中間件"。1989年成立時(shí)僅有8家公司參與,而今天已經(jīng)是擁有900多個(gè)機(jī)構(gòu)成員的"議會(huì)式"標(biāo)準(zhǔn)化組織,世界上幾乎所有最有影響的計(jì)算機(jī)公司(如IBM、Microsoft和HP等)、著名的工商企業(yè)(如Boeing、Citibank和FordMotor等)和大學(xué)研究機(jī)構(gòu)都是這個(gè)組織的成員。OMG所制定的分布對(duì)象計(jì)算標(biāo)準(zhǔn)規(guī)范包括CORBA/IIOP 、對(duì)象服務(wù)、公共實(shí)施和領(lǐng)域接口規(guī)范。遵照這些規(guī)范開(kāi)發(fā)出的分布計(jì)算軟件環(huán)境可以在幾乎所有的主流硬件平臺(tái)和操作系統(tǒng)上運(yùn)行。現(xiàn)在,CORBA/IIOP已成為Internet上實(shí)現(xiàn)對(duì)象互訪的技術(shù)標(biāo)準(zhǔn),OMG的IIOP也已成為許多公司(如Oracle、Netscape、Sun和IBM等)進(jìn)行系統(tǒng)集成的基本協(xié)議。1995年以來(lái),基于CORBA軟件的企業(yè)級(jí)應(yīng)用發(fā)展迅猛,大有覆蓋DCE之勢(shì)。目前世界上有一定影響的CORBA軟件制造商已有10多家。
2.DCOM
ActiveX/DCOM是由Microsoft推出的對(duì)象構(gòu)件模型,最初用于集成Microsoft的辦公軟件,目前已發(fā)展成為Microsoft世界的應(yīng)用系統(tǒng)集成標(biāo)準(zhǔn),并集中反映在其產(chǎn)品ActiveX中。在分布計(jì)算技術(shù)上,OMG的優(yōu)勢(shì)比Microsoft至少領(lǐng)先2~3年。目前,只有OMG的技術(shù)能夠支持異構(gòu)環(huán)境中大型分布式應(yīng)用的開(kāi)發(fā),而Microsoft的DCOM技術(shù)尚不能勝任。Microsoft的優(yōu)勢(shì)主要表現(xiàn)在應(yīng)用和市場(chǎng)能力上。從未來(lái)市場(chǎng)策略考慮,Microsoft決定支持OMG提出的OLE/COM與CORBA的互操作標(biāo)準(zhǔn),從而使COM的對(duì)象能夠與CORBA的對(duì)象進(jìn)行通信。今后3~5年內(nèi),OMG和Microsoft的分布對(duì)象技術(shù)將共存,并在許多方面相互滲透。
3.RMI
--- -按照Sun和Javasoft對(duì)Java的界定,Java是一個(gè)應(yīng)用程序開(kāi)發(fā)平臺(tái),它提供了可移植、可解釋、高性能和面向?qū)ο蟮木幊陶Z(yǔ)言及運(yùn)行環(huán)境。RMI(RemoteMethodInvocation)是分布在網(wǎng)絡(luò)中的各類Java對(duì)象之間進(jìn)行方法調(diào)用的ORB機(jī)制。CORBA技術(shù)與Java技術(shù)存在天然的聯(lián)系,因?yàn)镾un是OMG的創(chuàng)始成員,CORBA標(biāo)準(zhǔn)中的許多內(nèi)容(例如IDL標(biāo)準(zhǔn)、IIOP標(biāo)準(zhǔn))是以SUN公司提交的方案為核心制定的。CORBA與Java/RMI的主要區(qū)別在于以下兩個(gè)方面:
·程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)性是CORBA的重要設(shè)計(jì)原則,而Java/RMI依賴于Java語(yǔ)言和Java虛擬機(jī);
·Java/RMI技術(shù)的最大成就是使對(duì)象能夠在Internet上遷移和執(zhí)行,而CORBA2.0標(biāo)準(zhǔn)中只考慮對(duì)象的遠(yuǎn)程訪問(wèn),沒(méi)有對(duì)象作為"值"傳遞的承諾。
----由于這兩個(gè)技術(shù)的天然聯(lián)系和各自的優(yōu)勢(shì),CORBA技術(shù)與Java技術(shù)的融合已成為必然。
5.2.2發(fā)展趨勢(shì)
----與Internet技術(shù)結(jié)合是分布對(duì)象技術(shù)值得重視的發(fā)展趨勢(shì)。Internet技術(shù)的發(fā)展,特別是90年代中期WWW技術(shù)的廣泛應(yīng)用,給分布對(duì)象技術(shù)的應(yīng)用開(kāi)辟了更廣闊的空間,Object Web成為人們關(guān)注的新熱點(diǎn)。從技術(shù)的角度看,WWW應(yīng)用已經(jīng)經(jīng)歷了Hypertext Web和Interactive Web兩種形態(tài),但都存在很大的局限性,突出地表現(xiàn)為應(yīng)用接入能力受到限制。Java的出現(xiàn)為在瀏覽器上運(yùn)行程序提供了新的途徑,標(biāo)志著ObjectWeb時(shí)代的開(kāi)始。就以網(wǎng)絡(luò)為中心的分布式應(yīng)用的發(fā)展而言,這種把對(duì)象下載到瀏覽器中執(zhí)行的機(jī)制也有局限。主要表現(xiàn)在大量的遺留應(yīng)用不是用Java寫(xiě)的,自然無(wú)法下載到瀏覽器中運(yùn)行;同時(shí),某些重要的應(yīng)用,包括信息共享與管理類的應(yīng)用(如數(shù)據(jù)庫(kù)系統(tǒng))以及信息采集與信號(hào)監(jiān)測(cè)應(yīng)用(如實(shí)施網(wǎng)絡(luò)管理的Agent)在邏輯上不能下載到客戶端運(yùn)行;另外,需要"減肥"的客戶機(jī)可能難以承受越來(lái)越龐大的應(yīng)用系統(tǒng)。盡管Java的RMI解決了訪問(wèn)異地Java對(duì)象的問(wèn)題,但如何管理和訪問(wèn)異地其他大量非Java對(duì)象的問(wèn)題并沒(méi)有解決。另外,JavaRMI沒(méi)有提供分布對(duì)象事務(wù)管理等服務(wù)。1996年下半年,Java與CORBA開(kāi)始攜手,共同奠定ObjectWeb時(shí)代的技術(shù)基礎(chǔ)。
----何謂ObjectWeb?對(duì)此目前并沒(méi)有公認(rèn)的定義,但可以從應(yīng)用和技術(shù)兩個(gè)角度給出一定意義上的解釋。
----1.應(yīng)用內(nèi)涵
----ObjectWeb是繼HypertextWeb和InteractiveWeb之后新的Web應(yīng)用,包括"保守的"和"理想的"兩類應(yīng)用形態(tài)。
·保守的應(yīng)用形態(tài)
用戶能夠按照對(duì)象設(shè)計(jì)者的思路自由、便捷地在Internet上操縱感興趣的對(duì)象;
·理想的應(yīng)用形態(tài)
用戶能夠按照自己的需要自由、便捷地在Internet上操縱感興趣的對(duì)象。
----與HypertextWeb和InteractiveWeb比較,Objec tWeb應(yīng)用給用戶的突出感受是操縱的實(shí)體不再局限于含有"超鏈"的文檔,作用于實(shí)體的操作行為不再局限于"下載"一類的文件傳輸行為。下面給出兩個(gè)應(yīng)用(雖然目前還沒(méi)有成熟的應(yīng)用,但實(shí)現(xiàn)該應(yīng)用的技術(shù)途徑已經(jīng)成熟)的簡(jiǎn)單陳述,以幫助對(duì)bjectWeb的理解。
----(1)開(kāi)放的Internet/Intranet管理
----典型的分布式系統(tǒng)管理采用Agent/Manager體系結(jié)構(gòu),Agent運(yùn)行在被管理的設(shè)備(如服務(wù)器、路由器和智能交換機(jī)等)上,Manager通過(guò)與Agent的交互實(shí)施分布式系統(tǒng)管理。但問(wèn)題是Manager不能管理采用新標(biāo)準(zhǔn)的新設(shè)備,這對(duì)于Internet管理是不合適的。開(kāi)放的Internet/Intranet管理有兩方面的含義:第一是指Agent能夠在Internet上公布其管理功能的接口,并接受任何合法的Manager按照標(biāo)準(zhǔn)的遠(yuǎn)程對(duì)象訪問(wèn)協(xié)議(如CORBA/IIOP)所進(jìn)行的訪問(wèn);第二是指Manager能夠訪問(wèn)任何時(shí)刻加入Internet的Agent,只要該Agent支持Internet上標(biāo)準(zhǔn)的遠(yuǎn)程對(duì)象訪問(wèn)協(xié)議,并在加入Internet時(shí)按照標(biāo)準(zhǔn)的協(xié)議公布其接口。這時(shí),Manager就是管理對(duì)象的瀏覽器。我們注意到Sun公司前不久公布的Jini能夠?qū)崿F(xiàn)該應(yīng)用構(gòu)思。
- -- -(2)Web組合文檔
--- -傳統(tǒng)的組合文檔(如MicroSoft的Office95)是臺(tái)式應(yīng)用,沒(méi)有跨網(wǎng)絡(luò)引用組件的功能。而目前流行的Web瀏覽器基于超文本結(jié)構(gòu),不能像組合文檔一樣自由組合和操作對(duì)象。Web組合文檔較之傳統(tǒng)的組合文檔增加了跨網(wǎng)絡(luò)引用組件的能力,這意味著復(fù)雜的組合文檔應(yīng)用能夠在手持PC或其他瘦客戶機(jī)上運(yùn)行。例如,一個(gè)汽車(chē)設(shè)計(jì)專家在遠(yuǎn)離自己的設(shè)計(jì)中心講學(xué)時(shí),能夠通過(guò)隨身攜帶的筆記本計(jì)算機(jī),現(xiàn)場(chǎng)演示從設(shè)計(jì)中心服務(wù)器上選擇若干汽車(chē)部件,修改后組合一種新型的汽車(chē),并現(xiàn)場(chǎng)調(diào)用設(shè)計(jì)中心的仿真系統(tǒng)對(duì)新設(shè)計(jì)的汽車(chē)進(jìn)行各種仿真演示。
---- 2。技術(shù)內(nèi)涵
--- -ObjectWeb技術(shù)主要包括對(duì)象開(kāi)發(fā)技術(shù)和對(duì)象訪問(wèn)技術(shù)。從當(dāng)前技術(shù)現(xiàn)狀看,ObjectWeb技術(shù)成分如表1.1所示。
表1-1 ObjectWeb技術(shù)構(gòu)成
Hypertest Web/Interactive WebObjectWeb
對(duì)象超文本COM對(duì)象,Java對(duì)象、CORBA對(duì)象、各類組件
對(duì)象訪問(wèn)HTTP/CGIDCOM、RMI、CORBA/IIOP、HTTP/CGI
----"對(duì)象"與"對(duì)象訪問(wèn)"的關(guān)系可以用"貨物運(yùn)輸系統(tǒng)"來(lái)類比。"對(duì)象"是ObjectWeb上的"貨"。Internet上已存在大量的超文本,相對(duì)而言COM對(duì)象、Java對(duì)象、CORBA對(duì)象和各類組件則少得多。由于臺(tái)式環(huán)境中的COM對(duì)象非常豐富,今后幾年DCOM對(duì)象可能首先會(huì)在Internet上豐富起來(lái)。按照J(rèn)ava技術(shù)現(xiàn)在的發(fā)展勢(shì)頭,Internet上的Java對(duì)象也會(huì)很快多起來(lái)。由于CORBA對(duì)象具有語(yǔ)言、操作系統(tǒng)和硬件平臺(tái)無(wú)關(guān)性的特點(diǎn),它是最容易將大量的遺留應(yīng)用和C++、Smalltalk對(duì)象帶入ObjectWeb的技術(shù);隨著Java與CORBA的攜手,Java對(duì)象又會(huì)成為CORBA對(duì)象的特例;COM對(duì)象與CORBA對(duì)象的互操作標(biāo)準(zhǔn)已經(jīng)制定。CORBA對(duì)象將迎來(lái)大發(fā)展的時(shí)期。
----"對(duì)象訪問(wèn)"技術(shù)是ObjectWeb上的"車(chē)"。HTTP用于下載HTML頁(yè)面和JavaApplet。Microsoft的對(duì)象RPC、RMI和CORBA/IIOP協(xié)議分別是遠(yuǎn)程訪問(wèn)DCOM對(duì)象、Java對(duì)象和CORBA對(duì)象的協(xié)議。從訪問(wèn)異地應(yīng)用的意義上講,HTTP/CGI也可視為一種對(duì)象訪問(wèn)協(xié)議,只是功能和性能存在很大局限。RMI與CORBA正在逐步融合,有人稱融合后的對(duì)象訪問(wèn)技術(shù)為Java/CORBA。今后一個(gè)時(shí)期,在ObjectWeb領(lǐng)域占主導(dǎo)地位的技術(shù)將是ActiveX/DCOM和Java/CORBA。ActiveX/DCOM的應(yīng)用豐富,占據(jù)了PC用戶的絕對(duì)優(yōu)勢(shì),一旦大力投入ObjectWeb的開(kāi)發(fā),市場(chǎng)優(yōu)勢(shì)不可阻擋。Java/CORBA的技術(shù)優(yōu)于ActiveX/DCOM,發(fā)展勢(shì)頭和潛力不可低估。也許,在ObjectWeb領(lǐng)域ActiveX/DCOM與Java/CORBA的關(guān)系會(huì)像操作系統(tǒng)領(lǐng)域NT與Unix的關(guān)系一樣。發(fā)展Java/CORBA的當(dāng)務(wù)之急是應(yīng)用開(kāi)發(fā),把握未來(lái)的最好辦法是創(chuàng)造未來(lái)
5.2.3 三種主流技術(shù)比較
1.CORBA
CORBA有幾個(gè)基本的優(yōu)點(diǎn):與開(kāi)發(fā)語(yǔ)言無(wú)關(guān)的獨(dú)立性,與開(kāi)發(fā)者無(wú)關(guān)的獨(dú)立性和與操作系統(tǒng)無(wú)關(guān)的獨(dú)立性。CORBA的ORB在當(dāng)前每一種主流操作系統(tǒng)上均有實(shí)現(xiàn)(僅就Microsoft的各種操作系統(tǒng)來(lái)說(shuō),CORBA獲得的支持甚至超越了DCOM)。除此之外,CORBAORB可以訪問(wèn)多種語(yǔ)言實(shí)現(xiàn)的對(duì)象(包括C++、COBOL、Smalltalk和Java)。借助于IIOP,某一開(kāi)發(fā)者(比如說(shuō)Visigenic)開(kāi)發(fā)的CORBAORB能夠獲取,操作遠(yuǎn)程的由其他的開(kāi)發(fā)者(比如說(shuō)IONA)開(kāi)發(fā)的對(duì)象。JavaORB允許客戶端在沒(méi)有安裝任何特別軟件的情況下實(shí)現(xiàn)Java客戶端應(yīng)用程序。(JavaORB的類可與小應(yīng)用一起動(dòng)態(tài)下載,也可能與瀏覽器捆綁在一起。)
2.DCOM:Microsoft的法寶
目前,Microsoft的分布式組件對(duì)象模型(Distributed Componont Object Model)僅運(yùn)行于兩種操作系統(tǒng)之上:Windows95和WindowsNT4。Microsoft正在與第三方開(kāi)發(fā)商協(xié)作,以將DCOM移到其它的操作系統(tǒng)上(包括MVS和幾種UNIX操作系統(tǒng))。象CORBA一樣,DCOM是獨(dú)立于語(yǔ)言的,它用Microsoft的對(duì)象描述語(yǔ)言(ODL)通過(guò)接口對(duì)對(duì)象加以描述。
與CORBA相比,DCOM有三個(gè)缺點(diǎn)。首先,它由單一開(kāi)發(fā)者(微軟)定義并控制,這大大限制了DCOM使用者的選擇范圍(比方說(shuō)開(kāi)發(fā)工具和風(fēng)格)。其次,DCOM缺乏眾多的平臺(tái)支持,這極大程度地制約了代碼的可重用性和DCOM應(yīng)用的可擴(kuò)展性。最后,與CORBA相比,DCOM是一種非常不成熟的技術(shù)。盡管微軟目前正為DCOM加入消息和事務(wù)支持,但這些功能在1994年的CORBA2.0就已經(jīng)實(shí)現(xiàn)了,并且正由幾家不同的CORBA軟件開(kāi)發(fā)商所發(fā)行。
為了使一個(gè)Java的小應(yīng)用/應(yīng)用程序得以訪問(wèn)服務(wù)端的DCOM對(duì)象,開(kāi)發(fā)者不得不使用IE瀏覽器和Windows95/NT平臺(tái),只有這樣才能支持客戶機(jī)軟件。這樣的限制當(dāng)然削弱了應(yīng)用程序在Web上的可用性。而另一方面,DCOM的一個(gè)優(yōu)勢(shì)在于,對(duì)WindowsNT/95用戶免費(fèi)。過(guò)去的歷史已經(jīng)表明,這是與Microsoft競(jìng)爭(zhēng)的重大障礙。
3.RMI:Sun的Java-Only解決方案
Remote Method Invocation是最新的JDK1.1中的重要特色。RMI使得Java客戶能夠訪問(wèn)遠(yuǎn)程服務(wù)對(duì)象。這聽(tīng)起來(lái)似乎十分類似于CORBA,但兩者并不一樣。其關(guān)鍵在于服務(wù)器端的應(yīng)用程序也必須用Java編寫(xiě),且只能使用JDK1.1中提供的工具。你根本無(wú)法把過(guò)去編制的代碼加到新程序中去,除此之外,RMI還有許多其它缺陷。
與CORBA不同,RMI沒(méi)有服務(wù)這一概念。另外,根據(jù)RMI寫(xiě)出的Java服務(wù)器對(duì)象往往性能低劣,這個(gè)缺點(diǎn)源于Java虛擬機(jī)。(有趣的是,JavaCORBA服務(wù)器比RMI服務(wù)器表現(xiàn)出更好的性能。)RMI也不包括象CORBAORB那樣的對(duì)象擊活功能。
實(shí)際上,RMI及Java技術(shù)更可能向OMG的標(biāo)準(zhǔn)靠攏,而不是背道而馳。Sun已經(jīng)宣布,Java事務(wù)服務(wù)(JavaTransactionServeces)將建立在OMG的對(duì)象事務(wù)服務(wù)(ObjectTransactionServeces)。該公司還曾發(fā)布其長(zhǎng)遠(yuǎn)計(jì)劃:使RMI對(duì)象可以通過(guò)IIOP互通訊。
總而言之,RMI對(duì)于用純Java書(shū)寫(xiě)的小規(guī)模的應(yīng)用程序來(lái)說(shuō),是一種可行方案。但CORBA提供了集成的基礎(chǔ),這種集成是指新開(kāi)發(fā)的代碼和已有對(duì)象的集成,同時(shí)允許將來(lái)加以擴(kuò)展。在做出取此舍彼的選擇之前,必須權(quán)衡上面的各種因素,并仔細(xì)審視每種技術(shù)的現(xiàn)狀。