01分散式基礎(六)-分散式通訊框架-webservice
阿新 • • 發佈:2018-12-05
分散式通訊框架-webservice
- 什麼是webservice
- 為什麼要使用webservice
- 什麼時候要去使用webservice
- webservice中的一些概念
- WSDL(web service definition language webservice 定義語言)
- SOAP(simple object access protocal簡單物件訪問協議)
- SEI(webservice endpoint interface webservice的終端介面)
- 分析WSDL文件
什麼是webservice
webservice也可以叫xml web service webservice, 輕量級的獨立的通訊技術
- 基於web的服務:服務端提供的服務介面讓客戶端訪問
- 跨平臺、跨語言的整合方案
為什麼要使用webservice
跨語言呼叫的解決方案
什麼時候要去使用webservice
電商平臺,訂單的物流狀態。
.net實現的webservice服務介面
webservice中的一些概念
WSDL(web service definition language webservice 定義語言)
webservice服務需要通過wsdl檔案來說明自己有什麼服務可以對外呼叫。並且有哪些方法、方法裡面有哪些引數
wsdl基於XML(可擴充套件標記語言)去定義的
- 對應一個.wsdl的檔案型別
- 定義了webservice的伺服器端和客戶端應用進行互動的傳遞資料和響應資料格式和方式
- 一個webservice對應唯一一個wsdl文件
SOAP(simple object access protocal簡單物件訪問協議)
http+xml
webservice通過http協議傳送和接收請求時, 傳送的內容(請求報文)和接收的內容(響應報文)都是採用xml格式進行封裝
這些特定的HTTP訊息頭和XML內容格式就是SOAP協議
- 一種簡單、基於HTTP和XML的協議
- soap訊息:請求和響應訊息
- 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標籤
- type屬性: 引用porttype
<soap:binding style=”document”> - operation : 指定實現方法
- 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模型、分散式架構、叢集、架構演進過程