`

webservice、rpc、rmi、jms实现远程方法调用的区别

 
阅读更多
webservice、jms、rpc、rmi的区别


web service提供的服务是基于web容器的,底层使用http协议,类似一个远程的服务提供者,

比如天气预报服务,对各地客户端提供天气预报,是一种请求应答的机制,是跨系统跨平台的。

就是通过一个servlet,提供服务出去。


RPC可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,

一般都喜欢定义为TCP,这样比Web Service稍微高效一些。


RPC一般需要通过一个WinForm或是Windows服务进行启动,而Web Service则需要web服务进行启动


即 RPC 支持多种语言,而 RMI 只支持 Java 写的应用程序。

另外 RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型。

摘自:http://hi.baidu.com/lhfqq/item/bff7dc4cffc081aa61d7b99b

而 RPC 不支持对象的概念,传送到 RPC 服务的消息由外部数据表示 (External Data Representation, XDR) 语言表示,

这种语言抽象了字节序类和数据类型结构之间的差异。只有由 XDR 定义的数据类型才能被传递, RPC 不允许传递对象。

可以说 RMI 是面向对象方式的 Java RPC 。


JMS 与RMI

Java 消息服务 ( Java Messaging Service, JMS ) 是一种允许应用程序创建、发送、接受和读取消息的Java API 。

JMS 与 RMI 的区别在于,采用 JMS 服务,对象是在物理上被异步从网络的某个 JVM 上直接移动到另一个 JVM 上

(支持消息通知?如xmpp协议)JMS 消息的两种模式(Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub) )

而 RMI 对象是绑定在本地 JVM 中,只有函数参数和返回值是通过网络传送的(是请求应答机制)。
分享到:
评论

相关推荐

    Java远程通讯可选技术及原理

    Java远程通讯技术是构建分布式系统的关键,涉及到多种技术如RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等。这些技术在不同的场景下有着各自的优势和适用范围,理解它们的工作原理对于优化系统性能至关重要。 ...

    分析师考试复习资料(精简整理版).

    - **透明性**:客户端调用远程对象的方法就像调用本地对象一样。 - **安全性**:RMI 支持身份验证和访问控制。 #### RPC (Remote Procedure Call) - **过程调用**:RPC 是一种通用的远程过程调用机制,不限于特定的...

    成为Java高手的25个学习目标.doc

    10. **分布式对象和远程API**:掌握RMI(远程方法调用)和RMI/IIOP(Internet Inter-ORB协议),理解分布式系统的工作原理。 11. **中间件技术**:学习Tuxedo、CROBA等中间件,以及JavaEE(Java企业版)规范。 12....

    Java 高手速成方法

    理解并运用RMI(远程方法调用)和RMI/IIOP等分布式对象和远程API,对于构建分布式系统和微服务架构至关重要。 #### 9. 中间件技术与JavaEE 掌握Tuxedo、CORBA等中间件技术,以及JavaEE平台的深度集成,可以有效...

    最新系统分析师考试复习资料(精简整理版).pdf

    #### RMI和RPC的区别 - **RMI**:Java Remote Method Invocation,是Java平台上的远程过程调用,支持面向对象的服务。 - **RPC**:Remote Procedure Call,一种通用协议,支持多种语言间的远程过程调用。 - **主要...

    最新系统分析师考试复习资料

    - **RMI (Remote Method Invocation)**:是 Java 特有的远程调用协议,允许客户端直接调用远程服务器上的对象方法。 - **RPC (Remote Procedure Call)**:是一种通用的远程过程调用协议,可以跨语言实现。 - **...

    JAVA程序员您需要学习的25个标准

    10. **分布式对象与远程API**:掌握RMI(远程方法调用)和RMI/IIOP(Internet Inter-ORB Protocol),可以实现跨网络的分布式对象通信,是构建大型分布式系统的基石。 11. **中间件技术与JAVA集成**:了解Tuxedo、...

    java程序员的标准

    - **RMI (Remote Method Invocation)**:允许在不同虚拟机之间调用方法。 - **RMI-IIOP (Internet Inter-ORB Protocol)**:结合CORBA(Common Object Request Broker Architecture),支持跨语言、跨平台的分布式...

Global site tag (gtag.js) - Google Analytics