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