11.6 通过XML-RPC实现简单的远程调用

    实现一个远程方法调用的最简单方式是使用XML-RPC。下面我们演示一下一个实现了键-值存储功能的简单服务器:

    下面我们从一个客户端机器上面来访问服务器:

    XML-RPC暴露出来的函数只能适用于部分数据类型,比如字符串、整形、列表和字典。对于其他类型就得需要做些额外的功课了。例如,如果你想通过 XML-RPC 传递一个对象实例,实际上只有他的实例字典被处理:

    类似的,对于二进制数据的处理也跟你想象的不太一样:

    XML-RPC的一个缺点是它的性能。 的实现是单线程的,所以它不适合于大型程序,尽管我们在11.2小节中演示过它是可以通过多线程来执行的。另外,由于 XML-RPC 将所有数据都序列化为XML格式,所以它会比其他的方式运行的慢一些。但是它也有优点,这种方式的编码可以被绝大部分其他编程语言支持。通过使用这种方式,其他语言的客户端程序都能访问你的服务。

    虽然XML-RPC有很多缺点,但是如果你需要快速构建一个简单远程过程调用系统的话,它仍然值得去学习的。有时候,简单的方案就已经足够了。