2006 年將是 Java Web 服務發展的關鍵之年。第三代框架即將登場,提供更好的 doc/lit SOAP 支援與性能提升;第四代 WS-* 標準形成可互操作層,擴展 SOAP 和 WSDL 以滿足企業核心需求。本系列將探討當前狀態與即將到來的變化。
SOAP 1.0 發布已超過六年。SOAP 承諾標準化 XML 訊息交換並提供擴展鉤子。WSDL 緊隨其後,提供服務元數據標準表示。大廠商迅速擁抱 SOAP+WSDL,似成不可阻擋趨勢。
早期強調 rpc/encoded 風格,雖易用但產生難以處理的 XML,且跨平台實現不兼容。最佳實踐轉向 document/literal (doc/lit),由 XML Schema 定義訊息格式,理論上消除互操作問題。但複雜的 W3C Schema 支持程度參差不齊,框架支持不同子集且未列出缺失特性,導致新互操作問題。企業/行業標準 Schema 常使用框架難以支援的特性。
SOAP 設計允許添加擴展層(安全、事務等),但需行業協作標準化。即使基本擴展(附件、安全)也耗時多年仍未被所有框架支援。
REST 作為 HTTP 協議規範化技術,實際常指無 SOAP 包裝的 XML over HTTP。REST 限於 HTTP 傳輸,無內建擴展機制,但開發者無需框架代碼,直接處理 HTTP/XML,選擇空間更大。許多簡單應用轉向 REST,但企業級應用仍需 SOAP 的傳輸獨立性與基礎設施擴展(安全、事務、協作)。
新框架旨在發掘 SOAP 潛能,大幅提升 doc/lit 互操作性,使全新 SOAP 應用成為現實。
微軟 Windows Communication Foundation (WCF,代號 Indigo) 將替代舊 .NET 框架。微軟桌面統治地位意味著其支持的技術成為行業標準。WCF 整合 XOP/MTOM、WS-Addressing、WS-Trust、WS-SecureConversation、WS-ReliableMessaging、WS-Coordination、WS-AtomicTransaction、WS-Policy 等企業級標準。2005 年 11 月 WCF 互操作性大會展示主要 SOAP 框架(含 Java 方案),早期測試雖有限但方向明確:WCF 技術將成下一代 SOAP 核心。
JAX-RPC 1.0 為早期 Java 標準,侷限於 rpc/enc 且 Schema 支持弱。JAX-RPC 2.0 更名為 JAX-WS 2.0,目標:更新標準支援 Java 5 特性(Annotation、泛型)、改進訊息傳遞(異步、非 HTTP 傳輸)、以 JAXB 2.0 替換內建綁定以增強 Schema 支持。JAX-WS 2.0 提供有限 REST 支持,大量使用 Java 5 特性,預計 2006 中期發布。JAX-WS 2.0 和 JAXB 2.0 將捆綁進 J2SE,避免框架打包但帶來版本控制難題。
Sun 承諾開發 WCF 其他技術的 Java 開源實現,作為 GlassFish 專案一部分,2006 中期可見成果。
Apache Axis 為最廣泛使用的 Java SOAP 平台,但基於 JAX-RPC 1.0 架構靈活性受限。Axis2 重寫為輕量 SOAP 處理引擎,不綁定特定 API(計劃以包裝形式支援 JAX-WS 2.0)。核心特性:
Axis2 架構以模組形式擴展:WS-Addressing、WS-Security 內建;Sandesha 實現 WS-ReliableMessaging;WSS4J 實現 WS-Trust/WS-SecureConversation;Kandula 實現 WS-AtomicTransaction/WS-Coordination。
JibxSoap(基於 JiBX,性能接近 Java RMI)、XFire(可選數據綁定,性能優異)等開源專案亦在快速發展,可能 2006 年投產。
本文概覽 2006 年 Java Web 服務發展。後續文章將深入分析 Axis2 架構與 AXIOM、XOP/MTOM 附件支援、數據綁定選項與性能、其他框架詳情。敬請關注。