一、Webservice的概念和原理

2019-10-01

參考資料:

《Tomcat與Java Web》,孫衛琴。

 

這一章節,我們主要解決關於Webservice概念性的問題,首先弄明白Webservice的概念和原理,然後弄清楚它的交互流程,這樣容易理解後續Webservice的調用方法。

 

1 Web服務的定義

Web服務架構與Web一樣,也是網絡應用層的一種分佈式架構,同時也是基於客戶/服務器通信模式(C/S),並且也能實現異構系統之間的通信。在Web服務架構中,服務器端負責提供Web服務,而客戶端則請求訪問Web服務。

什麼是Web服務呢?有兩個重要概念。

1、Web服務確立一種基於Internet的分佈式軟件架構,它支持兩個運行在不同操作系統平臺上,並且用不同編程語言實現的系統能夠互相通信。一個系統向另外一個系統公開的服務被稱爲Web服務。

2、Web服務可以被看做是客戶端遠程調用的各種方法,這些方法能處理特定業務邏輯,或者進行復雜運算等。下圖顯示客戶端請求訪問服務器端的一個Web服務的過程。

 

 

2 Web服務的通信協議

Web服務結構採用SOAP(Simple Object Access Protocol)作爲通信協議。

(1)SOAP規定了客戶端與服務器之間一律使用XML語言進行通信。XML是一種可擴展的闊平臺的標記語言。

(2)SOAP規定了客戶端與服務器發送的Web服務請求的具體數據格式,以及服務器端向客戶端發送的Web服務響應結果的具體數據格式。

要實現Web服務架構,就意味着必須創建基於SOAP協議,負責發佈和調用Web服務,以及負責發送Web服務響應結果的服務器,還要創建基於SOAP協議的負責請求訪問Web服務的客戶程序。

·

3 SOAP協議

1、SOAP(Simple Object Access Protocol),簡單對象訪問協議,是在分佈式的環境中採用交換數據的簡單協議,它以XML爲通信語言。

 

2、SOAP採用的數據傳輸協議可以是HTTP/HTTPS協議,也可以是SMTP/POP3協議,還可以是爲一些應用而專門設計的特殊數據傳輸協議。

 

3、SOAP有兩種工作模式。一種稱爲RPC(Remote Procedure Call),另一種方法不統一,在Microsoft的文檔中稱爲Document-Oriented,在Apache的文檔中,稱爲Message-Oriented,它可以利用XML來交換機構更爲複雜的數據,通常以SMTP作爲數據傳輸協議。

可以把SOAP RPC簡單地理解爲這樣一個開放協議:SOAP=RPC+HTTP+XML。它有以下特徵:

(1)採用HTTP作爲傳輸協議,並且採用客戶/服務器模式。

(2)RPC作爲同意的遠程方式調用途徑。

(3)傳送的數據使用XML語言,允許服務提供者和客戶經過防火牆在Internet上進行通信。

 

4、SOAP客戶訪問SOAP服務的流程如下(Webservice的交互流程):

(1)客戶端創建XML格式的SOAP請求,它包含了提供服務的服務器的URI、客戶請求調用的方法名稱和參數信息。如果參數是對象,則必須進行序列化操作(把對象轉化成XML數據)。

(2)客戶端的協議連接器把XML格式的SOAP請求頭包裝爲HTTP請求,即把SOAP請求作爲HTTP請求的正文,並且增加HTTP請求頭。

(3)服務器端的協議連接器接收到客戶端發送的HTTP請求,對其進行解析,獲取其中的請求正文,請求正文就是客戶端發送的XML格式的SOAP請求。

(4)服務器對XML格式的SOAP請求進行解析,如果參數中包含對象,先對其進行反序列操作(把XML格式的參數轉換爲對象),然後執行客戶請求 的方法。

(5)當服務器執行完畢後,如果方法的返回值是對象,則先對其進行序列化操作,把對象轉化爲XML格式,然後把返回值包裝成XML格式的SOAP響應。

(6)服務器端的協議連接器把XML格式的SOAP響應包裝爲HTTP響應,即把SOAP響應作爲HTTP響應的正文,並且增加HTTP頭。

(7)客戶端的協議連接器接收到服務器端發送的HTTP響應,並對其進行解析,獲取其中的響應正文,響應正文就是服務器端發送的XML格式的SOAP響應。

(8)客戶端解析XML格式的SOAP響應,如果返回值中包含對象,則先對其進行反序列操作,將XML格式轉化成對象,最後獲得返回值。

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章