WebService 介紹
一、 概要
WebService是幫助多個應用程序與平臺和編程語言之間以獨立的方式互相通信的標準化技術。它是利用標準 XML messaging(主要 SOAP) 技術,可以訪問網絡上的其他計算機的記述多種操作的軟件接口。此接口主要由 WSDL (WebService Description Language)記述,可以處理多種多樣的系統運作。
WebService面向與網絡連接的用戶中的擁有服務權限的用戶公開業務,爲此,定義了Massaging Protocal、編程標準以及用戶爲發現服務的便利環境等。
WebService支持網絡上的同構或異構系統間的對話。WebService與原有的系統之間的差異是WebService實現了標準化,各公司保證相互運營性。即,基於 XML標準技術,表現數據時,因爲不依賴於編程語言,大部分的主要軟件公司和軟件技術都支持WebService標準。因此,WebService逐漸成爲軟件集成和互操作性的核心技術。
二、 特徵
WebService有以下特徵。
● 基於SOAP, WSDL, UDDI, HTTP 等的開放型標準
● 平臺、操作系統、編程語言的獨立性
● 主要公司的廣泛、全力的支持待遇
● 保障異構系統之間的應用程序的互操作性
三、 主要 WebService 技術
構成WebService的主要技術如下。
● SOAP(Simple Object Access Protocol)
SOAP基於 HTTP或 SMTP等多種網絡標準規約,它是向網絡上的其他計算機傳送 XML文檔而定義標準Package結構的通信規約。目前的版本是1.2,已向W3C提交了管理標準。
● WSDL (WebServices Description Language)
WSDL是記述WebService的接口的基於 XML的標準WebService技術語言。 目前,IBM公司和Microsoft公司最多使用的是提交給W3C的版本 WSDL 1.1。下一代標準的 WSDL 2.0將在近期發表。
● UDDI (Universal Description, Discovery, and Integration)
UDDI以描述、搜索和集成WebService爲目的,它規定全世界範圍內可以使用的等級程序。目前的版本爲3.0,已向OASIS提交了管理標準。
WebService的最重要的優點就是具有互操作性。但是,按有關規範構建的互不相同的WebService 對象隨各公司的規範的不同,解析不同,或隨編程語言的不同,不支持一部分功能,因此,實際上,異構系統間的互操作性不得到保障。
爲了解決這個問題,組成了WebService互操作能力組織(WebServices Interoperability Organization, 以下稱 WS-I)。此後WS-I爲了保障互操作,對於互操作上存在的問題的規約的要求更嚴格,或者不支持存在問題的規約等,將具體的方法編輯成Profile,並要求對其嚴格遵守。
目前,在WS-I裏所發表的最終Profile是 Basic Profile 1.1版本和 Attachments Profile 1.0版本。
l Basic Profile
定義利用SOAP messaging和 WSDL定義構建WebService時需要遵守的規則的標準。
l Attachments Profile
定義在WebService裏使用附件時需要遵守的規則的標準。
四、 爲實現 WebService 信息包的 SOAP
SOAP是規定在WebService裏傳送信息的數據形式的標準。SOAP信息由 SOAP Envelope 裏的SOAP Header和 SOAP Body裏的 XML 文本構成,根據支持附件的SOAP with Attachments規格,在 SOAP Message裏,可以分爲多個部分,其中擁有text/xml contents類型的第一個 MIME部分成爲SOAP Envelope,其餘的成爲附件。
SOAP標準不僅規定了信息結構,還規定了指定HTTP Protocol裏的SOAP Message的使用、Message路徑(初期發送者、中介者、最終目的地等)的方法。
五、 定義 WebService 接口的 WSDL
WSDL是 WebService Definition Language的縮寫,用編程語言來形容的話,它是WebService的接口。
編程語言的接口表示與接口類型一起支持的函數的 Signature(函數名、參數和類型、返回值)。 WSDL支持這些功能。
六、 WSDL SOAP 綁定
WebService裏可以使用的幾個協議綁定中使用最多的是 SOAP綁定。 指定SOAP綁定之前,需要指定WSDL的綁定要素中的SOAP協議的有關詳細信息。
以下是指定SOAP綁定的WSDL文檔的綁定描述的示例
<binding name="DeliveryBinding" type="tns:DeliveryVendorPT">
<soap:binding style="document"
xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="requestDelivery">
<soap:operation soapAction="urn:com.Tmax
Soft.probus.demo.DeliveryVendor:requestDelivery"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="SystemError">
<soap:fault name="SystemError" use="literal"/>
</fault>
</operation> </binding>