web service學習筆記
Webservice 學習總結:
使用jax-ws和spring建立和web容器共埠的webservice服務
WebService註解
API
參考: Web Service工作原理及例項
使用CXF 例子
一、WebService基本概念
什麼是webservice:
WebService是一種跨程式語言和跨作業系統平臺的遠端呼叫技術。
跨程式語言:服務端程式採用java編寫,客戶端程式則可以採用其他程式語言編寫,反之亦然
跨作業系統平臺:服務端程式和客戶端程式可以在不同的作業系統上執行
遠端呼叫技術:一臺計算機a上的一個程式可以呼叫到另外一臺計算機b上的一個物件的方法。
WebService平臺技術
XML+XSD,SOAP和WSDL就是構成WebService平臺的三大技術。
XML+XSD:WebService採用HTTP協議傳輸資料,採用XML格式封裝資料(即XML中說明呼叫遠端服務物件的哪個方法,傳遞的引數是什麼,以及服務物件的返回結果是什麼)。XML是WebService平臺中表示資料的格式。除了易於建立和易於分析外,XML主要的優點在於它既是平臺無關的,又是廠商無關的。無關性是比技術優越性更重要的:軟體廠商是不會選擇一個由競爭對手所發明的技術的。
XML解決了資料表示的問題,但它沒有定義一套標準的資料型別,更沒有說怎麼去擴充套件這套資料型別。例如,整形數到底代表什麼?16位,32位,64位?這些細節對實現互操作性很重要。XML Schema(XSD)就是專門解決這個問題的一套標準
SOAP:WebService通過HTTP協議傳送請求和接收結果時,傳送的請求內容和結果內容都採用XML格式封裝,並增加了一些特定的HTTP訊息頭,以說明HTTP訊息的內容格式,這些特定的HTTP訊息頭和XML內容格式就是SOAP協議。SOAP提供了標準的RPC方法來呼叫Web Service。
SOAP協議 = HTTP協議+ XML資料格式
SOAP協議定義了SOAP訊息的格式,SOAP協議是基於HTTP協議的,SOAP也是基於XML和XSD的,XML是SOAP的資料編碼方式。
相關術語
Web Service也叫XMLWeb Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟體服務,使用WSDL檔案進行說明,並通過UDDI進行註冊。
XML:(ExtensibleMarkup Language)擴充套件型可標記語言。面向短期的臨時資料處理、面向全球資訊網絡,是Soap的基礎。
Soap:(SimpleObject Access Protocol)簡單物件存取協議。是XML Web Service 的通訊協議。當用戶通過UDDI找到你的WSDL描述文件後,他通過可以SOAP呼叫你建立的Web服務中的一個或多個操作。SOAP是XML文件形式的呼叫方法的規範,它可以支援不同的底層介面,像HTTP(S)或者SMTP。
WSDL:(WebServices Description Language) WSDL 檔案是一個 XML 文件,用於說明一組SOAP 訊息以及如何交換這些訊息。大多數情況下由軟體自動生成和使用。
UDDI (Universal Description,Discovery, and Integration) 是一個主要針對Web服務供應商和使用者的新專案。在使用者能夠呼叫Web服務之前,必須確定這個服務內包含哪些商務方法,找到被呼叫的介面定義,還要在服務端來編制軟體,UDDI是一種根據描述文件來引導系統查詢相應服務的機制。UDDI利用SOAP訊息機制(標準的XML/HTTP)來發布,編輯,瀏覽以及查詢註冊資訊。它採用XML格式來封裝各種不同型別的資料,並且傳送到註冊中心或者由註冊中心來返回需要的資料。
RPC:一種遠端過程呼叫協議。SOAP提供了標準的RPC方法來呼叫Web Service。
二、呼叫原理
實現一個完整的Web服務包括以下步驟:
◆ Web服務提供者設計實現Web服務,並將除錯正確後的Web服務通過Web服務中介者釋出,並在UDDI註冊中心註冊; (釋出)
◆ Web服務請求者向Web服務中介者請求特定的服務,中介者根據請求查詢UDDI註冊中心,為請求者尋找滿足請求的服務; (發現)
◆ Web服務中介者向Web服務請求者返回滿足條件的Web服務描述資訊,該描述資訊用WSDL寫成,各種支援Web服務的機器都能閱讀;(發現)
◆ 利用從Web服務中介者返回的描述資訊生成相應的SOAP訊息,傳送給Web服務提供者,以實現Web服務的呼叫;(繫結)
◆ Web服務提供者按SOAP訊息執行相應的Web服務,並將服務結果返回給Web服務請求者。(繫結)
三、呼叫方式:
1. Net下采用GET/POST/SOAP方式動態呼叫WebService的簡易靈活方法(C#)
webservice 的呼叫有3種方式
1). httpget
2). httppost
3). httpsoap
soap 的優點是 可以傳遞結構化的 資料,而前兩種不行。
btw, soap 最終也是使用 HTTP 傳送 XM