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并启动:D:\Program Files\eclipse-workspace\HessianPro\basicXmlRPC\XmlRPCserver.pyeclipse
#!/usr/bin/python # -*- coding:UTF-8 -*- from SimpleXMLRPCServer import SimpleXMLRPCServer from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler class XmlRPCserver(): def datasum(self,x,y): print u'加法结果:',x+y return x+y def datadiv(self,x,y): print u'除法结果:',x/y return x/y if __name__ == '__main__': rpc_obj=XmlRPCserver() server=SimpleXMLRPCServer(("localhost", 8000)) server.register_function(rpc_obj.datasum, 'datasum') #注册函数 server.register_function(rpc_obj.datadiv,'datadiv') print "Listening on port 8000..." server.serve_forever()# 保持等待调用状态
四、构造一个基本的XML-RPC Client: D:\Program Files\eclipse-workspace\HessianPro\basicXmlRPC\XmlRPCclient.py分布式
#!/usr/bin/python # -*- coding:UTF-8 -*- import xmlrpclib sp=xmlrpclib.ServerProxy('http://localhost:8000') print sp.datasum(1,2) print sp.datadiv(4,2)