- 相關(guān)推薦
分布式對象技術(shù)及其在Web上的應(yīng)用
摘要:本文首先論述了分布式對象技術(shù)的重要概念和基本原理,然后分析了CORBA和Web相結(jié)合所帶來的技術(shù)優(yōu)勢。最后,結(jié)合實(shí)例,介紹了開發(fā)基于CORBA/Web技術(shù)的應(yīng)用系統(tǒng)的步驟和特點(diǎn)。
關(guān)鍵詞:Web 分布式對象 CORBA IDL PDMS
1 引言
Internet/Intranet的飛速發(fā)展使得World Wide Web應(yīng)用日益廣泛,從而引發(fā)了一場Web技術(shù)的革命。目前,各種新型的Web應(yīng)用,如電子出版,電子商務(wù)等層出不窮,許多應(yīng)用系統(tǒng)也紛紛集成了Web瀏覽器和服務(wù)器,Web技術(shù)正以日新月異的速度變化著。Web已不再僅僅是超媒體信息的瀏覽工具,它正逐步成為人們事務(wù)處理的通用前端。在分布式環(huán)境中,異構(gòu)性是一個(gè)十分明顯的特點(diǎn),一個(gè)典型的分布環(huán)境包括有大型主機(jī)、UNIX工作站和PC機(jī),各種機(jī)器所采用的操作系統(tǒng)和網(wǎng)絡(luò)通信協(xié)議也是千差萬別。在這樣的異構(gòu)環(huán)境下實(shí)現(xiàn)信息和軟件資源的共享將十分困難,而一個(gè)健壯的分布式計(jì)算框架將為分布式應(yīng)用軟件的開發(fā)帶來巨大的好處。由于分布式對象技術(shù),特別是CORBA技術(shù)對于提高Web的網(wǎng)絡(luò)計(jì)算能力有著無可比擬的巨大作用,它已開始進(jìn)入Web領(lǐng)域并投入應(yīng)用。
2 分布式對象技術(shù)
分布式對象技術(shù)主要是在分布式異構(gòu)環(huán)境下建立應(yīng)用系統(tǒng)框架和對象構(gòu)件,在應(yīng)用系統(tǒng)框架的支撐下,開發(fā)者可以將軟件功能包裝為更易管理和使用的對象,這些對象可以跨越不同的軟硬件平臺進(jìn)行互操作。目前主要的分布式互操作標(biāo)準(zhǔn)有Microsoft的OLE/COM/DCOM標(biāo)準(zhǔn)、Sun公司的Java RMI標(biāo)準(zhǔn)和OMG組織的CORBA標(biāo)準(zhǔn)。下面以CORBA為代表論述分布式對象技術(shù)的體系結(jié)構(gòu),并對三種標(biāo)準(zhǔn)加以比較。
2.1 CORBA體系結(jié)構(gòu)
CORBA的體系結(jié)構(gòu)如圖1所示。在該體系結(jié)構(gòu)中主要描述了以下內(nèi)容:
(1) 接口與IDL語言
接口是CORBA系統(tǒng)中一個(gè)非常重要的概念,因?yàn)樗砹藢ο蟮姆⻊?wù)能力,為客戶提供了操作對象的唯一方法。簡單的說,接口就是一組相關(guān)函數(shù)的集合,接口中每一個(gè)函數(shù)都給出了詳細(xì)的說明,包括函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類型、返回類型以及可能拋出的異常。必須指出的是接口只定義了函數(shù)的原型,并沒有給出具體的實(shí)現(xiàn),這就留給開發(fā)者足夠的靈活性來提供他們自己的函數(shù)實(shí)現(xiàn)。接口是通過一種中性的接口描述語言( IDL,Interface Description Language)來定義的。雖然IDL語言只提供了被ORB操作的對象的概念框架,但是ORB在運(yùn)行時(shí)并不需要IDL的源代碼。只要樁例程或運(yùn)行狀態(tài)下接口庫中的等價(jià)信息是可用的,ORB就能通過特定的方式完成其功能。
(2) 樁和構(gòu)架
樁(Stub)可以看成是實(shí)際對象在客戶進(jìn)程中的映像,其中的接口必須是預(yù)先定義好的,因此它為客戶提供了一種靜態(tài)的調(diào)用方式。與樁相對應(yīng)的構(gòu)架(Skeleton)為服務(wù)器提供了一種靜態(tài)的實(shí)現(xiàn)方式。IDL編譯器翻譯描述對象接口的IDL文件,生成對應(yīng)具體編程語言的IDL樁和IDL構(gòu)架。樁負(fù)責(zé)將客戶請求進(jìn)行編碼,發(fā)送到對象實(shí)現(xiàn)端,并對收到的結(jié)果進(jìn)行解釋,然后把結(jié)果或異常返回給客戶。與此相反,構(gòu)架對客戶的請求進(jìn)行解碼,定位目標(biāo)對象和請求執(zhí)行的對象方法,激活該方法,然后把結(jié)果或異常信息編碼返回給客戶端。
(3) 動(dòng)態(tài)調(diào)用接口和動(dòng)態(tài)構(gòu)架接口
與樁和構(gòu)架不同,動(dòng)態(tài)調(diào)用接口(DII ,Dynamic Invocation Interface)和動(dòng)態(tài)構(gòu)架接口(DSI ,Dynamic Skeleton Interface)提供了動(dòng)態(tài)調(diào)用的方式和動(dòng)態(tài)實(shí)現(xiàn)的方式,它們使得用戶可以在事先不知道對象接口信息的情況下通過查詢接口庫或采取其它手段動(dòng)態(tài)地獲得對象接口信息,然后使用ORB核心接口中的DII動(dòng)態(tài)調(diào)用方法構(gòu)造客戶請求并發(fā)送到對象實(shí)現(xiàn)。在對象實(shí)現(xiàn)方可以使用DSI的動(dòng)態(tài)分發(fā)機(jī)制處理客戶方的請求。與靜態(tài)方式相比,動(dòng)態(tài)方式提供了很大的靈活性,但是它的工作效率沒有靜態(tài)方式高。另外,實(shí)現(xiàn)系統(tǒng)的接口大多可以預(yù)先確定,所以大部分情況下都是采用靜態(tài)方式。
客戶方與服務(wù)器方所采用的方式并不一定要一一對應(yīng),也就是說,客戶方支持靜態(tài)和動(dòng)態(tài)兩種調(diào)用方式,服務(wù)器方也支持靜態(tài)和動(dòng)態(tài)兩種實(shí)現(xiàn)方式,經(jīng)過組合得到的四種方式都可能出現(xiàn),例如,客戶方使用靜態(tài)調(diào)用方式,而服務(wù)器方使用動(dòng)態(tài)構(gòu)架接口是允許的,反之亦然。
(4) ORB核心和對象適配器
與Unix的實(shí)現(xiàn)機(jī)制相類似,CORBA規(guī)范將那些相對固定的、單一的功能提取出來交由ORB內(nèi)核實(shí)現(xiàn)以保證它的可靠性、高效性與可重用性。作為整個(gè)CORBA系統(tǒng)的基礎(chǔ),ORB內(nèi)核通過屏蔽諸如服務(wù)器位置、實(shí)現(xiàn)方式、通信協(xié)議等具體細(xì)節(jié)為客戶方與服務(wù)器方之間的通信提供了透明的傳輸機(jī)制。當(dāng)前的應(yīng)用系統(tǒng)存在著各種不同的對象實(shí)現(xiàn)方式,例如可執(zhí)行程序、面向?qū)ο蟮臄?shù)據(jù)庫等,他們有不同的定位對象、解釋對象、激活對象的方法。因此,如果將現(xiàn)存的所有對象實(shí)現(xiàn)的解決方案都包含在ORB內(nèi)核中,它必將非常龐大、冗余并且難以移植。為了確保ORB內(nèi)核的高效與可移植性,一個(gè)稱為對象適配器(OMA)的中間層加入到ORB與對象實(shí)現(xiàn)之間。定位目標(biāo)對象的任務(wù)從ORB內(nèi)核中分離出來交給對象適配器來完成。
2.2 CORBA與RMI和DCOM的比較
RMI直接把分布式對象模型嵌入到Java語言內(nèi)部,使得Java程序員可以自然地編寫分布式程序,不必離開Java環(huán)境,或者涉及CORBA IDL以及Java到CORBA的類型轉(zhuǎn)換。然而RMI不遵守CORBA標(biāo)準(zhǔn),基本上是Java-to-Java技術(shù),它需要客戶方程序和服務(wù)方程序都用Java編寫,難以實(shí)現(xiàn)與其它語言編寫的對象之間的互操作。
DCOM則是從COM改造過來的。Microsoft把DCOM作為開發(fā)Internet和組件的基礎(chǔ),目前已搭載到Windows NT 4.0以上版本和Windows 98中。COM這一技術(shù)部分是作為規(guī)范,它定義對象實(shí)現(xiàn)的二進(jìn)制標(biāo)準(zhǔn),用于單機(jī)上應(yīng)用之間的通信,對象實(shí)現(xiàn)與使用的語言無關(guān)。DCOM是COM的分布式擴(kuò)展,在DCE RPC之上構(gòu)造對象的遠(yuǎn)程過程調(diào)用層支持對遠(yuǎn)程對象的訪問。一個(gè)DCOM對象(又稱為ActiveX對象)是支持一個(gè)或多個(gè)界面的組件,DCOM界面指預(yù)先規(guī)定的一組相關(guān)函數(shù)。DCOM類實(shí)現(xiàn)一個(gè)或多個(gè)界面,由一個(gè)又一個(gè)128-bit類ID唯一標(biāo)識?蛻舫绦蛲ㄟ^獲得指向DCOM對象的
【分布式對象技術(shù)及其在Web上的應(yīng)用】相關(guān)文章:
關(guān)于現(xiàn)代教育技術(shù)及其應(yīng)用09-19
第三代移動(dòng)通信技術(shù)及其應(yīng)用論文04-29
公鑰密碼原理及其應(yīng)用05-13
目標(biāo)規(guī)劃及其在經(jīng)濟(jì)中的應(yīng)用05-11
公允價(jià)值、預(yù)期現(xiàn)值法及其應(yīng)用06-01
OTN光傳送網(wǎng)技術(shù)特點(diǎn)及其在電力通信中的應(yīng)用研究05-01
電子商務(wù)及其安全技術(shù).06-03
OFDM技術(shù)研究及其系統(tǒng)仿真05-11