早年的資料交換使用 RPC 技術
缺點是每個產品都是特定的軟體
要麼耦合特定系統,要麼格式不一樣,不能互通
隨著網際網路的普及,找到了解決方案
使用 Web 協定提供服務,就不用仰賴第三方軟體
只要透過 URL 取得網路上的服務
當然現在 Web Service 也淪為舊的技術了(2000-2010)
當今主流的 Web API 更為靈活自由
不過在 SAP 系統仍常見 Web Service 的蹤影
核心元素:
- SOAP:是基於 HTTP 之上的一種通訊協定,訊息內容是 XML 格式
- WSDL:協助用戶端與伺服器整合的文件
- Disco:Web Service 的搜尋引擎
- UDDI:Web Service 的註冊資料庫
運作方式:
- Provider 開發部署 Web Service
- Provider 產出 WSDL 文件
- Provider 向 Broker(UDDI 資料庫)發布 Web Service
- Consumer 向 Broker(UDDI 資料庫)搜尋 Web Service
- Consumer 依據 WSDL 文件產生客戶端程式
- Consumer 使用 Web Service
WSDL (Web Services Description Language) 是什麼?
關於 Web Service 的位置、功能與呼叫等細節
如果沒有一套規範標準,會造成 Client 與 Server 溝通困難
WSDL 就是用來描述 Web Service 的一門語言
相當於 Web Service 的「自我介紹」
而且它是機器可處理的 XML 格式
因此透過開發工具可以產生 Web Service 的 WSDL 文件
也能以 WSDL 文件產生 Client 端程式碼
開發順序有兩種:
Contract Last:先建構程式再產生 WSDL
Contract First:先建構 WSDL 再產生程式
詳細標籤說明:http://staff.ustc.edu.cn/~shizhu/DotNet/WSDLxj.htm
Parent Elements | Attributes | Children Elements |
---|---|---|
<definitions> | name targetNamespace xmlns | <types> <message> <portType> <binding> <service> |
<types> | – | <xsd:schema> |
<message> | name | <part> |
<portType> | name | <operation> |
<binding> | name type | <operation> |
<service> | name serviceType | <port> |
<xsd:schema> | xmlns | <xsd:simpleType> <xsd:complexType> |
<part> | name type | – |
<operation> | name parameterOrder | <input> <output> <fault> |
<input> | name message | – |
<output> | name message | – |
<fault> | name message | – |
<port> | name binding | <soap:address> |
<soap:address> | location | – |
使用 Eclipse 用 WSDL 產生 Web Service 客戶端
對專案右鍵 New
選擇 Other
選擇 Web Service Client → Next
在 Service definition 輸入 WSDL 的 URL
旁邊的拖拉條選至 Develop client
最後 Finish
專案會出現新的 package 與 class
讓客戶端呼叫使用