分布式對(duì)象技術(shù)及其在Web上的應(yīng)用_第1頁
分布式對(duì)象技術(shù)及其在Web上的應(yīng)用_第2頁
分布式對(duì)象技術(shù)及其在Web上的應(yīng)用_第3頁
分布式對(duì)象技術(shù)及其在Web上的應(yīng)用_第4頁
分布式對(duì)象技術(shù)及其在Web上的應(yīng)用_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、    分布式對(duì)象技術(shù)及其在Web上的應(yīng)用            作者:佚名時(shí)間:2007-11-25 12:33:00                     摘要:本文首先論述了分布式對(duì)象技術(shù)的重要概念和基本原理,然后分析了CORBA和

2、Web相結(jié)合所帶來的技術(shù)優(yōu)勢(shì)。最后,結(jié)合實(shí)例,介紹了開發(fā)基于CORBA/Web技術(shù)的應(yīng)用系統(tǒng)的步驟和特點(diǎn)。關(guān)鍵詞:Web  分布式對(duì)象  CORBA  IDL  PDMS1      引言Internet/Intranet的飛速發(fā)展使得World Wide Web應(yīng)用日益廣泛,從而引發(fā)了一場(chǎng)Web技術(shù)的革命。目前,各種新型的Web應(yīng)用,如電子出版,電子商務(wù)等層出不窮,許多應(yīng)用系統(tǒng)也紛紛集成了Web瀏覽器和服務(wù)器,Web技術(shù)正以日新月異的速度變化著。Web已不再僅僅是超媒體信息的瀏覽工具,它正逐步成為人們事

3、務(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ā)帶來巨大的好處。由于分布式對(duì)象技術(shù),特別是CORBA技術(shù)對(duì)于提高Web的網(wǎng)絡(luò)計(jì)算能力有著無可比擬的巨大作用,它已開始進(jìn)入Web領(lǐng)域并投入應(yīng)用。2      分布式對(duì)象技術(shù)分布式對(duì)象技術(shù)主要是在分布式異構(gòu)環(huán)境下建立應(yīng)用系統(tǒng)框架和對(duì)象構(gòu)件,在應(yīng)用系統(tǒng)框架的支撐下,開發(fā)者可以將軟

4、件功能包裝為更易管理和使用的對(duì)象,這些對(duì)象可以跨越不同的軟硬件平臺(tái)進(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為代表論述分布式對(duì)象技術(shù)的體系結(jié)構(gòu),并對(duì)三種標(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)樗砹藢?duì)象的服務(wù)能力,為客戶提供了操作對(duì)象的唯一方法。簡單的說,接口就是一組相關(guān)函數(shù)的集合,接口中每一個(gè)函數(shù)都給出了詳細(xì)的說明,包括

5、函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類型、返回類型以及可能拋出的異常。必須指出的是接口只定義了函數(shù)的原型,并沒有給出具體的實(shí)現(xiàn),這就留給開發(fā)者足夠的靈活性來提供他們自己的函數(shù)實(shí)現(xiàn)。接口是通過一種中性的接口描述語言( IDL,Interface Description Language)來定義的。雖然IDL語言只提供了被ORB操作的對(duì)象的概念框架,但是ORB在運(yùn)行時(shí)并不需要IDL的源代碼。只要樁例程或運(yùn)行狀態(tài)下接口庫中的等價(jià)信息是可用的,ORB就能通過特定的方式完成其功能。 (2)  樁和構(gòu)架樁(Stub)可以看成是實(shí)際對(duì)象在客戶進(jìn)程中的映像,其中的接口必須是預(yù)先定義好的,因此它為客戶提供

