崔 亮
[摘要]在企業(yè)信息化進程中,如何實現(xiàn)異構(gòu)資源之間的互操作成為當(dāng)前研究熱點,提出一種基于XML和SOAP協(xié)議的互操作模型,消除網(wǎng)絡(luò)的異構(gòu)性,解決異構(gòu)分布式對象的互聯(lián)、互通和互操作問題,實現(xiàn)信息全局共享。
[關(guān)鍵詞]XMLSOAP互操作分布式
中圖分類號:TP3文獻標(biāo)識碼:A文章編號:1671-7597(2009)1210057-01
在企業(yè)的信息化進程中,信息資源具有多源海量性、分布異構(gòu)性、時間動態(tài)性等特點,原有的異構(gòu)分布式系統(tǒng)難以滿足信息化進程快速發(fā)展的要求,如何實現(xiàn)企業(yè)異構(gòu)系統(tǒng)的資源共享,應(yīng)用程序的跨平臺、跨語言、跨硬件的無縫集成是目前企業(yè)集成亟待解決的問題。
一、傳統(tǒng)模式的分布式對象互操作存在問題
傳統(tǒng)的分布式平臺,如Microsoft的DCOM以及Microsoft之外的CORBA
或Java RMI都依賴于周密管理的環(huán)境。兩臺任何的計算機使得DCOM或CORBA在環(huán)境之外被成功調(diào)用的幾率是很低的。特別是在考慮安全性的時候尤其如此。
DCOM和CORBA都依賴于高技術(shù)的運行環(huán)境。這兩個協(xié)議都有復(fù)雜的規(guī)則來處理數(shù)據(jù)排列、類型信息和位操作。這增加了移植到其他平臺的難度。由于存在以上問題,導(dǎo)致這兩種系統(tǒng)之間很難實現(xiàn)互操作,而XML和SOAP技術(shù)的產(chǎn)生和發(fā)展使Internet上分布式對象間的互操作稱為可能。
二、基于SOAP實現(xiàn)異構(gòu)分布式對象互操作的主要任務(wù)
1.必須定義一個完整的XML文檔語義,使得嵌入在SOAP報文中的XML文檔能夠被無二義地解析成對特定組件的調(diào)用。該定義必須適合各種主流的分布式組件協(xié)議,并且是可擴充的,以適合將來新的組件技術(shù)。
2.必須實現(xiàn)一個能夠接受并處理SOAP報文的SOAP適配器。由于使用標(biāo)準(zhǔn)的HTTP協(xié)議,我們需要監(jiān)聽網(wǎng)絡(luò)的8080端口,接收含有XML文檔的SOAP報文。
3.必須實現(xiàn)一個可以接收服務(wù)器端返回的SOAP報文的客戶端組件,該組件可以使用各種語言開發(fā),使得用戶可以容易地處理分布式組件調(diào)用的結(jié)果。
三、關(guān)鍵技術(shù)
(一)標(biāo)準(zhǔn)的數(shù)據(jù)格式:XML。XML(Extensible Markup Language)是W3C開發(fā)的一種可擴展的標(biāo)記語言,以用于那些目前HTML無法滿足要求的應(yīng)用。它提供了一種新的數(shù)據(jù)交換的標(biāo)準(zhǔn),使得為特定的應(yīng)用制定特殊的數(shù)據(jù)格式,在各系統(tǒng)之間傳遞結(jié)構(gòu)化數(shù)據(jù)成為可能。XML具有以下特征:
1.可擴展性強。XML的層次較高,是一種可用來“設(shè)計語言的語言”,引用范圍廣,并可隨著人們的想象空間而無限自由的擴展。
2.異構(gòu)系統(tǒng)兼容性好。借助XML,異構(gòu)系統(tǒng)之間可以方便地進行信息交流。XML格式簡單易讀,對各種類型的數(shù)據(jù)都能加以標(biāo)注。只要系統(tǒng)安裝有XML解析器,便可解讀來自其他系統(tǒng)的信息,進而加以利用。
3.網(wǎng)絡(luò)應(yīng)用靈活性強。XML格式的數(shù)據(jù)文件既能通過網(wǎng)絡(luò)傳送到其他應(yīng)用軟件、對象或中間服務(wù)器做進一步的處理,亦可由瀏覽器進行瀏覽,為靈活的分布式應(yīng)用軟件的開發(fā)提供了支持。
(二)簡單對象存取協(xié)議SOAP。SOAP以XML形式提供了一個簡單、輕量的用于在分散或分布式環(huán)境中交換結(jié)構(gòu)化和類型信息的機制。它通常將HTTP作為底層的傳輸協(xié)議,采用XML格式來封裝調(diào)用請求和回應(yīng)信息。特別適合面向?qū)ο蟮木W(wǎng)絡(luò)應(yīng)用系統(tǒng)。SOAP由四部分組成:
1.SOAP信封。它構(gòu)造定義了一個整體的表示框架,可用于表示在消息中是什么,誰應(yīng)當(dāng)處理它。
2.SOAP編碼規(guī)則。定義了一個數(shù)據(jù)的編序機制,通過這樣一個編序機制來定義應(yīng)用程序中需要使用的數(shù)據(jù)類型,并可用于交換由這些應(yīng)用程序定義的數(shù)據(jù)類型所衍生的實例。
3.SOAP RPC表示。定義了一個用于表示遠(yuǎn)端過程調(diào)用和響應(yīng)的約定。
4.SOAP綁定。定義了一個使用底層傳輸協(xié)議(如HTTPSMTP等)來完成在節(jié)點間交換SOAP消息的約定。
四、基于XML和SOAP技術(shù)的互操作模型
(一)互操作模型體系結(jié)構(gòu)。在基于Web的異種分布式對象平臺的互通中,關(guān)鍵在于雙方的異構(gòu)系統(tǒng)與SOAP報文的轉(zhuǎn)化,使得不同的分布式對象技術(shù)可以與SOAP交互通信,因此必須使不同的異構(gòu)系統(tǒng)支持SOAP,能夠與SOAP進行互相通信。為此本文提出一個基于SOAP的分布式對象遠(yuǎn)程調(diào)用系統(tǒng)模型,即以XML為數(shù)據(jù)表現(xiàn)形式,以SOAP為應(yīng)用間的通訊協(xié)議,通過對服務(wù)的統(tǒng)一描述達到共享,實現(xiàn)異構(gòu)分布式對象的互操作。
SOAP分布式調(diào)用系統(tǒng)沿用了DCOM的proxy/stub結(jié)構(gòu),在客戶端和服務(wù)器端分別增加了SOAP客戶和SOAP服務(wù)器一層,原有的調(diào)用機制發(fā)生了變化,本地內(nèi)核接收到消息后,不直接發(fā)給遠(yuǎn)程內(nèi)核,而是發(fā)往本地的SOAP客戶端,由SOAP客戶端發(fā)往遠(yuǎn)程的SOAP服務(wù)器。相對而言,COM和CORBA對象的服務(wù)器端對象會保持不變,而客戶端應(yīng)用則是千變?nèi)f化的,并且客戶程序與服務(wù)器端對象是完全獨立的。SOAP客戶端提供了相應(yīng)的API函數(shù)接口供客戶端調(diào)用,即客戶端應(yīng)用程序顯示的調(diào)用SOAP客戶端的API接口,將請求直接發(fā)往SOAP客戶端。在服務(wù)器端,SOAP服務(wù)器接到請求后,向服務(wù)器端對象發(fā)出調(diào)用請求,請求的結(jié)果直接返回到服務(wù)器端SOAP層。
(二)互操作模型的工作原理。當(dāng)客戶端的應(yīng)用程序需要從網(wǎng)絡(luò)中某個節(jié)點處獲得一定的數(shù)據(jù)或服務(wù)時,發(fā)現(xiàn)這些數(shù)據(jù)和服務(wù)可能處于一個運行著和客戶端不同的操作系統(tǒng)的服務(wù)器上,客戶端應(yīng)用程序中負(fù)責(zé)查找數(shù)據(jù)的那一部分只要通過調(diào)用SOAP客戶端提供的API函數(shù),SOAP客戶端將完成到網(wǎng)絡(luò)中查找數(shù)據(jù)源或服務(wù),并進而傳輸客戶請求、組裝應(yīng)答消息,最后將結(jié)果送回應(yīng)用程序的任務(wù)。
SOAP客戶端完成的功能包括接收客戶程序發(fā)出的調(diào)用請求,將之轉(zhuǎn)化為SOAP消息格式,并將SOAP請求消息發(fā)送到服務(wù)器端,服務(wù)器端對象執(zhí)行這個請求,再由SOAP服務(wù)器端將執(zhí)行結(jié)果返回到客戶端。即SOAP既作為一個HTTP消息,也作為一個SOAP服務(wù)器,創(chuàng)建和解開SOAP消息。
這個互操作模型有效的解決了不同類型的對象之間的互相調(diào)用的問題,客戶只要知道提供服務(wù)的對象的URI和對象接口的XML描述,就可以自由的進行遠(yuǎn)程過程調(diào)用,而無需知道對象使用什么機制實現(xiàn)的,調(diào)用方和被調(diào)用方之間是透明的。
(三)基于XML和SOAP實現(xiàn)異構(gòu)分布式對象互操作模型分析?;赬ML和SOAP實現(xiàn)異構(gòu)分布式對象互操作模型的優(yōu)點:
我們在調(diào)用各種分布式組件時,可以不受限于其特定的編程框架。具體的組件協(xié)議對用戶來說時透明的,簡化了用戶分布式組件的開發(fā)。
由于采用了標(biāo)準(zhǔn)的HTTP協(xié)議與SOAP協(xié)議,在分布對象環(huán)境中實現(xiàn)信息資源的重用、重構(gòu)和共享,實現(xiàn)面向協(xié)同應(yīng)用的相信共享與應(yīng)用互操作是低成本的,在未來的應(yīng)用中,也會產(chǎn)生相當(dāng)大的作用。
由于這種技術(shù)可以推廣到其他各種分布式組件協(xié)議上,也就是說,基于標(biāo)準(zhǔn)的XML解析,使得對各種分布式組件協(xié)議的集成成為可能。
五、結(jié)束語
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,利用網(wǎng)絡(luò)技術(shù)實現(xiàn)信息共享、管理和提
供信息服務(wù)的系統(tǒng)越來越稱為研究的熱點。本文提出了一個基于XML和
SOAP的異構(gòu)分布式對象互操作模型,一定程度上實現(xiàn)了跨平臺的組件通訊以及組件重用的思想,解決了DCOM和CORBA難以在Internet上互相調(diào)用、互相通信的局限性,解決了廣域、異構(gòu)信息的互聯(lián)、互通和互操作問題,達到消除信息孤島現(xiàn)象,以滿足各個組織信息共享需求的目標(biāo)。
參考文獻:
[1]王小非、張鴻海,海上網(wǎng)絡(luò)戰(zhàn)[M].北京:國防工業(yè)出版社,2006.
[2]曾宇、查杰民,基于Web服務(wù)的應(yīng)用程序集成的研究[J].計算機工程與設(shè)計,2006,27(2).
[3]鞠彥輝,基于Web Services技術(shù)的企業(yè)信息集成系統(tǒng)架構(gòu)研究[J].中國管理信息化,2007,10(2).
[4]夏厚德,基于SOAP協(xié)議的分布式應(yīng)用研究[J].武漢科技大學(xué)學(xué)報,2003,25(3):298-300.
作者簡介:
崔亮(1982-),漢族,江蘇南通人,理學(xué)士,助理工程師,主要研究方向:指揮自動化。