1. 程式人生 > >01分散式基礎(六)-分散式通訊框架-webservice

01分散式基礎(六)-分散式通訊框架-webservice

分散式通訊框架-webservice

什麼是webservice

webservice也可以叫xml web service webservice, 輕量級的獨立的通訊技術

  1. 基於web的服務:服務端提供的服務介面讓客戶端訪問
  2. 跨平臺、跨語言的整合方案

為什麼要使用webservice

跨語言呼叫的解決方案

什麼時候要去使用webservice

電商平臺,訂單的物流狀態。
.net實現的webservice服務介面

webservice中的一些概念

WSDL(web service definition language webservice 定義語言)

webservice服務需要通過wsdl檔案來說明自己有什麼服務可以對外呼叫。並且有哪些方法、方法裡面有哪些引數
wsdl基於XML(可擴充套件標記語言)去定義的

  1. 對應一個.wsdl的檔案型別
  2. 定義了webservice的伺服器端和客戶端應用進行互動的傳遞資料和響應資料格式和方式
  3. 一個webservice對應唯一一個wsdl文件

SOAP(simple object access protocal簡單物件訪問協議)

http+xml
webservice通過http協議傳送和接收請求時, 傳送的內容(請求報文)和接收的內容(響應報文)都是採用xml格式進行封裝
這些特定的HTTP訊息頭和XML內容格式就是SOAP協議

  1. 一種簡單、基於HTTP和XML的協議
  2. soap訊息:請求和響應訊息
  3. http+xml報文

SEI(webservice endpoint interface webservice的終端介面)

webservice服務端用來處理請求的介面,也就是釋出出去的介面。


分析WSDL文件

在這裡插入圖片描述

Types標籤

定義整服務端的資料報文

Schema標籤

在這裡插入圖片描述

<sayHello>
   <arg0>String</arg0>
</sayHello>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.mic.vip.gupao.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:sayHello>
         <!--Optional:-->
         <arg0>?</arg0>
      </web:sayHello>
   </soapenv:Body>
</soapenv:Envelope>

<sayHelloResponse>
   <return>string</return>
</sayHelloResponse>

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:sayHelloResponse xmlns:ns2="http://webservice.mic.vip.gupao.com/">
         <return>Hello ,Mic,I'am 菲菲</return>
      </ns2:sayHelloResponse>
   </S:Body>
</S:Envelope>

Message

在這裡插入圖片描述
定義了在通訊中使用的訊息的資料結構

PortType

在這裡插入圖片描述
定義伺服器端的SEI
input/output表示輸入/輸出資料

Binding標籤

在這裡插入圖片描述

  1. type屬性: 引用porttype
    <soap:binding style=”document”>
  2. operation : 指定實現方法
  3. input/output 表示輸入和輸出的資料型別

Service標籤

在這裡插入圖片描述
service: 伺服器端的一個webservice的容器
name屬性: 指定客戶端的容器類
address: 當前webservice的請求地址
在這裡插入圖片描述


在這裡插入圖片描述

Axis/Axis2

apache開源的webservice工具

CXF

Celtix+Xfire 。 用的很廣泛,因為整合到了spring

Xfire

高效能的Webservice
HTTP+JSON (新的webservice)
HTTP+XML

spring cxf+REST實現一個webservice服務

springmvc+REST實現的新webservice

linux: centos7; vm可以copy 設定一個備份點
jdk、tomcat

RMI、 http協議/https、webservice、 TCP協議、UDP協議、
socket程式設計、bio /nio模型、分散式架構、叢集、架構演進過程