目前项目马上就要用到xml rpc技术了,为了更快的掌握及使用,写个小博客加深理解。

xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。RPC是Remote Procedure Call的缩写,翻译成中文就是远程过程调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为 了提高各个分立机器的“互操作性”而发明出来的技术。

java与xmlrpc相互对应关系:

在这里简单描述一下:

>xmlrpc中的Array类型,对应到java中的Vector类型

例如:在RPC Server中的某个服务方法的返回值的声明类型是String[],但在Client中接收到的将是Vector对象;

反之,如果Client传送过去的调用参数为String[],但在RPC Server中所接收到的将是Vector对象

当然,如果我们不使用String[],直接声明为Vector,也是可以的。

>xmlrpc中的struct类型,对应到java中的Hashtable类型

> 其它的类型,如:String,int,double,boolean,Date等,都比较好对应。需要注意的是:在rpc Client中,如果使用到int/double/boolean这些基本类型时,需要将他们封装成一个相应的Object,例如:Integer /Double/Boolean。

下面是xml rpc的一个工作原理图,可加深理解。