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