RPC是Remote Procedure Call的縮寫,翻譯成中文就是遠程方法調用,是一種在本地的機器上調用遠端機器上的一個過程(方法)的技術,這個過程也被你們稱爲「分佈式計算」,是爲了提升各個分立機器的「互操做性」而發明出來的技術。python
XML-RPC的全稱是XML Remote Procedure Call,即XML遠程方法調用。安全
它是一套容許運行在不一樣操做系統、不一樣環境的程序實現基於Internet過程調用的規範和一系列的實現。
這種遠程過程調用使用http做爲傳輸協議,XML做爲傳送信息的編碼格式。
Xml-Rpc的定義儘量的保持了簡單,但同時可以傳送、處理、返回複雜的數據結構。
Python下的XML-RPC:服務器
一、類庫:xmlrpclib 通常使用在客戶端,這個模塊用來調用註冊在XML-RPC服務器端的函數,xmlrpclib並非一個類型安全的模塊,沒法抵禦惡意構造的數據,這方面的一些處理工做須要交給開發者本身。數據結構
二、類庫:SimpleXMLRPCServer 通常是用在服務器端,這個模塊用來構造一個最基本的XML-RPC服務器框架框架
三、構造一個基本的XML-RPC Server:分佈式
from SimpleXMLRPCServer import SimpleXMLRPCServer def is_even(n): return n%2 == 0 server = SimpleXMLRPCServer(("localhost", 8000))#肯定URL和端口 print "Listening on port 8000..." server.register_function(is_even, "is_even") #註冊is_even函數 server.serve_forever()#啓動服務器,並使其對這個鏈接可用
四、構造一個基本的XML-RPC Client:函數
import xmlrpclib proxy = xmlrpclib.ServerProxy("http://localhost:8000/") print "3 is even: %s" % str(proxy.is_even(3))#客戶端調用XML-RPC函數 print "100 is even: %s" % str(proxy.is_even(100))