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