RPC与RMI的区别

分布式项目按照以下发展经历了以下技术:

CORBA:

RMI:基于远程接口的调用

RMI-RROP:这是RMI与CORBA的结合,用在了EJB技术上,EJB留给世界上是优秀的理论和糟糕的架构。

WEBSERVICE:等于XML(WSDL)+SOAP   缺点:速度太慢,处理速度太慢了;如果采用远程接口调用,要生成一堆的配置文件,很繁琐。

SOA技术:ESB(服务总线))技术

RPC技术:dubbo、利用rest实现RPC,这样的操作,速度很快,占用网络带宽较少,springcloud出现,springboot方便的项目的搭建

RMI的实现方案:

EJB的架构:相当于将RMI给无限放大,不断的远程接口调用,EJB留给世界的是优秀的理论和糟糕的实现。

webservice技术:

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6542811.html 

一:RPC 远程过程调用

RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用某种服务。

一次RPC调用的过程大概有10步:

  1.执行客户端调用语句,传送参数

  2.调用本地系统发送网络消息

  3.消息传送到远程主机

  4.服务器得到消息并取得参数

  5.根据调用请求以及参数执行远程过程(服务)

  6.执行过程完毕,将结果返回服务器句柄

  7.服务器句柄返回结果,调用远程主机的系统网络服务发送结果

  8.消息传回本地主机

  9.客户端句柄由本地主机的网络服务接收消息

  10.客户端接收到调用语句返回的结果数据

二:RMI 远程方法调用

RMI:远程方法调用(Remote Method Invocation)。能够让在客户端Java虚拟机上的对象像调用本地对象一样调用服务端java 虚拟机中的对象上的方法。

RMI远程调用步骤:

1,客户调用客户端辅助对象stub上的方法

2,客户端辅助对象stub打包调用信息(变量,方法名),通过网络发送给服务端辅助对象skeleton

3,服务端辅助对象skeleton将客户端辅助对象发送来的信息解包,找出真正被调用的方法以及该方法所在对象

4,调用真正服务对象上的真正方法,并将结果返回给服务端辅助对象skeleton

5,服务端辅助对象将结果打包,发送给客户端辅助对象stub

6,客户端辅助对象将返回值解包,返回给调用者

7,客户获得返回值

三:RPC与RMI的区别

1:方法调用方式不同:

RMI中是通过在客户端的Stub对象作为远程接口进行远程方法的调用每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口(stub)上,那么这个新方法就不能被RMI客户方所调用

RPC中是通过网络服务协议向远程主机发送请求,请求包含了一个参数集和一个文本值,通常形成“classname.methodname(参数集)”的形式。RPC远程主机就去搜索与之相匹配的类和方法,找到后就执行方法并把结果编码,通过网络协议发回。

2:适用语言范围不同:

RMI只用于Java;

RPC是网络服务协议,与操作系统和语言无关。

3:调用结果的返回形式不同:

Java是面向对象的,所以RMI的调用结果可以是对象类型或者基本数据类型;

RMI的结果统一由外部数据表示 (External Data Representation, XDR) 语言表示,这种语言抽象了字节序类和数据类型结构之间的差异。

原文地址:https://www.cnblogs.com/fengli9998/p/8628283.html

时间: 2024-10-10 11:15:40

RPC与RMI的区别的相关文章

RPC和RMI的区别(Difference Between RPC and RMI)

RPC和RMI的区别(Difference Between RPC and RMI) RPC vs RMI RPC (Remote Procedure Call) and RMI (Remote Method Invocation) are two mechanisms that allow the user to invoke or call processes that will run on a different computer from the one the user is usi

SOA,Webservice,SOAP,REST,RPC,RMI,JMS的区别与联系(转载)

原文地址:http://blog.csdn.net/pcceo1/article/details/51245249 SOA面向服务的软件架构(Service Oriented Architecture) 是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作 它的基本设计原理是:服务提供了一个简单的接口,抽象了底层的复杂性,然后用户可以访问独立的服务,而不需要去了解服务底层平台实现. 正因为SOA架构实现不依赖于技术,因此能够被各种不同的技术实现. 例如: SOAP, RPC

