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