SOAP技術與B2B應用集成(5)

SOAP技術與B2B應用集成(5

本文最初由 IBM developerWorks 中國網站發表,其網址是
http://www.ibm.com/developerWorks/cn/

SOAP技術總結及其在InterOP Stack中的作用

在先前的系列文章中,已經系統地介紹了SOAP技術的各個組成部分:SOAP MessageSOAP EnvelopeSOAP EncodingSOAP RPC Presentation等。在這裏,我就各個組成部分的協作和功能作一個總結。並就各個部分在B2B應用中的地位加以闡述。在本文的第二部分,將概述InterOP Stack整個技術體系與SOAP的關係及其協同,使大家能瞭解SOAP在整個體系中的功能及應用。在SOAP技術與B2B應用集成系列之後的文章系列中,我將會介紹WSDLUDDI,到時候大家就能對整個InterOP Stack中各項技術的協作有一個更全面,更清楚的認識,並進一步認識到SOAP技術的重要性。

SOAP技術總結

SOAP Message(SOAP消息)是用於傳輸應用入口調用信息的承載體,尤其是B2B應用調用。從根本上來看,SOAP Message是從發送方到接受方的一種傳輸方法。在B2B應用中,SOAP消息是B2B應用調用信息的基本承載體。

SOAP Envelope(SOAP信封)用於描述SOAP Message的結構,定義了一個以SOAP HeaderSOAP Body爲子主體的描述結構。SOAP EnvelopeSOAP Message的信息框架。在B2B應用中,SOAP EnvelopeB2B應用調用信息提供了一個基本的信息描述框架。

SOAP Header提供了一個可伸縮的機制用於在分散的模塊化擴展SOAP消息,而通訊雙方並不需要有預先的約定知識。在B2B應用中的典型的擴展例子可以是實現一些諸如認證、事務管理以及支付的Header條目。

SOAP Body元素提供一個簡單的用於與消息的最終接收者交換必須處理的信息的機制。在SOAP Body中可以描述應用入口調用和響應的各種數據信息。在B2B應用中,Body元素的應用可以是B2B應用調用請求信息(如產品ID、產品數量等)和響應信息(如訂單號、訂單履行日期)及錯誤信息(如產品庫存不夠等)

SOAP Encoding(SOAP遍序方法)是基於一個簡單類型系統,而這個系統是程序語言、數據庫和半結構數據中類型系統的公共特性的泛化。默認的SOAP Encoding定義和XML Schema是相容的,基本一致的。SOAP Encoding使類似整數(integer)、字符串(string)、數組(array)、結構(struct)等數據類型得以在SOAP消息的表示。SOAP EncodingSOAP HeaderSOAP Body中的數據表示提供了默認的方式,當然你也可以使用其他任意基於XML Schema的型/值描述系統。

SOAP RPC Presentation(SOAP RPC表示)是一個用於表示遠端過程調用和響應的約定,利用XML的可擴展性和可伸縮性來包裝和交換RPC調用。目前通過綁定各種已有的Internet協議,譬如HTTPSMTPPOP3等,利用這些協議的調用響應機制,完成SOAP的調用和響應。具體地說,SOAP消息會作爲這些協議的正文被髮送。也就是說將SOAP協議包上了一個HTTP的外殼,在HTTP Network裏面傳輸,當然SMTPPOP3也是同樣。SOAP RPC Presentation是最終面向傳輸的綁定機制。

各個組件協作的組成可以參閱下圖:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />image002.gif

SOAP技術在InterOP Stack體系中的作用和地位

如果把B2B應用利用InterOP Stack技術進行交互與程序員使用編程技術和資源進行應用開發相對比的話(儘管不是非常貼切)SOAP就是各種編程語言中提供調用函數,調用服務,調用外部應用的標準調用方法和聯編技術。WSDL就是使程序員理解調用界面的界面描述,即開發手冊和參考手冊。而UDDI則包含了函數、服務資源庫,資源檢索引擎等。

對於開發人員而言,他的流程一般是,通過UDDI OperatorUDDI Search EngineWeb界面在UDDI Registry(Public的或PrivateUDDI Registry)上找到需要的Web Service,然後在UDDI Registry內,或通過UDDI Registry中的連接找到該Web Service的調用規範,該調用規範一般是使用WSDL描述,當然按照InterOP Stack系列技術的一貫慣例,該規範也可以使用任意另外一種相容的技術規範來描述。開發人員可以使用開發工具或通過手動方式理解該調用規範,然後在自己的應用中加上該調用規範定義的Web Service調用。然後開發出的應用就可以通過SOAP來調用該指定的Web Service了。

而對於具有自動集成相關應用的服務(Service)或應用(Application),它的流程一般是,應用戶需求通過SOAP協議訪問UDDI OperatorUDDI Registry找到需要的Web ServiceUDDI OperatorUDDI Registry會通過SOAP協議響應Web Service的調用規範和調用規範的鏈接,應用程序得到使用WSDL描述的服務調用規範文本,通過解析該描述文本,自動生成本地調用接口綁定,並將所需的調用參數適當綁定並完成調用。

我們來考察一下這兩種流程,第一種需要人去閱讀WSDL文本,相對而言對開發人員要求比較高,而且造成不必要的麻煩,因爲WSDL本來就是給計算機來閱讀的。而第二種流程中,由應用來自動完成參數的綁定,這對應用程序的AI要求又過高了。因此建議在實施Web Service架構,使用InterOP Stack技術的時候,應當使用開發工具完成WSDL語言的解析並生成具體開發語言中的調用界面,比如VB中的RPC類型的InterfaceJava中的方法形式的Interface等等。最後由開發人員來完成參數的綁定。

image004.gif

從上面的分析中我們可以發現,SOAP是整個體系的基礎,是服務調用的基本協議。因此一個SOAP消息的傳輸網絡對於Web Service體系的有效建設是多麼必要。

結語

SOAP技術與B2B應用集成的系列文章到這裏就告一段落了,希望大家通過閱讀本系列的文章對SOAP技術能有一個全面的認識,我將在以後的文章中介紹Web Service的另一個基礎技術WSDL,以及Web Service的協作註冊技術UDDI。希望大家能通過本專欄對Web Service/InterOP Stack這一今天的新興技術,明天的主流技術有一個全面的認識。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章