现在的位置: 首页 > 综合 > 正文

RMI、RPC、SOAP通信技术介绍及比对

2013年02月27日 ⁄ 综合 ⁄ 共 1346字 ⁄ 字号 评论关闭

本文转载自:http://blog.csdn.net/zyy5411/article/details/7941852

1、RMI

    使用java的程序员,对于RMI(RemoteMethod Invoke,远程方法调用)一定不陌生,在java中,为了在分布式应用开发时,能够方便调用远程对象,java提供了RMI的API。在 RMI 中,远程对象按照好象它是本地行事,客户机应用程序会直接调用远程对象存根上的方法,因此,调用起来就如本地对象一样方便。RMI中封装了对象和请求的网络传送,使得异地的对象服务直接可用。

但RMI的使用必须是在能够识别java代码的环境下使用,即必须有JVM的支持。因此,他只适合在java程序间的对象通信。如果不在 Java 环境下工作,或者需要与非 Java 环境通信,那么SOAP、RPC、CORAR等都是可以的。.

2、RPC & XML-RPC

       RPC(RemoteProcedureCallProtocol)——,远端过程调用) 与RMI的区别很明显,相比于RMI直接获取远端方法的签名,进行调用的方式,RPC使用的是C/S方式,发送请求到服务器,等待服务器返回结果。

为了包装RPC的请求信息,推出了XML-RPC,客户端发送一条特定消息,该消息中必须包括名称、运行服务的程序以及输入参数

XML-RPC只能使用有限的数据类型种类和一些简单的数据结构。SOAP最主要的工作是使用标准的XML描述了RPC的请求信息(URI//方法/参数/返回值)SOAP的方式,SOAP
是对如CORBA 和 RMI-IIOP 这样的重型 范例吸引人的替代。

3、SOAP

       SOAP的消息被称为一个SOAP Envelope,包括SOAP
Header
SOAP Body。其中,SOAP Header可以方便的插入各种其它消息来扩充Web
Service
的功能,比如Security(采用证书访问Web Service),SOAP
Body
则是具体的消息正文,也就是Marshall后的信息。

      
某些程序员每天挣扎于 Perl 和 C 组件、C 和 Java 组件之间的通信。这些开发人员可以从转向基于 SOAP 或基于 XML-RPC 的通信模型中获益匪浅。另一方面,从不转向 Java 以外语言的 Java 开发人员可以转向 RMI 而不是使用 SOAP,他们会看到极大的性能改善。

4WSDL

WSDL(Web Services Description Language)是描述web服务的,是描述怎样访问web服务的。WSDL是用来描述SOAP的,换句话说,WSDL 文件告诉你调用 SOAP 所需要知道的一切。WSDL也是一段xml。现在各个语言对wsdl的支持都很成熟,可以根据同一份wsdl文件生成自己语言的客户端。

一个XML表示的WSDL文件中,包含了消息类型、消息、参数、操作、端口类型等(见http://baike.baidu.com/view/160660.htm)以提供服务的访问。是与服务内容直接相关的。而SOAP(http://www.cnblogs.com/flashsky/archive/2007/02/03/639148.html

5、其他

       其他还有CORBA、DCOM、REST、Axis等

抱歉!评论已关闭.