如今,web services 是一門流行的實現面向服務應用的技術。J2EE已經成為一個流行的用來部署web services 應用的平台。並且,J2EE1.4制定了在Java平台上建立和部署web services應用的標準。
在這篇文章中,我將說明如何在實現了J2EE1.4規範的應用伺服器之間,比如Oracle Application Server 10g,使用J2EE1.4建立可互操作的,輕便靈活的服務。
Web Services 架構
在深入研究J2EE平台上web services的開發和部署的細節之前,讓我們先簡要的查看一下web service 的架構。
Web services 有很多種定義,但是簡而言之,web services 是能夠通過網路被發布,發現和調用的 獨立的,自我描述的組件。如圖1所示,一個web service可能會執行一個簡單的功能,比如核算銀行存款 記錄,也可能會是一個橫跨多個商業過程的複雜的任務。
圖1. 一個web service 是如何工作的
有兩種與web services 互動的方法:RPC類型和文件類型。最初,RPC類型的web services在工業界很 流行,但是最近幾年它已經被文件類型的web services所超越,後者被認為是在web services中交換資訊 的首選方法。
RPC類型的web services提出將資料交換類比成遠端程序呼叫(RPC)。這在商業應用中是很常見的。對 於遠程調用和其傳回值,讓相互交換的訊息都遵照一個明確定義的準則。與之相反,文件類型的web services類比XML文檔的交換,交換模式由發送和接收應用程式共同定義。文件類型的服務更能適應需要 交換商業或其他類型文檔的應用程式,而且不同於RPC類型的web services,發送方不需要期望或等待一 個即時的響應。
大多數開發人員一定會同意:web services是一種有效實現SOA的技術,因為它提供了不同平台之間的 互通性,以及依賴於XML,SOAP和HTTP等的輕量級的技術。
平台獨立性和技術實現性是web services普及的主要原因。用戶端不必瞭解相關技術的實現,而只需 簡單地通過網路調用服務就可以了。例如,即使你使用Java/J2EE 技術建立了一個服務並且部署在一個 J2EE伺服器上,比如Oracle Application Server Container for J2EE(OC4J),用戶端也可以使用微軟的 .NET架構建立。
既然我們已經對web services有了基本的瞭解,就讓我們關注一下構成web service的基本元素吧。