本文還示範了如何在專案中使用以上三種方法,以及各種方法所適合的應用場景。
Web 服務是一種HTTP://www.aliyun.com/zixun/aggregation/14107.html">面向服務架構的技術,通過標準的 Web 協定提供服務,目的是保證不同平臺的應用服務可以交互操作。 Web 服務(Web Service)是基於 XML 和 HTTP 通訊的一種服務,其通訊協定主要基於 SOAP,服務的描述通過 WSDL、UDDI 來發現和獲得服務的中繼資料。 這種建立在 XML 標準和 Internet 協定基礎上的 Web 服務是分散式運算的下一步發展方向,Web 服務為那些由不同資源構建的商業應用程式之間的通信和協作帶來了光明的前景,從而使它們可以彼此協作,而不受各自底層實現方案的影響。
JAX-RPC 1.0 是 JAVA 方面的 Web 服務的原始標準 , 但是由於 JAX-RPC 1.0 對 Web 服務功能的認識有一定的局限,於是 JAX-WS 2.0 應用而生。 JAX-WS 2.0 開發工作的主要目標是對各項標準進行更新,成功實現了業界對 JAX-RPC 1.X 的各種期望。 此外,JAX-WS 2.0 直接支援 XOP/MTOM,提高了系統附件傳送能力以及系統之間的互通性。
實例剖析 Web 服務性能瓶頸
通過以上簡述不難體會到,Web 服務以其 XML + HTTP 的松耦合、平臺無關的特性,集萬般寵愛于一身,必將成為未來資料共用的基礎。 但與此同時我們也應當認識到世間完事萬物均有其矛盾的兩面性:有優點,必將存在缺點,Web 服務亦是如此。 就像當初 JAVA 大行其道的時候性能成為其致命詬病一樣,Web 服務也同樣面臨性能問題,似乎「性能問題」天生就是「平臺無關」揮之不去的冤家。 但問題終歸要解決,實踐是核對總和分析問題的唯一途徑,讓我們先來創建一個簡單的 Web 服務再來審視和分析隱含其中的性能問題。
創建服務
創建服務 JAVA Bean: 首先我們創建一個盡可能簡單的書店服務 Bean,服務的內容只有一個 qryBooksByAuthor,即根據作者 (Author) 查詢其名下的書籍 (List<Book>)。
圖 1. 書店服務 Bean(BookStoreSrvBean)
服務 Input- 作者 (Author) 的實體類 :
圖 2. 作者實體類 (Author)
服務出參 Output- 書籍 (Book) 清單的實體類:
圖 3. 書籍實體類 (Book)
至此我們的服務代碼已經完成,我們不在此討論此服務的業務合理性,創建此服務的目的只是舉一個盡可能簡單的實例以分析 web 服務的性能。
下面的任務就是開發 Web 服務了,手工編寫及發佈符合規範的 Web 服務過程極為繁瑣,在此使用 IBM 的 Rational Software Architect(後面簡稱 RSA)來進行 Web 服務的伺服器端以及用戶端的開發。