RMI可以是做CORBA的Java版本,但相比较而言这是一个轻量级的版本了,对于服务器和客户端两边都用Java来实现的前提下,这是一个非常好的选择。
CORBA和RMI有一个共同的缺陷:通常不会在系统80端口提供服务,所以这在具备网罗防火墙的情况下显得非常被动。
XML-RPC
为了解决在系统的80端口提供RPC的服务,而又不影响正在执行的WEB服务,人们想出了用HTTP协议传输RPC包的办法。对于几乎是专门用于传输文本的HTTP协议,要在其上传输RPC封包,最方便的方法莫过于把RPC封包编码成文本形式——例如XML文件。
XML-RPC(http://www.xml-rpc.com)是由美国UserLand公司指定的一个RPC协议。它将RPC信息封包编码为XML,然后通过HTTP传输封包;它是一个简单的RPC协议,只支持一些基本数据类型,不支持对象模型,这势必掣肘在客户端和服务器端之间传输复杂的对象。
SOAP
SOAP即Simple Object Access Protocol(简单对象访问协议)是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。它允许所有的操作在80端口上进行,从而也绕过了防火墙等问题。
SOAP规范中有三个基本组成部分:SOAP封装,编码规则,以及在请求和响应之间的交互方式。
目前已有的基于JAVA提供SOAP功能的产品有:Apache SOAP, IBM SOAP4J等
要了解更多关于SOAP的信息,可以访问 http://www.w3.org/TR/SOAP