于把服务放到 web 上很有用,而且因为 xml_rpc 是一种已经成形的、很容易采用的标准。
对于 b2b 服务来说,提供服务的标准是极其重要的,共同遵循标准的公司可以利用其它
公司提供的服务获得快速的增长。无法想象在各种私有的服务标准之上可以建立起真正的
服务式 web,服务必须有一种可以遵循的标准。
xml_rpc 是一种面向 internet 分布式处理的标准。rpc 即为 remote procedure call(远程过
程调用)的缩写,它是一种远程调用机制,用于调用可能驻留在其他机器之上以及可能
用其他语言编写的过程。远程过程调用是分布式计算的重要支柱。例如,在一个分布式计
算环境中,我们可以寻找和利用在其他机器上运行的执行加法和减法操作的过程,执行
加法操作的过程可能用 apl
编写、在 rs6000 机器上运行,执行减法操作的过程可能用 c 编
写、在 unix 上运行。其他要使用这种分布式计算器的开发者同样可以利用它们,或者他也
可以选用另外更好的计算器。
在 rpc 中,过程(procedure)是最主要的构件,服务器提供的就是供客户端调用的过
程。过程可以接收参数并返回结果。xml_rpc
以 http 作为协议载体,通过发送和接收数据的
xml 词汇表实现 rpc 机制。xml_rpc 服务器接收 xml_rpc 请求并返回 xml_rpc 应答,xml_rpc
客户程序发送 xml_rpc 请求并接收 xml_rpc 应答。服务器和客户必须按照 xml_rpc 标准的要
求处理应答和请求。
三、xml_rpc 协议
完整的 xml_rpc 规范可以在 http://www.xmlrpc.com/spec 找到。下面是其要点说明。
xml_rpc 请求
xml_rpc 请求应该是 http post 请求,它的正文是 xml 格式。请求的 xml 部分格式如下:
<?xml version="1.0" ?>
<methodcall>
<methodname>examples.getstatename</methodname>
<params>
<param>
<value><i4>41</i4></value>
</param>
</params>
</methodcall>