1.Web services 使用 XML 來編解碼數據,並使用 SOAP 來傳輸數據html
2.基礎的 Web Services 平臺是 XML + HTTP。web
經過SOAP在Web上提供的軟件服務,使用WSDL文件進行說明,並經過UDDI進行註冊。編程
WSDL 是基於 XML 的用於描述 Web Services 以及如何訪問 Web Services 的語言。api
UDDI 是一種目錄服務,經過它,企業可註冊並搜索 Web services。網絡
Web服務的體系結構是基於Web服務提供者、Web服務請求者、Web服務中介者三個角色和發佈、發現、綁定三個動做構建的。編程語言
Web service的體系結構函數
實現一個完整的Web服務包括如下步驟:url
◆ Web服務提供者設計實現Web服務,並將調試正確後的Web服務經過Web服務中介者發佈,並在UDDI註冊中心註冊; (發佈)spa
◆ Web服務請求者向Web服務中介者請求特定的服務,中介者根據請求查詢UDDI註冊中心,爲請求者尋找知足請求的服務; (發現)設計
◆ Web服務中介者向Web服務請求者返回知足條件的Web服務描述信息,該描述信息用WSDL寫成,各類支持Web服務的機器都能閱讀;(發現)
◆ 利用從Web服務中介者返回的描述信息生成相應的SOAP消息,發送給Web服務提供者,以實現Web服務的調用;(綁定)
◆ Web服務提供者按SOAP消息執行相應的Web服務,並將服務結果返回給Web服務請求者。(綁定)
SOAP 構建模塊
一條 SOAP 消息就是一個普通的 XML 文檔,包含下列元素:
◆必需的 Envelope 元素,可把此 XML 文檔標識爲一條 SOAP 消息
◆可選的 Header 元素,包含頭部信息
◆必需的 Body 元素,包含全部的調用和響應信息
◆可選的Fault 元素,提供有關在處理此消息所發生錯誤的信息
WSDL 文檔結構
WSDL 文檔是利用這些主要的元素來描述某個web service 的:
元素 | 定義 |
<portType> | web service 執行的操做 |
<message> | web service 使用的消息 |
<types> | web service使用的數據類型 |
<binding> | web service 使用的通訊協議 |
WSDL 端口
<portType> 元素是最重要的 WSDL 元素。它可描述一個web service、可被執行的操做,以及相關的消息。 能夠把<portType> 元素比做傳統編程語言中的一個函數庫(或一個模塊、或一個類)。
WSDL 消息
<message> 元素定義一個操做的數據元素。每一個消息均由一個或多個部件組成。能夠把這些部件比做傳統編程語言中一個函數調用的參數。
WSDL types
<types> 元素定義 web service 使用的數據類型。 爲了最大程度的平臺中立性,WSDL 使用XML Schema 語法來定義數據類型。
WSDL Bindings
<binding> 元素爲每一個端口定義消息格式和協議細節
如何調用Web Services ?
客戶端:取得服務端的服務描述文件WSDL,解析該文件的內容,瞭解服務端的服務信息,以及調用方式。根據須要,生成恰當的SOAP請求消息(指定調用的方法,已經調用的參數),發往服務端。等待服務端返回的SOAP迴應消息,解析獲得返回值。
服務端:生成服務描述文件,以供客戶端獲取。接收客戶端發來的SOAP請求消息,解析其中的方法調用和參數格式。根據WSDL和WSML的描述,調用相應的COM對象來完成指定功能,並把返回值放入SOAP迴應消息返回給用戶。
高層接口
使用高層接口,不須要知道SOAP和XML的任何信息,就能夠生成和使用一個WebService。Soap Toolkit 2.0經過提供兩個COM對象――SoapClient和SoapServer,來完成這些功能。
在客戶端,只須要生成一個SoapClient實例,並用WSDL做爲參數來調用其中的mssoapinit方法。SoapClient對象會自動解析WSDL文件,並在內部生成全部Web Service的方法和參數信息。以後,你就能夠像調用IDispatch接口裏的方法同樣,調用裏面全部的方法。在VB或是腳本語言裏,你甚至能夠直接在SoapClient對象名後面直接加上.方法(參數?)進行調用。
參考文獻: