Web Service 是什麼?

早年的資料交換使用 RPC 技術
缺點是每個產品都是特定的軟體
要麼耦合特定系統,要麼格式不一樣,不能互通
隨著網際網路的普及,找到了解決方案
使用 Web 協定提供服務,就不用仰賴第三方軟體
只要透過 URL 取得網路上的服務

當然現在 Web Service 也淪為舊的技術了(2000-2010)
當今主流的 Web API 更為靈活自由
不過在 SAP 系統仍常見 Web Service 的蹤影

核心元素:

  • SOAP:是基於 HTTP 之上的一種通訊協定,訊息內容是 XML 格式
  • WSDL:協助用戶端與伺服器整合的文件
  • Disco:Web Service 的搜尋引擎
  • UDDI:Web Service 的註冊資料庫

運作方式:

  1. Provider 開發部署 Web Service
  2. Provider 產出 WSDL 文件
  3. Provider 向 Broker(UDDI 資料庫)發布 Web Service
  4. Consumer 向 Broker(UDDI 資料庫)搜尋 Web Service
  5. Consumer 依據 WSDL 文件產生客戶端程式
  6. 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
name
targetNamespace
xmlns




name
name
name
type
name
serviceType
xmlns
name
type
name
parameterOrder


name
message
name
message
name
message
name
binding
location

使用 Eclipse 用 WSDL 產生 Web Service 客戶端

對專案右鍵 New

選擇 Other

選擇 Web Service Client → Next

在 Service definition 輸入 WSDL 的 URL
旁邊的拖拉條選至 Develop client
最後 Finish

專案會出現新的 package 與 class
讓客戶端呼叫使用