RMI 和 RPC均可以均提供远程方法访问的基础通信和参数引用要求的串行化机制,RPC和RMI之间的一个重要差别是RPC用快速而不够可靠的UDP协议,
RMI用低速而可靠的TCP/IP协议。另外 RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型。而 RPC 不支持对象的概念,
传送到 RPC 服务的消息由外部数据表示 (External Data Representation, XDR) 语言表示,
这种语言抽象了字节序类和数据类型结构之间的差异。只有由 XDR 定义的数据类型才能被传递, RPC 不允许传递对象。
可以说 RMI 是面向对象方式的 Java RPC 。 RPC是有Sun提出的,支持多种语言,而RMI只支持JAVA写的应用程序
CORBA对RPC的扩展就像C++语言对C语言的扩展一样,是面向对象的,CORBA在大型企业应用中使用的很多
DCOM是微软自己开发的,面向对象的分布式应用模型,他的设计目标和CORBA一样,但是没有CORBA那么健壮和丰富
因此真正在使用DCOM协议的并不多。
RPC,为了包装RPC的请求消息,推出了XML-RPC,客户端发送一条消息,该消息中必须包括名称,运行服务的程序以及输入参数
XML-RPC只能使用有限的数据类型和一些简单的数据结构。
SOAP最主要的工作是使用标准的XML描述RPC的请求消息,SOAP方式是对CORBA和RMI的替代
SOAP消息包括Header和Boby,其中Header可以方便的插入各种消息来扩充Web Service的功能,Body则是具体的消息正文,也就是
Marshall后的消息。
远程调用是同步的,消息调用时异步的。
JMS入门与ActiveMQ开发实战教程:http://www.doc88.com/p-375363081766.html