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