我自己理解:RPC和RMI都是远程调用,属于中间件技术。RMI是针对于java语言的,它使用的是JRMP协议通信,而RPC是更大众化的,使用http协议传输。还有?
摘自:http://baike.baidu.com/view/32726.htm#3
RPC:
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
工作原理 运行时,一次客户机对服务器的RPC调用,其内部操作大致有如下十步:
摘自:http://baike.baidu.com/view/99017.htm#3
RMI(远程方法调用)的组成
一个正常工作的RMI系统由下面几个部分组成:编辑本段RMI(远程方法调用)的原理
RMI系统结构,在客户端和服务器端都有几层结构。7、启动远程对象
RMI和RPC之间最主要的区别在于方法是如何别调用的。在RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为“classname”的类中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。
http://guobetter.blog.sohu.com/159564844.html:
rpc、soap与rmi调用的区别:
传输协议的区别:
RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信,但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。
xml-rpc 这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。
相关推荐
RPC与RMI的区别主要在于,RPC是一种更抽象的远程过程调用技术,而RMI是RPC在Java语言中的一种具体实现,专门为Java环境设计。RMI不仅传递参数和返回值,还能传输Java对象,而RPC通常基于文本消息传递,例如使用HTTP...
RPC(Remote Procedure Call,远程过程调用)与RMI(Remote Method Invocation,远程方法调用)是两种在分布式系统中实现跨网络通信的关键技术。它们允许一个程序在不关心远程服务器具体实现的情况下,调用远程...
Restful、SOAP、RPC、SOA、微服务之间的知识点摘要 一、Restful * 定义:Restful 是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful 架构或服务...
3. **序列化与反序列化**:RPC调用中,客户端的请求参数需要被转换为网络传输的数据格式(通常是二进制或JSON),这个过程称为序列化;服务端接收到数据后,需要将其还原为可执行的参数,这个过程称为反序列化。 4....
它基于HTTP协议,而不是SOAP或XML-RPC,因此更加轻量级且易于使用。HttpInvokerServiceExporter会自动处理请求的序列化和反序列化,使得远程调用过程简化。 1. **服务提供者端配置**:在服务端,你需要创建一个实现...
不过,需要注意的是,随着Java技术的发展,例如Java EE和Web服务的出现,RMI在某些场景下可能已经被更现代的技术替代,如JAX-RPC和Web服务(SOAP/REST)。尽管如此,RMI仍然是理解分布式计算和Java平台核心特性的...
XML,即可扩展标记语言...综上所述,XML作为数据交换的基础,与SOAP和XML-RPC结合使用,构成了Web服务和分布式系统中重要的通信机制。理解这些技术的基本概念和工作原理对于任何IT专业人士来说都是至关重要的。
- ** 调用协议 **:定义请求和响应的结构,如SOAP、JSON-RPC或gRPC的protobuf。 **4. RPC的实现方式** - **基于接口的RPC**:如Java的RMI(Remote Method Invocation),通过接口来定义服务。 - **基于HTTP的RPC**...
在Java中,有多种实现RPC的框架,如RMI(Java Remote Method Invocation)和gRPC,它们简化了分布式系统中的跨网络通信。 3. **Ajax(Asynchronous JavaScript and XML)** Ajax不是一种单一的技术,而是一种使用...
RMI是Java平台上的一个标准RPC实现,它允许Java对象在不同的JVM之间互相调用。RMI的工作原理包括:序列化对象、传输字节流以及反序列化。在Dubbo中,RMI被用作一种通信协议,实现了服务提供者和服务消费者之间的远程...
Web 服务协议如 SOAP、REST 和 XML-RPC 提供了将这些遗留应用程序与网络集成的途径。本文主要关注 XML-RPC,这是一种简单且轻量级的消息传递协议,支持基于 XML 的跨平台通信,特别适合 C++ 应用程序。 **为什么要...
Hadoop中的RPC机制是基于Java的IPC(Inter-Process Communication)实现的,它在设计时考虑了性能、效率和可控制性,因此与RMI(Remote Method Invocation)等其他RPC方案有所不同。 1. **RPC原理**: Hadoop的RPC...
Spring通过RmiProxyFactoryBean支持RMI服务的透明调用,客户端无需关心底层的网络通信细节,只需要像调用本地方法一样调用远程服务。 3. **Hessian**:Hessian是一种轻量级的二进制RPC协议,由Caucho公司开发。它...
6. **处理异常**:RMI调用可能会抛出`java.rmi`包下的异常,如`RemoteException`,需要正确捕获和处理。 RMI的应用场景广泛,如分布式数据库系统、分布式计算、多用户协作应用等。然而,由于RMI的安全性、性能和...
将CXF与RMI和HESSIAN结合,可以在Web服务框架中实现高效的远程调用。通过CXF,我们可以轻松地定义服务接口,并利用RMI实现在不同JVM间的通信。而Hessian作为CXF的一个绑定,可以进一步优化RMI的性能,使得跨网络的...
RMI是Java特有的远程调用协议,它模仿了在同一JVM内调用对象的方法,实现了跨JVM的RPC。在RMI中,客户端通过Stub对象将请求序列化为Java ObjectStream,然后通过Socket发送到服务器端。服务器端的Skeleton接收流并反...
6. **Dubbo**:阿里巴巴开源的Java RPC框架,它提供了服务注册与发现、负载均衡、容错、流量控制和调用链路监控等功能,广泛应用于企业级分布式系统。 7. **Thrift**:Facebook开发的跨语言服务开发框架,它定义了...
与传统的XML-RPC或SOAP相比,Hessian的序列化格式更为紧凑,因此在网络传输中能显著降低带宽需求,提高性能。 Hessian的核心特性包括: 1. **二进制协议**:Hessian采用二进制编码,比文本协议(如XML)更节省网络...
随着技术的发展,出现了多种框架实现远程调用,其中包括DCE/RPC、CORBA、DCOM、MTS/COM+、Java RMI、Java EJB、Web Services/SOAP/XML-RPC以及.NET Remoting。本文将深入探讨.NET Remoting的原理与实现,以及其与...