天天看點

RPC 和 SOAP 有什麼差別?

RPC 和 SOAP 有什麼差別?

RPC vs SOAP

無論在商業、政治、人際關系,甚至在拯救生命的過程中,通信在任何領域都是至關重要的。通信被證明最重要的另一個領域是計算機網絡。如果沒有合适的通信手段,一個典型的服務請求者和服務提供者就無法達成。在網際網路領域中,有一個叫做 Web Service 的事物。它主要适用于網絡中兩台電子裝置之間的簡單通信。截至目前來講 Web Service 中最常用的就是 RPC (Remote Procedure Call,遠端過程通路,更普遍地被稱為 XML-RPC) 和 SOAP (Simple Object Access Protocol,簡單對象通路協定)。

為了更好地了解它們兩個在計算機世界以及網際網路領域的工作機制,XML-RPC 是一種用于通過網際網路通路資訊的技術。一個很好的例子就是當一個 XML-RPC 消息被傳輸到目标伺服器的時候,通常會使用 HTTP post 請求。

同時,SOAP 是一種用于通過 Web Service 交換結構化資訊的協定規範。關于其運作方式的一個例子是 SOAP 消息能夠被傳輸到一個啟用 web service 的網站,就像通過需要的參數對一個房地産價格資料庫中的查詢那樣來進行一次查詢。作為響應,該網站會将比如價格之類的需要的資料封裝到一個 XML 格式的文檔裡進行傳回。所獲得的資料可以很輕松地內建進一個第三方的應用或者網站,因為其機器解析格式是已經标準化了的。

如果沒有 RPC 和 SOAP 這兩者 web service 的話,網際網路服務将會非常複雜和難以掌控。盡管如此,這兩種 web service 之間還是有一些差別的。

首先,它們的設計理念很明顯不一樣。SOAP 的結構化架構要比 RPC 複雜的多,它具備通過使用 SOAP 信封進行轉換的 XML 消息。另一方面,RPC 使用 XML 對遠端過程調用裡的參數進行編碼和解碼,相比 SOAP 來講,它的架構比較簡單。

其次,在 SOAP 中,順序無關而且過程基本上取的是命名參數。在 XML-RPC 中就完全是另外一回事了。與順序相關而且過程也不必去取命名參數。

SOAP 被認為是比 RPC 更為強大;SOAP 1.2 規範有 44 頁而 RPC 規範隻有 6 頁。

另外一個值得一提的事情是 SOAP 以資料備援而知名,但它通常比 RPC 更功能豐富。然而,就 Python 支援而言,在标準庫中,RPC 相比 SOAP 來講得到了更大的支援。

事實上,web service 是很實用的而且在 WWW (World Wide Web,網際網路) 中發揮着不可或缺的作用。盡管 (對于 web service) 存在一些批評,尤其是在它們的設計和複雜性方面,但是隻要網際網路使用者還在找到方法來利用這些服務,它們就肯定會繼續存在下去。

總結

1. SOAP 的設計比 XML-RPC 要複雜的多。

2. 對于 XML-RPC 來講,順序比過程重要。而對 SOAP 來講則恰恰相反。

3. 就能力而言 SOAP 比 RPC 要強大。

4. RPC 的 Python 支援比 SOAP 強大。

原文連結:

​​Difference Between RPC and SOAP​​,釋出日期:2011 年 4 月 25 日。

作者簡介:Differencebetween.net 網站 "internet" 頻道。

Differencebetween.net 不僅僅會幫你去了解一個主題,還能讓你弄清楚兩個類似話題之間的差別。該網站為你提供各種主題的實時資訊。話題涉獵 "商業" 到 "技術" 等不同種類。他們将每個主題的多個可靠資源編輯并統一到一個頁面上,讀者可以藉此輕松快速搜集到充足感興趣的資訊。如果你對他們的内容有相關建議可以通過他們的聯系郵箱 [email protected] 進行回報。