RPC、RMI与MOM与组播 通信原理

转:http://blog.csdn.net/you12345678901234567/article/details/7625797 远程过程调用(RPC): 即对远程站点机上的过程进行调用.当站点机A上的一个进程调用另一个站点机上的过程时,A上的调用进程挂起,B上的被调用过程执行,并将结果返回给调用进程,使调用进程继续执行[B上的被调用过程的参数和执行结果在调用和被调用进程之间是通过消息传递来实现的,表现为C/S关系] 为实现不同站点机上的RPC,调用和被调用进程各方都要保留一个用于存放过程

RPC与REST的区别

一:RPC RPC 即远程过程调用, 很简单的概念, 像调用本地服务(方法)一样调用服务器的服务(方法). 通常的实现有 XML-RPC , JSON-RPC , 通信方式基本相同, 所不同的只是传输数据的格式. (如果你已经习惯于XML繁重的尖括号,你不妨可以尝试下更加轻型,高效,传输效率高的 JSON.) 一个简单的通信过程通常为: Request <?xml version="1.0"?> <methodCall> <methodName>me

servelet,webservice,RMI的区别

最近项目中有提供或者调用别的接口,在纠结中到底是用servlet还是用webservice,所以上网查看了下他们以及RMI之间的区别,方便加深了解. 首先比较下servlet和webservice下  请求:     servlet:提供了请求/响应模式,是JAVA的一种规范,只能使用于java上,用来替代早期使用的难懂的CGI,是一种无状态的请求响应,客 户端访问一个服务器的url,只需要发送简单的httprequest即可. 规定了四个范围:pageContext.request.sessi

rpc和websocket的区别

虽然很久以前用过rpc但是当时没用过websocket,也没做过对比,现在就对比一下 rpc的用法是客户端直接调用服务端的函数,其实他就是把数据传给服务端,服务端处理完以后返回给客户端, websocket是把数据发出去,他是在tcp之上一层的,他有发送结束标志,就是一次ws.send的结束,服务器会知道,服务器按照协定可以拿出完整的一次ws.send那么区别就出来了:websocket并不关系对方拿到数据后处理的过程是否完成,而rpc是和处理过程相关的,其实他们不是同一个级别的东西.如果是短连

RPC、RMI、SOAP、WebService、Corba、COM等协议简单说明

近来系统学习了一下java分布式对象计算技术,这里做一个简单的总结: 一.RPC协议 1.JSON-RPC规范:http://json-rpc.org/wiki/specification 2.XML-RPC规范:http://www.xmlrpc.com/spec RPC协议支持xml和json两种格式的消息,使用http作为其传输协议. 参考:http://kingquake21.iteye.com/blog/1033471 二.RMI协议 RMI使用JRMP作为消息,从上图可以看出,RMI

Python中实现远程调用(RPC、RMI)简单例子

说白了,远程调用就是将对象名.函数名.参数等传递给远程服务器,服务器将处理结果返回给客户端 远程调用使得调用远程服务器的对象.方法的方式就和调用本地对象.方法的方式差不多,因为我们通过网络编程把这些都隐藏起来了.远程调用是分布式系统的基础. 远程调用一般分为两种,远程过程调用(RPC)和远程方法调用(RMI). RPC RPC属于函数级别的远程调用,其多是通过HTTP传输数据,数据形式有XML.JSON.序列化数据等.在此,用python做一个xml-rpc的示例. 先给服务器端server.p

net ads join 和net rpc join命令的区别

要将主机加入Active Directory(AD),请输入: #net ads加入-U administrator 输入管理员密码:Passw0rd 使用短域名 - SAMDOM 加入'M1'到dns域'samdom.example.com' 要将主机加入NT4域,请输入: #net rpc join -U administrator 输入管理员密码:Passw0rd 加入域SAMDOM. RPC模式是NT4域.ADS模式是活动目录. 原文地址:https://wiki.samba.org/i