您好,登錄后才能下訂單哦!
小編給大家分享一下XML模式中SOAP有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)實(shí)際上是一種 Web 服務(wù)技術(shù),但 Web 服務(wù)中客戶機(jī)和服務(wù)器之間的數(shù)據(jù)交換格式是通過靈活的 XML 模式實(shí)現(xiàn)的。
Web 服務(wù)的主要優(yōu)點(diǎn)是客戶機(jī)和服務(wù)器通過網(wǎng)絡(luò)進(jìn)行信息和數(shù)據(jù)交換的互操作性的層次。SOAP 標(biāo)準(zhǔn)使用 XM
簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)實(shí)際上是一種 Web 服務(wù)技術(shù),但 Web 服務(wù)中客戶機(jī)和服務(wù)器之間的數(shù)據(jù)交換格式是通過靈活的 XML 模式實(shí)現(xiàn)的。
Web 服務(wù)的主要優(yōu)點(diǎn)是客戶機(jī)和服務(wù)器通過網(wǎng)絡(luò)進(jìn)行信息和數(shù)據(jù)交換的互操作性的層次。SOAP 標(biāo)準(zhǔn)使用 XML 以一種體系結(jié)構(gòu)中立的格式來構(gòu)造數(shù)據(jù),定義數(shù)據(jù)類型和信息。
對于編程語言來說,只需要提供數(shù)據(jù)類型和需要在遠(yuǎn)程服務(wù)器上調(diào)用的函數(shù)名稱即可。SOAP 庫將用主機(jī)語言編寫的信息和格式轉(zhuǎn)化成 XML 格式的消息,其中包括調(diào)用的函數(shù)和提供的參數(shù)。
通過 W3C 的例子就可以了解 SOAP 的結(jié)構(gòu)。調(diào)用遠(yuǎn)程 SOAP 函數(shù) GetEndorsingBoarder()
的時候,客戶機(jī)上的調(diào)用程序生成清單 1 所示的 XML 消息。清單 1. 調(diào)用遠(yuǎn)程 SOAP 函數(shù) 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 客戶機(jī)發(fā)送的整個消息都放在 SOAP 信封中。信封的內(nèi)容就是消息的詳細(xì)內(nèi)容。
被調(diào)用的函數(shù)顯然是 GetEndorsingBoarder
,它包括兩個參數(shù):manufacturer 和 model。由此可見,它把本地的可能采用二進(jìn)制編碼的字符串轉(zhuǎn)化成了 XML 字符串。由于 XML 是平臺獨(dú)立的,主機(jī)使用 SOAP 系統(tǒng)不需要復(fù)雜的二進(jìn)制編碼和解碼就可以交換消息。
服務(wù)器通過另一個 XML 編碼的 SOAP 信封返回響應(yīng),這一次是函數(shù)的返回值。SOAP 請求的響應(yīng)格式與函數(shù)相同,只不過在信封內(nèi)容的后面加上了 Response
,如清單 2 所示。
清單 2. SOAP 請求的響應(yīng)
<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 信封的結(jié)構(gòu)和簡單性表明使用 SOAP 標(biāo)準(zhǔn)共享信息很簡單。
SOAP 大大簡化了交換消息和調(diào)用遠(yuǎn)程函數(shù)的工作。遠(yuǎn)程過程調(diào)用(Remote Procedure Call,RPC)標(biāo)準(zhǔn)需要復(fù)雜的方法來處理二進(jìn)制數(shù)據(jù)的序列化,發(fā)送結(jié)構(gòu)化更高的信息需要詳細(xì)的聲明和雙向的信息轉(zhuǎn)換。
使用 SOAP,XML 序列化大大降低了這種復(fù)雜性,使得跨平臺、跨語言集成和數(shù)據(jù)交換更加簡單。
以上是“XML模式中SOAP有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。