(一)Web Service——基本概念
1.1 什么是web服務
這里列舉一些常見的web服務:
手機淘寶、京東….
天氣預報
手機號歸屬地
股票查詢
發手機短消息
手機充值功能
中英文翻譯
銀行轉賬業務
公司的“進銷存系統”在某商品缺貨時自動給供應商下訂單
1.2 簡介
(1) webservice 即web服務,它是一種跨編程語言和跨操作系統平臺的遠程調用技術。
(2) JAVA 中共有三種WebService 規范,分別是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。
(3) webService三要素:soap、wsdl、uddi
1.3 術語
1.3.1 webservice開發規范
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。JAX-WS(JSR 224)規范的API 位于javax.xml.ws.*包,其中大部分都是注解,提供API 操作Web 服務(通常在客戶端使用的較多,由于客戶端可以借助SDK 生成,因此這個包中的API 我們較少會直接使用)。
(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(RepresentationState 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 中自帶的默認實現。
1.3.2 SOAP 協議
(1) SOAP即簡單對象訪問協議(Simple Object Access Protocol),它是用于交換XML(標準通用標記語言下的一個子集)編碼信息的輕量級協議。它有三個主要方面:XML-envelope為描述信息內容和如何處理內容定義了框架,將程序對象編碼成為XML對象的規則,執行遠程過程調用(RPC)的約定。SOAP可以運行在任何其他傳輸協議上。
(2) SOAP作為一個基于XML語言的協議用于有網上傳輸數據。
(3) SOAP = 在HTTP的基礎上+XML數據。
(4) SOAP是基于HTTP的。
(5) SOAP的組成如下
a) Envelope – 必須的部分。以XML的根元素出現。
b) Headers – 可選的。
c) Body – 必須的。在body部分,包含要執行的服務器的方法。和發送到服務器的數據。
1.3.3 wsdl說明書
Web Service描述語言WSDL(SebService Definition Language)就是用機器能閱讀的方式提供的一個正式描述文檔而基于XML(標準通用標記語言下的一個子集)的語言,用于描述Web Service及其函數、參數和返回值。因為是基于XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的。
wsdl說明書
1) 通過wsdl說明書,就可以描述webservice服務端對外發布的服務;
2) wsdl說明書是一個基于xml文件,通過xml語言描述整個服務;
3) 在wsdl說明中,描述了:
? 對外發布的服務名稱(類)
? 接口方法名稱(方法)
? 接口參數(方法參數)
? 服務返回的數據類型(方法返回值)
1.3.4 UDDI
Web 服務提供商又如何將自己開發的 Web 服務公布到因特網上,這就需要使用到 UDDI 了,UDDI的話,是一個跨產業,跨平臺的開放性架構,可以幫助 Web 服務提供商在互聯網上發布 Web 服務的信息。UDDI 是一種目錄服務,企業可以通過 UDDI 來注冊和搜索 Web 服務。
簡單來時候話,UDDI 就是一個目錄,只不過在這個目錄中存放的是一些關于 Web 服務的信息而已。并且 UDDI 通過SOAP 進行通訊,構建于 . Net 之上。UDDI 即 Universal Description,Discovery andIntegration,也就是通用的描述,發現以及整合。UDDI 的目的是為電子商務建立標準;UDDI是一套基于Web的、分布式的、為WebService提供的、信息注冊中心的實現標準規范,同時也包含一組使企業能將自身提供的Web Service注冊,以使別的企業能夠發現的訪問協議的實現標準。
總結
以上是生活随笔為你收集整理的(一)Web Service——基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pe袋包纸箱方法?
- 下一篇: (四)十大经典排序算法(动画图解,代码完