6、了一種靜態(tài)的調(diào)用方式。與樁相對(duì)應(yīng)的構(gòu)架(Skeleton)為服務(wù)器提供了一種靜態(tài)的實(shí)現(xiàn)方式。IDL編譯器翻譯描述對(duì)象接口的IDL文件,生成對(duì)應(yīng)具體編程語言的IDL樁和IDL構(gòu)架。樁負(fù)責(zé)將客戶請(qǐng)求進(jìn)行編碼,發(fā)送到對(duì)象實(shí)現(xiàn)端,并對(duì)收到的結(jié)果進(jìn)行解釋,然后把結(jié)果或異常返回給客戶。與此相反,構(gòu)架對(duì)客戶的請(qǐng)求進(jìn)行解碼,定位目標(biāo)對(duì)象和請(qǐng)求執(zhí)行的對(duì)象方法,激活該方法,然后把結(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

7、,Dynamic Skeleton Interface)提供了動(dòng)態(tài)調(diào)用的方式和動(dòng)態(tài)實(shí)現(xiàn)的方式,它們使得用戶可以在事先不知道對(duì)象接口信息的情況下通過查詢接口庫或采取其它手段動(dòng)態(tài)地獲得對(duì)象接口信息,然后使用ORB核心接口中的DII動(dòng)態(tài)調(diào)用方法構(gòu)造客戶請(qǐng)求并發(fā)送到對(duì)象實(shí)現(xiàn)。在對(duì)象實(shí)現(xiàn)方可以使用DSI的動(dòng)態(tài)分發(fā)機(jī)制處理客戶方的請(qǐng)求。與靜態(tài)方式相比,動(dòng)態(tài)方式提供了很大的靈活性,但是它的工作效率沒有靜態(tài)方式高。另外,實(shí)現(xiàn)系統(tǒng)的接口大多可以預(yù)先確定,所以大部分情況下都是采用靜態(tài)方式??蛻舴脚c服務(wù)器方所采用的方式并不一定要一一對(duì)應(yīng),也就是說,客戶方支持靜態(tài)和動(dòng)態(tài)兩種調(diào)用方式,服務(wù)器方也支持靜態(tài)和動(dòng)態(tài)兩種實(shí)現(xiàn)方

8、式,經(jīng)過組合得到的四種方式都可能出現(xiàn),例如,客戶方使用靜態(tài)調(diào)用方式,而服務(wù)器方使用動(dòng)態(tài)構(gòu)架接口是允許的,反之亦然。(4)  ORB核心和對(duì)象適配器與Unix的實(shí)現(xiàn)機(jī)制相類似,CORBA規(guī)范將那些相對(duì)固定的、單一的功能提取出來交由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)存在著各種不同的對(duì)象實(shí)現(xiàn)方式,例如可執(zhí)行程序、面向?qū)ο蟮臄?shù)據(jù)庫等,他們有不同的定位對(duì)象、解釋對(duì)象、激活對(duì)象的方法。因此,如果將現(xiàn)存的所有對(duì)象實(shí)現(xiàn)的解決方案都

9、包含在ORB內(nèi)核中,它必將非常龐大、冗余并且難以移植。為了確保ORB內(nèi)核的高效與可移植性,一個(gè)稱為對(duì)象適配器(OMA)的中間層加入到ORB與對(duì)象實(shí)現(xiàn)之間。定位目標(biāo)對(duì)象的任務(wù)從ORB內(nèi)核中分離出來交給對(duì)象適配器來完成。 22  CORBA與RMI和DCOM的比較RMI直接把分布式對(duì)象模型嵌入到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)與其它語言編寫的對(duì)象之間的互

10、操作。DCOM則是從COM改造過來的。Microsoft把DCOM作為開發(fā)Internet和組件的基礎(chǔ),目前已搭載到Windows NT 4.0以上版本和Windows 98中。COM這一技術(shù)部分是作為規(guī)范,它定義對(duì)象實(shí)現(xiàn)的二進(jìn)制標(biāo)準(zhǔn),用于單機(jī)上應(yīng)用之間的通信,對(duì)象實(shí)現(xiàn)與使用的語言無關(guān)。DCOM是COM的分布式擴(kuò)展,在DCE RPC之上構(gòu)造對(duì)象的遠(yuǎn)程過程調(diào)用層支持對(duì)遠(yuǎn)程對(duì)象的訪問。一個(gè)DCOM對(duì)象(又稱為ActiveX對(duì)象)是支持一個(gè)或多個(gè)界面的組件,DCOM界面指預(yù)先規(guī)定的一組相關(guān)函數(shù)。DCOM類實(shí)現(xiàn)一個(gè)或多個(gè)界面,由一個(gè)又一個(gè)128-bit類ID唯一標(biāo)識(shí)??蛻舫绦蛲ㄟ^獲得指向DCOM對(duì)象的

11、界面的指針與該對(duì)象交互,通過指針調(diào)用其操作??蛻舫绦驈牟恢苯釉L問對(duì)象。DCOM對(duì)象不支持對(duì)象ID,因此,客戶程序不能與某個(gè)特定的對(duì)象發(fā)生聯(lián)系。3.   分布式對(duì)象技術(shù)與Web技術(shù)的集成Web 的發(fā)展已經(jīng)歷了兩個(gè)發(fā)展階段。靜態(tài)的信息發(fā)布階段。服務(wù)器只提供信息的存儲(chǔ)和發(fā)布功能,用戶通過瀏覽器被動(dòng)地獲取信息,功能單一,缺乏交互性。動(dòng)態(tài)的信息發(fā)布階段。用戶可以通過CGI或JDBC等多種手段與Web服務(wù)器,甚至后端數(shù)據(jù)庫直接交互,極大地增強(qiáng)了客戶方的可操作性。但是,HTTP協(xié)議是一種無狀態(tài)的協(xié)議,很難支持聯(lián)機(jī)處理和系統(tǒng)集成。分布式對(duì)象技術(shù)與Web 之間并不存在著內(nèi)在的必然聯(lián)系,但是這

