XML-RPC是一個遠程過程調用(遠端程序呼叫)(remote procedure call,RPC)的分布式計算協議,通過XML將調用函數封裝,并使用HTTP協議作為傳送機制。
XML-RPC是工作在Internet上的遠程過程調用協議。一個XML-RPC消息就是一個請求體為xml的http-post請求,被調用的方法在服務器端執行并將執行結果以xml格式編碼后返回。
RPC和RMI的簡單比較
調用形式
在RMI和RPC之間最主要的區別在于方法是如何被調用的。在RMI中,遠程接口使每個遠程方法都具有方法簽名。如果一個方法在服務器上執行,但是沒有相匹配的簽名被添加到這個遠程接口上,那么這個新方法就不能被RMI客戶方所調用。
classname.methodnam
在RPC中,當一個請求到達RPC服務器時,這個請求就包含了一個參數集和一個文本值,通常形成“classname.methodname”的形式。
methodname
這就向RPC服務器表明,被請求的方法在為“classname”的類中,名叫“methodname”。然后RPC服務器就去搜索與之相匹配的類和方法,并把它作為那種方法參數類型的輸入。這里的參數類型是與RPC請求中的類型是匹配的。
匹配成功后
一旦匹配成功,這個方法就被調用了,其結果被編碼后返回客戶方。
RPC代表遠程過程調用。如其名稱所示,它是一種調用遠程計算機上可用的過程或功能的機制。RPC是比Web更老的技術。有效地,RPC為開發人員提供了一種定義可以通過網絡調用的接口的機制。這些接口可以像單個函數調用一樣簡單,或者與大型API一樣復雜。
什么是XML-RPC?
XML-RPC是使計算機可以輕松地在其他計算機上調用過程。
-
XML-RPC允許程序通過網絡進行功能或過程調用。
-
XML-RPC使用HTTP協議將信息從客戶端計算機傳遞到服務器計算機。
-
XML-RPC使用一個小的XML詞匯表來描述請求和響應的性質。
-
XML-RPC客戶端在XML請求中指定過程名稱和參數,并且服務器在XML響應中返回故障或響應。
-
XML-RPC參數是一個簡單的類型和內容列表 - 結構和數組是最復雜的類型。
-
XML-RPC沒有對象的概念,也沒有包含使用其他XML詞匯表的信息的機制。
-
然而,使用XML-RPC和Web服務,Web成為一個程序連接的集合,其中計算機沿著緊密綁定的路徑交換信息。
-
XML-RPC于1998年初出現; 它由UserLand Software發布,最初在其Frontier產品中實施。
為什么是XML-RPC?
如果您需要集成多個計算環境,但不需要直接共享復雜的數據結構,那么您會發現XML-RPC可以讓您快速輕松地建立通信。
即使您在單一環境中工作,也可能會發現RPC方法可以輕松連接具有不同數據模型或處理期望的程序,并且可以輕松訪問可重用的邏輯。
-
XML-RPC是在計算機之間建立各種連接的絕佳工具。
-
XML-RPC為集成商提供了使用標準詞匯和方法交換信息的機會。
-
XML-RPC最明顯的應用范圍是連接不同種類的環境,允許Java與Perl,Python,ASP等進行交流。
XML-RPC技術概述
XML-RPC由三個較小的部分組成:
-
XML-RPC數據模型:用于傳遞參數,返回值和故障(錯誤消息)的一組類型。
-
XML-RPC請求結構:包含方法和參數信息的HTTP POST請求。
-
XML-RPC響應結構:包含返回值或故障信息的HTTP響應。