`

RMI,RPC,SOAP对比分析

阅读更多

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp60

 

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(Remote Method Invocation,远端过程调用) 与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 HeaderSOAP 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文件生成自己语言的客户端。

5、其他

       其他还有REST、Axis等

 

下面是RMI、RPC和SOAP的比较

 

 

RMI

RPC

SOAP

通信方式

远程对象按照好象它是本地行事.客户机应用程序直接调用远 程对象存根上的方法

客户机不直接调用方法,而是向服务器发送请求消息。

在XML-RPC上,使用规定的XML格式的数据格式来通信。比XML-RPC更具适用性,能够支持更多的类型及数据结构。

优点

远程对象按照好象它是本地行事,编译期可以检查错误

它允许客户机与服务器之间有更大的独立性。

服务器无需让客户机知道,就可以完全关机和被替换

非常适合异步通信和针对松耦合的客户机和服务器

缺点

只能基于java语言。异常信息容易丢失。客户机与服务器紧耦合。

丧失了许多可以确保方法和参数是正确的编译时便利。

必须做大量的运行时检查,而且开发人员丧失了许多可以确保方法和参数是正确的编译时便利。

 

分享到:
评论

相关推荐

    RPC、RMI、SOAP的区别详解

    在实际应用中,选择RPC、RMI还是SOAP,主要取决于具体的应用需求、技术栈以及对跨平台、跨语言的要求。如果项目仅限于Java环境,则RMI可能是较好的选择,因为它的开发和使用相对简单,且可以很好地与Java生态系统...

    Restful、SOAP、RPC、SOA、微服务之间.docx

    Restful、SOAP、RPC、SOA、微服务之间的知识点摘要 一、Restful * 定义:Restful 是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful 架构或服务...

    RPC_RMI.zip_rpc

    7. **与其他技术的比较**:比如SOAP、RESTful API、gRPC等现代RPC框架的对比分析。 了解和掌握RPC与RMI对于开发分布式系统和构建可扩展的网络服务至关重要,它们为跨网络的协作提供了强大的工具,使得软件设计可以...

    XML简介+SOAP+XML-RPC

    XML,即可扩展标记语言...综上所述,XML作为数据交换的基础,与SOAP和XML-RPC结合使用,构成了Web服务和分布式系统中重要的通信机制。理解这些技术的基本概念和工作原理对于任何IT专业人士来说都是至关重要的。

    RMI.zip_Java RMI_RMI java_rmi

    不过,需要注意的是,随着Java技术的发展,例如Java EE和Web服务的出现,RMI在某些场景下可能已经被更现代的技术替代,如JAX-RPC和Web服务(SOAP/REST)。尽管如此,RMI仍然是理解分布式计算和Java平台核心特性的...

    RPC的简单实现

    - **基于接口的RPC**:如Java的RMI(Remote Method Invocation),通过接口来定义服务。 - **基于HTTP的RPC**:如XML-RPC和JSON-RPC,利用HTTP作为传输协议,使用XML或JSON进行数据交换。 - **基于消息的RPC**:如...

    Java术语详解(JMS、RPC、Ajax、SOAP、WSDL、JPA、ORM、mvc和JNDI)

    在Java中,有多种实现RPC的框架,如RMI(Java Remote Method Invocation)和gRPC,它们简化了分布式系统中的跨网络通信。 3. **Ajax(Asynchronous JavaScript and XML)** Ajax不是一种单一的技术,而是一种使用...

    使用 XML-RPC 为 C++ 应用程序启用 Web 服务

    **XML-RPC 与 REST 的对比** XML-RPC 和 REST(代表性状态转移)都是基于 HTTP 的协议,但它们的设计理念不同。XML-RPC 主要关注远程过程调用,其设计简洁,允许传输和处理复杂数据结构。REST 则更注重状态管理和...

    DuBBo(rmi+Hessian).zip

    通过这个压缩包中的“Dubbo-Hessian”和“Dubbo-rmi”文件,你可以深入理解这两种协议在Dubbo框架中的应用,包括它们的配置、优缺点以及性能对比。这将有助于提升你在分布式系统设计和实施中的技能。 总之,Dubbo...

    soap破解版

    调试各种http webservice rmi等各种rpc远程接口调试。

    使用SOAP开发JavaWeb服务详解

    3. **通信模型**:规范了如何通过SOAP消息进行远程过程调用(RPC)或文档驱动的消息交换等通信方式。 4. **绑定机制**:定义了如何将SOAP消息绑定到特定的传输协议上,如HTTP、SMTP等。 ##### 示例消息结构 下面...

    CXF+RMI+HESSIAN

    CXF支持多种协议,包括SOAP、RESTful以及WS-*标准。它提供了一个全面的工具集,用于开发、部署和管理Web服务,使得开发者能够快速地构建服务端和客户端应用程序。 【RMI】 RMI是Java平台上的远程对象调用机制,它...

    JAVA RMI 学习

    然而,由于RMI的安全性、性能和网络问题,现代的Java开发中常常会采用其他技术,如Java RMI的替代品如Web服务(SOAP或RESTful)、Hadoop的RPC框架或者更现代的分布式计算库如Apache Thrift和gRPC。 总的来说,深入...

    基于SOAP的分布式GIS模型.pdf

    SOAP相比于CORBA、Java RMI和COM+等RPC协议,具有显著的优势。首先,SOAP的使用相对简单,学习成本较低,而其他RPC技术则较为复杂,且不同平台之间的应用程序互操作性较差,需要复杂的协议转换。其次,SOAP能轻松...

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

    Java RMI 不同的是,XML-RPC 使用 XML 作为数据交换格式,而非 Java 对象的序列化。XML-RPC 的核心思想是通过 HTTP 协议传递 XML 编码的远程调用请求,使得不同的编程语言之间可以进行跨平台的远程调用。 1、传输的...

    学习hadoop源代码,RPC部分.pdf

    - **序列化**:Hadoop使用二进制序列化,而不是SOAP或XML-RPC,因为二进制序列化更高效,且能更好地控制对象的读写。序列化时,需要精确控制如何处理对象,因为这是Hadoop的核心需求。而使用标准的序列化库,可能...

    学习hadoop_源代码,RPC_部分

    Hadoop RPC 选择使用二进制序列化而非 SOAP 或 XML-RPC,这是因为二进制序列化提供了更高的性能和更精确的控制。开发者可以通过精确地控制对象的写入和读取方式来提高效率。 **不使用 RMI 的原因**: - 对于 Hadoop...

    dwr2.0jar包

    DWR是一个Java开源库,帮助你实现Ajax网站。 它可以让你在浏览器中的Javascript...这种Java和Javascript之间的远程调用会让DWR用户感觉像是曾经习惯使用的RMI或SOAP的RPC机制。而且这一过程还不需要额外的浏览器插件。

    modern-rpc:RPC,现代方式

    随着技术的发展,RPC已经进化出了多种实现方式,包括REST、SOAP、gRPC和RMI等。让我们深入探讨这些现代RPC技术。 1. REST(Representational State Transfer):REST是一种基于HTTP协议的网络应用程序设计风格和...

Global site tag (gtag.js) - Google Analytics