背景 INTERNET經過近十年的迅猛發展,至少在兩個方面發生了變化。第一是規模上急劇膨脹,而且積累了大量的信息資源;第二是它己經從當初的信息發布平台發展為信息交換平台。這兩個變化導致將INTERNET的巨大資源集成到傳統的信息處理系統的需求。但是以HTTP和HTML為主要手段的INTERNET技術卻不能滿足這種集成需求。分散式Web技術正是為滿足這種集成需求而發展起來的新的INTERNET技術。
傳統WPh技術是以HTTP和HTML技術為核心的。在當前的形式下,HTTP技術和HTML技術都己經不能滿足上述的集成的需求,這主要表現在如卜幾點:
(1) 作為數據傳送協定,HTTP缺乏模組化,HTTP當初設計時主要是為了傳送文檔的,它沒有清楚地分離文檔傳送的相關的三個層次:訊息傳輸,遠程方法激活(RMI)和用於文檔處理的方法(如表格處理和搜尋)。HTTP這種設計完全可以滿足傳送文檔的需求,但是在要求把Web作為一個集成平台的情況下,就顯得力不從心了。
(2) 作為數據傳送格式,HTML缺乏模組化,HTML文檔把數據和數據表現混合在一起,在要求集成WEB的需求下,這種方式使得應用程式處理數據複雜化,同時也浪費了一定的網路頻寬。
(3) 作為數據表示格式,HTML顯得過於簡單,HTML是一種標籤語言,但是它的標籤是不能擴展的,同時HTML缺乏實際的套用語義,因此它不能表示結構化的數據。
結構 不論是理想主義的分散式Web技術,還是實際主義的分散式Web技術,都可以把它們分為三層:訊息傳送層,遠程方法激活層和分散式服務層。下面以實際主義的分散式Web技術為例來說明這三個層次:
(1) 訊息傳送層:主要採用HTTP、 HTTPS、SMTP協定完成訊息傳送,但是它們傳送的不再是HTML或MIME文檔,而是基於XML的結構化文檔;
(2) 遠程方法激活層:描述遠程Web站點提供的服務接口,提供激活遠程Web站點上服務的方法;
(3) 分散式服務層:基於遠程方法激活,向套用層提供各種分散式服務,如訊息服務、ORB服務、事件服務、發現服務、目錄服務等。
套用 XML技術在分散式Web中的套用
XML技術在分散式Web中的套用主要在遠程方法激活層。這一層處於訊息傳送層和套用接口層之間,它主要通過XML技術在HTTP、SMTP等協定基礎上構建平台無關的遠程方法激活。這裡主要需要完成下面幾項工作:
(1) 接口描述協定:描述Web站點提供的服務接口,這種描述主要用於應用程式對Web站點服務的集成;
(2) 結構化數據交換協定:用於描述遠程方法調用請求和WPb站點對方法調用的回響;
由於XML技術便於表示結構化數據,同時又方便HTTP、SMTP等協定傳送,所以在遠程方法激活層的各種協定一般都採用基於XML的協定。下面分別介紹幾種接口描述協定和數據交換協定中的XML技術。
接口描述協定 主要的接口描述協定有WIDL( Web Interface Description Language)和WSDL ( Web Service Description Language)等,WIDL是由WebMethode公司在實際套用中提出,並提交給W3C。WSDL是在SDL基礎上發展起來,是由Ariba、IBM、Microsoft等共同制定的接口描述標準。這兩種協定都是基於XML的,圖1是兩種協定的比較。
圖1 從WIDL和WSDL的設計目的,就很容易理解兩者的差異。WIDL主要是用於Web自動化,設計它的目的是為了方便將己有基於HTTP請求和HTML文檔回響的Web請求回響集成到非瀏覽器套用中,所以它的接口層次和數據類型都很簡單。而WSDL的設計目的是為了描述基於Web的服務,這種服務主要是企業提供的和電子商務相關的服務,這種服務木身是有層次的,其最底層的接口也是比較複雜的,所以WSDL定義了多層次服務描述,並支持豐富的數據類型。
數據交換協定 在分散式Web的遠程方法激活中的數據交換協定主要是將對遠程方法的調用請求和請求的參數,請求的回響以結構化的方式傳送的協定。這種協定主要有:XML_RPC、SOAP、WDDX、ebXML、BizTalk。
XML_RPC是UserLand公司向W3C提交的用XML描述RPC請求和回響的協定,SOAP是在XML_RPC基礎上由IBM、Microsoft、Ariba、Commerce One、UserLand等共同制定的W3C的Notes,WDDX是由Alliare(開發ColdFusion的公司)提出的交換結構化數據的協定,實際上它並不能作為RMI中的交換協定,因為它沒有定義遠程過程調用標籤,這裡只是把它作為一種普通的XML數據交換協定加以介紹。ebXML和BizTalk則是兩種電子商務交易規範,實際上它們定義己經超出了這裡所說的數據交換協定的範圍。