# Web服務
Web服務是一種服務導向架構的技術,通過標準的Web協議提供服務,目的是保證不同平臺的應用服務可以互操作。
根據W3C的定義,Web服務(Web service)應當是一個軟件系統,用以支持網絡間不同機器的互動操作。網絡服務通常是許多應用程序接口(API)所組成的,它們透過網絡,例如國際互聯網(Internet)的遠程服務器端,執行客戶所提交服務的請求。
盡管W3C的定義涵蓋諸多相異且無法介分的系統,不過通常我們指有關于主從式架構(Client-server)之間根據SOAP協議進行傳遞XML格式消息。無論定義還是實現,WEB服務過程中會由服務器提供一個機器可讀的描述(通常基于WSDL)以辨識服務器所提供的WEB服務。另外,雖然WSDL不是SOAP服務端點的必要條件,但目前基于Java的主流WEB服務開發框架往往需要WSDL實現客戶端的源代碼生成。一些工業標準化組織,比如WS-I,就在WEB服務定義中強制包含SOAP和WSDL。
WEB服務實際上是一組工具,并有多種不同的方法調用之。三種最普遍的手段是:
* 遠程過程調用(RPC)
* 面向服務架構(SOA)
* 表述性狀態轉移(REST)。
## 10.1 SOAP VS RESTful
簡單對象訪問協議是交換數據的一種協議規范,使用在計算機網絡Web服務中,交換帶結構信息。SOAP為了簡化網頁服務器從XML數據庫中提取數據時,節省去格式化頁面時間,以及不同應用程序之間按照HTTP通信協議,遵從XML格式執行資料互換,使其抽象于語言實現、平臺和硬件。