首頁 >後端開發 >XML/RSS教程 >XML模式-SOAP介紹

XML模式-SOAP介紹

黄舟
黄舟原創
2017-03-14 16:14:211551瀏覽

簡單物件存取協定(Simple Object Access Protocol,SOAP)實際上是一種Web 服務技術,但Web 服務中客戶機和伺服器之間的資料交換格式是透過靈活的XML 模式實現的。 Web 服務的主要優點是客戶機和伺服器透過網路進行資訊和資料交換的互通性的層次。 SOAP 標準使用XM
簡單物件存取協定(Simple Object Access Protocol,SOAP)實際上是一種Web 服務技術,但Web 服務中客戶機和伺服器之間的資料交換格式是透過靈活的XML 模式實現的。
Web 服務的主要優點是客戶機和伺服器透過網路進行資訊和資料交換的互通性的層次。 SOAP 標準使用 XML 以一種體系結構中立的格式來建構數據,定義資料類型和資訊。
對於程式語言來說,只需要提供資料類型和需要在遠端伺服器上呼叫的函數名稱。 SOAP 函式庫將主機語言編寫的資訊和格式轉換成 XML 格式的訊息,其中包括呼叫的函數和提供的參數。
透過 W3C 的範例就可以了解 SOAP 的結構。當呼叫遠端 SOAP 函數 Get<a href="http://www.php.cn/wiki/1048.html" target="_blank">End</a>orsingBoarder() 的時候,客戶機上的呼叫程式會產生清單 1 所示的 XML 訊息。 清單 1. 呼叫遠端 SOAP 函數 GetEndorsingBoarder()

               

#
<SOAP-ENV:Envelope

  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

  <SOAP-ENV:Body>

    <m:GetEndorsingBoarder xmlns:m="http://namespaces.snowboard-info.com">

      <manufacturer>K2</manufacturer>

      <model>Fatbob</model>

    </m:GetEndorsingBoarder>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

SOAP 用戶機傳送的整個訊息中放在 SOAP 信封中。信封的內容就是訊息的詳細內容。
被呼叫的函數顯然是 GetEndorsingBoarder,它包括兩個參數:manufacturer 和 model。由此可見,它將本地的可能採用二進位編碼的字串轉換成了 XML 字串。由於 XML 是平台獨立的,主機使用 SOAP 系統不需要複雜的二進位編碼和解碼就可以交換訊息。
伺服器透過另一個 XML 編碼的 SOAP 信封回傳回應,這次是函數的回傳值。 SOAP 要求的回應格式與函數相同,只不過在信封內容的後面加上了 Response,如清單 2 所示。
清單 2. SOAP 請求的回應

             

 <SOAP-ENV:Envelope

  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

  SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

  <SOAP-ENV:Body>

    <m:GetEndorsingBoarderResponse xmlns:m="http://namespaces.snowboard-info.com">

      <endorsingBoarder>Chris Englesmann</endorsingBoarder>

    </m:GetEndorsingBoarderResponse>

  </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

通常不需要自行寫 SOAP 訊息,SOAP 函式庫會自動產生。不過 SOAP 信封的結構和簡單性顯示使用 SOAP 標準共享資訊很簡單。
SOAP 大大簡化了交換訊息和呼叫遠端函數的工作。遠端過程呼叫(Remote Procedure Call,RPC)標準需要複雜的方法來處理二進位資料的序列化,發送結構化更高的信息需要詳細的聲明和雙向的信息轉換。
使用 SOAP,XML 序列化大大降低了這種複雜性,使得跨平台、跨語言整合和資料交換更加簡單。                                                

#

以上是XML模式-SOAP介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn