Web 服務是基於網絡(特別是 Internet)的分布式計算模型,通過標準協議實現跨語言、跨平台的業務邏輯調用。JBuilder 9 提供完整的 Web 服務開發工具鏈。本文系統闡述 Web 服務架構、四大核心標準(SOAP/WSDL/UDDI/WSIL)與 JAX-RPC 開發模型。
Web 服務架構與三大角色
- 服務提供者:創建並發布服務
- 服務請求者:發現並調用服務
- 服務代理者:註冊中心,提供發布/查找/綁定中介
交互流程:提供者→發布→代理者;請求者→查找→代理者;請求者→綁定調用→提供者。
四大核心標準深度解析
1. SOAP (Simple Object Access Protocol)
- 基於 XML 的消息封裝協議,獨立於傳輸層(常跑在 HTTP 上)
- 消息結構:
Envelope(根)→ Header(路由/元數據,可選)+ Body(實際業務載荷,可選)
- 單向消息模型,可組合成請求-響應模式
- 規範定義格式與 HTTP 綁定,不限定業務語義
POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
SOAPAction: "urn:stock-quote-services"
BORL
2. WSDL (Web Services Description Language)
- XML 格式服務契約:定義操作、消息格式、綁定協議、服務端點
- 客戶端通過 WSDL 獲知:有哪些方法、參數類型、如何調用
- 關鍵元素:
types、message、portType、binding、service
3. UDDI (Universal Description, Discovery, and Integration)
- 分布式服務註冊表標準,「服務黃頁」
- 三層分類:白頁(基本信息)、黃頁(行業分類)、綠頁(技術接入詳情)
- 服務發布後註冊 UDDI,消費者可發現並獲取 WSDL
4. WSIL (Web Services Inspection Language)
- 輕量級發現機制,去中心化分布模型
- WSIL 文檔聚合多個服務描述引用,部署在提供者站點
- 適合企業內部或輕量級發現場景
JAX-RPC:Java 開發 Web 服務的標準 API
- 定義 Java 語言對 Web 服務的調用映射
- 底層使用 SOAP over HTTP 傳輸
- 客戶端 Stub:本地代理,屏蔽遠程通信細節
- 服務端 Tie:接收請求、解碼、分派到實現類、編碼響應
- 支持 Java 與非 Java 客戶端互操作
// 客戶端調用如同本地方法
StockQuoteService service = new StockQuoteService_Impl();
StockQuote port = service.getStockQuotePort();
String quote = port.getQuote("BORL");
JBuilder 9 開發工作流
- 創建 Web 服務項目/模塊
- 編寫服務實現類(EJB/POJO)
- 一鍵生成 WSDL、部署描述符
- 發布至應用服務器(自帶/外部)
- 生成客戶端 Stub 代碼
- 編寫客戶端應用調用
- 可選:註冊至 UDDI 註冊中心
最佳實踐提示
- 優先使用
document/literal 風格,互操作性最佳
- 設計粗粒度接口,減少網絡往返
- 善用 Handler 鏈處理安全、日志、事務等橫切關注點
- 版本管理:命名空間包含版本號,避免破壞性變更