12、兩者相結(jié)合后,卻產(chǎn)生了誘人的技術(shù)魅力。第一,它可以消除CGI的瓶頸,使客戶端能直接調(diào)用服務(wù)器上的方法??蛻舳丝梢岳妙A(yù)編譯過的樁(Stub)傳遞參數(shù)或利用CORBA的動(dòng)態(tài)調(diào)度服務(wù)在運(yùn)行中產(chǎn)生參數(shù),服務(wù)器通過一個(gè)預(yù)編譯的程序直接接受調(diào)用。與HTTP/CGI比較起來,客戶/服務(wù)器的開銷非常小。在CGI 中,一個(gè)Applet每次調(diào)用服務(wù)器上的方法必須要啟動(dòng)一個(gè)新的進(jìn)程請(qǐng)求,而CORBA不需要,CGI不能維護(hù)客戶端調(diào)用間的狀態(tài),CORBA則可以做到。第二,CORBA可以提供可伸縮的服務(wù)器到服務(wù)器的基礎(chǔ)結(jié)構(gòu),對(duì)象也可以利用CORBA ORB 進(jìn)行通信。這樣,為了均衡來自客戶機(jī)上的請(qǐng)求負(fù)荷,ORB可以讓這

13、些對(duì)象運(yùn)行在多個(gè)服務(wù)器上,而且,ORB還可以根據(jù)各個(gè)服務(wù)器的負(fù)荷情況進(jìn)行調(diào)度。而CGI面對(duì)要響應(yīng)的成百上千個(gè)請(qǐng)求,無法將負(fù)載分散到多個(gè)進(jìn)程或多個(gè)服務(wù)器上,這就是CGI運(yùn)用的瓶頸。第三,CORBA 可以采用分布式對(duì)象結(jié)構(gòu)擴(kuò)充Java,目前,Java Applet還不能利用遠(yuǎn)程方法調(diào)    用進(jìn)行跨地址空間的通信,而CORBA可以使Java Applet能夠和用不同語言編寫的其它對(duì)象進(jìn)行跨地址空間及網(wǎng)絡(luò)的通信,同時(shí)還可以提供強(qiáng)大的分布式對(duì)象服務(wù)。CORBA和Web相結(jié)合產(chǎn)生了面向?qū)ο蟮腤eb體系結(jié)構(gòu),如圖2所示,它由客戶層(Web瀏覽器)、應(yīng)用層(Web服務(wù)

14、器和應(yīng)用服務(wù)器)和資源層(數(shù)據(jù)庫服務(wù)器)三層構(gòu)成??蛻魧油ㄟ^HTTP協(xié)議訪問Web服務(wù)器,從Web服務(wù)器下載HTML頁面,頁面中內(nèi)嵌的Java Applet通過CORBA內(nèi)部通信機(jī)制(IIOP)訪問應(yīng)用層的對(duì)象和服務(wù)。應(yīng)用層由Web服務(wù)器和應(yīng)用服務(wù)器構(gòu)成,主要提供安全管理,事務(wù)處理和各種訪問服務(wù)。Web服務(wù)器提供常規(guī)的頁面訪問請(qǐng)求。應(yīng)用服務(wù)器利用對(duì)象通信協(xié)議在Web瀏覽器和資源層之間提供事務(wù)處理和數(shù)據(jù)庫訪問的功能。資源層中主要包括數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫。數(shù)據(jù)庫服務(wù)器由會(huì)話管理、公共語言組件、數(shù)據(jù)存儲(chǔ)和訪問組件構(gòu)成。會(huì)話管理處理來自應(yīng)用層的請(qǐng)求。公共語言組件解釋來自客戶端的請(qǐng)求,并將它們轉(zhuǎn)換成一種

15、適于傳遞到數(shù)據(jù)存儲(chǔ)的形式。數(shù)據(jù)訪問和存儲(chǔ)執(zhí)行請(qǐng)求包括訪問數(shù)據(jù)庫和進(jìn)行事務(wù)處理。4  基于CORBA的Web計(jì)算模式實(shí)例分析受國家863計(jì)劃CIMS專家組的委托,由東南大學(xué)和同創(chuàng)集團(tuán)軟件事業(yè)部聯(lián)合開發(fā)研制的“基于CORBA/Web技術(shù)的企業(yè)級(jí)和部門級(jí)產(chǎn)品數(shù)據(jù)管理系統(tǒng)”,此項(xiàng)目得到八六三計(jì)劃專家委員會(huì)的高度重視,被列為八六三重大目標(biāo)產(chǎn)品項(xiàng)目。產(chǎn)品數(shù)據(jù)管理系統(tǒng)(PDMS,Product Data Management System)以產(chǎn)品為中心,通過計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),把企業(yè)生產(chǎn)過程中所有與產(chǎn)品相關(guān)的信息和過程集成起來,統(tǒng)一管理,使產(chǎn)品數(shù)據(jù)在其生命周期內(nèi)保持一致、最新和安全,實(shí)現(xiàn)整個(gè)企

