webService學習2----webService概述

 

一.Webservice概述java

       A.Webservice是什麼?web

     Web Services 是一種構建應用程序的普通模型,並能在全部支持Internet通信的操做系統上實施運行。Web Services 令基於組件的開發和 Web 的結合達到最佳,基於組件的對象模型,如:Distributed Component Object Model(DCOM)、Remote Method Invocation(RMI),Internet Inter-Orb Protocol(IIOP)都已經發布了很長時間了,可是這些模型都依賴於特殊對象模型協議,而 Web Services 利用 SOAP 和 XML。對這些模型在通信方面做了進一步的擴展以消除特殊對象模型的障礙。Web Services 主要利用 HTTP 和 SOAP 協議使商業數據在 Web 上傳輸,SOAP經過 HTTP 調用商業對象執行遠程功能調用,Web 用戶可以使用 SOAP 和 HTTP經過 Web 調用的方法來調用遠程對象。apache

      B.Webservice實現框架及工做原理。編程

      Webservice是SOA的一個標準實現,目前比較流行的Webservice實現框架有Xfire,Axis等,webservice用WSDL來描述接口,用SOAP來規範基於HTTP協議傳輸的數據格式,由於SOAP是基於XML的,XML有具備跨平臺跨語言的特性,再加上HTTP協議能穿越防火牆,因此Webservice的具備跨平臺跨語言的特性。服務器

      C.JAVA中的Web服務規範:框架

      JAVA 中共有三種WebService 規範,分別是JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS。編程語言

下面來分別簡要的介紹一下這三個規範。學習

(1.)JAX-WS:編碼

JAX-WS(Java API For XML-WebService),JDK1.6 自帶的版本爲JAX-WS2.1,其底層支持爲JAXB。早期的基於SOAP 的JAVA 的Web 服務規範JAX-RPC(Java API ForXML-Remote Procedure Call)目前已經被JAX-WS 規範取代,JAX-WS 是JAX-RPC 的演進版本,但JAX-WS 並不徹底向後兼容JAX-RPC,兩者最大的區別就是RPC/encoded 樣式的WSDL,JAX-WS 已經不提供這種支持。JAX-RPC 的API 從JAVA EE5 開始已經移除,若是你使用J2EE1.4,其API 位於javax.xml.rpc.*包。JAX-WS(JSR 224)規範的API 位於javax.xml.ws.*包,其中大部分都是註解,提供API 操做Web 服務(一般在客戶端使用的較多,因爲客戶端能夠藉助SDK 生成,所以這個包中的API 咱們較少會直接使用)。WS-MetaData(JSR 181)是JAX-WS 的依賴規範,其API 位於javax.jws.*包,使用註解配置公開的Web 服務的相關信息和配置SOAP 消息的相關信息。spa

(2.)JAXM&SAAJ:

JAXM(JAVA API For XML Message)主要定義了包含了發送和接收消息所需的API,至關於Web 服務的服務器端,其API 位於javax.messaging.*包,它是JAVA EE 的可選包,所以你須要單獨下載。SAAJ(SOAP With Attachment API For Java,JSR 67)是與JAXM 搭配使用的API,爲構建SOAP 包和解析SOAP 包提供了重要的支持,支持附件傳輸,它在服務器端、客戶端都須要使用。這裏還要提到的是SAAJ 規範,其API 位於javax.xml.soap.*包。JAXM&SAAJ 與JAX-WS 都是基於SOAP 的Web 服務,相比之下JAXM&SAAJ 暴漏了SOAP更多的底層細節,編碼比較麻煩,而JAX-WS 更加抽象,隱藏了更多的細節,更加面向對象,實現起來你基本上不須要關心SOAP 的任何細節。那麼若是你想控制SOAP 消息的更多細節,可使用JAXM&SAAJ,目前版本爲1.3。

(3.)JAX-RS:

JAX-RS 是JAVA 針對REST(Representation State Transfer)風格制定的一套Web 服務規範,因爲推出的較晚,該規範(JSR 311,目前JAX-RS 的版本爲1.0)並未隨JDK1.6 一塊兒發行,你須要到JCP 上單獨下載JAX-RS 規範的接口,其API 位於javax.ws.rs.*包。這裏的JAX-WS 和JAX-RS 規範咱們採用Apache CXF 做爲實現,CXF 是Objectweb Celtix和Codehaus XFire 合併而成。CXF 的核心是org.apache.cxf.Bus(總線),相似於Spring 的ApplicationContext,Bus 由BusFactory 建立,默認是SpringBusFactory 類,可見默認CXF是依賴於Spring 的,Bus 都有一個ID,默認的BUS 的ID 是cxf。你要注意的是Apache CXF2.2 的發行包中的jar 你若是直接所有放到lib 目錄,那麼你必須使用JDK1.6,不然會報JAX-WS 版本不一致的問題。對於JAXM&SAAJ 規範咱們採用JDK 中自帶的默認實現。

二.Webservice相關名詞

       AOP: 面向服務的體系結構(Service-Oriented Architecture,SOA)是一個組件模型,它將應用程序的不一樣功能單元(稱爲服務)經過這些服務之間定義良好的接口和契約聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操做系統和 編程語言。這使得構建在各類這樣的系統中的服務能夠一種統一和通用的方式進行交互。WebService是AOP實現的一種方式。CORBA 是另外一種方式。

    SOAP:(Simple Object Access Protocol),簡單對象訪問協議。詳細內容請閱讀SOAP協議初級指南(1--9)。

    WSDL:webservice描述語言(webService Description Language),詳細內容請閱讀webservice學習1----WSDL。

    XML: Extensible Markup Language,可擴展標記語言,內容詳情請閱讀xml相關內容。

相關文章
相關標籤/搜索