16、業(yè)信息的集成,為工程技術(shù)人員提供一個(gè)協(xié)同工作的環(huán)境,從而縮短產(chǎn)品研發(fā)周期、降低成本、提高質(zhì)量,為企業(yè)贏得競(jìng)爭(zhēng)優(yōu)勢(shì)。    下面簡要介紹基于CORBA/Web技術(shù)的PDMS的研制開發(fā)步驟:    (1)通過對(duì)應(yīng)用需求的分析,歸納得到PDMS的服務(wù)功能及其描述。在功能模塊上,OMG組織提出了“PDM使能器”規(guī)范,將PDM的功能通過八個(gè)使能器(工程活動(dòng)需求、工程變更、制造實(shí)現(xiàn)、文檔管理、產(chǎn)品結(jié)構(gòu)定義、配置管理和測(cè)試維護(hù)等)封裝起來。使它們能夠支持企業(yè)制造過程模型中的產(chǎn)品開發(fā)過程。本系統(tǒng)的開發(fā)參照“PDM使能器”規(guī)范,保證了與其它PDMS的交

17、互性和通用性。(2)根據(jù)得到的服務(wù)功能描述,使用標(biāo)準(zhǔn)的 IDL語言進(jìn)行描述,從而得到應(yīng)用系統(tǒng)服務(wù)功能的IDL文件。IDL文件中包括了PDMS服務(wù)的數(shù)據(jù)類型和服務(wù)接口,服務(wù)接口又可以分為屬性和操作。IDL語言是CORBA規(guī)范中定義的一種中性語言,它用來描述對(duì)象的接口,而不涉及對(duì)象的具體實(shí)現(xiàn)。通過CORBA軟件總線系統(tǒng)提供的IDL編譯器工具對(duì)PDMS服務(wù)的IDL描述文件進(jìn)行轉(zhuǎn)換,得到客戶端樁文件和服務(wù)器端構(gòu)架文件。在CORBA中定義了IDL語言到C、C+、和Java等語言的映射。本系統(tǒng)中服務(wù)器端的構(gòu)架文件采用C+的映射形式,以充分利用C+語言在對(duì)象實(shí)現(xiàn)方面的優(yōu)勢(shì);客戶端的樁文件采用Java的映射形

18、式,以充分利用Java Applet在Web上的獨(dú)特功能。(3)完成服務(wù)器端方主程序的編寫,通過將服務(wù)器端功能實(shí)現(xiàn)代碼與所生成的服務(wù)端構(gòu)架代碼聯(lián)合編譯得到實(shí)現(xiàn)相應(yīng)系統(tǒng)服務(wù)功能的軟構(gòu)件,隨后使用對(duì)象管理工具將該軟構(gòu)件注冊(cè)到CORBA軟件總線支持環(huán)境中,以供其它應(yīng)用調(diào)用和訪問。    (4)完成客戶方Java Applet的編寫,該Applet根據(jù)用戶的需求向服務(wù)器方發(fā)出請(qǐng)求,并把請(qǐng)求結(jié)果返回給用戶。由于絕大多數(shù)的瀏覽器對(duì)從網(wǎng)上下載的Java Applet采取一種稱為“Sand-Box”的安全模型,使得Java Applet既不能與宿主機(jī)以外的計(jì)算機(jī)建立網(wǎng)絡(luò)連接,也不能訪問本地文件系統(tǒng)、本地設(shè)備。而CORBA系統(tǒng)的特點(diǎn)是服務(wù)對(duì)象的分布性和遠(yuǎn)程對(duì)象定位的透明性。本系統(tǒng)通過CORBA系統(tǒng)提供的IIOP代理(Gatekeeper)來解決安全限制的約束,它負(fù)責(zé)接受Applet發(fā)來的IIOP報(bào)文,分析報(bào)文內(nèi)容,將其轉(zhuǎn)發(fā)給位于其他主機(jī)上的Applet無法直接調(diào)用的CORBA服務(wù)對(duì)象實(shí)現(xiàn),并將服務(wù)對(duì)象實(shí)現(xiàn)返回的IIOP報(bào)文送交Applet。  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論