RPC与RMI的区别

请大侠解释RPC与RMI的区别?1RMI局限在JAVA范围内,RPC支持多语言?2RPC同步,RMI支持异步?... 请大侠解释RPC与RMI的区别? 1RMI局限在JAVA范围内,RPC支持多语言? 2RPC同步,RMI支持异步? 展开
 我来答
后默才海瑶
2019-08-11 · TA获得超过3706个赞
知道大有可为答主
回答量:3114
采纳率:33%
帮助的人:223万
展开全部
RMI和RPC之间最主要的区别在于方法是如何被调用的。在RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。
在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为“classname”的类中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。
远程对象方法调用并不是新概念,远程过程调用
(RPC-remote
procedure
call)
已经使用很多年了。远程过程调用被设计为在应用程序间通信的平台中立的方式,它不理会操作系统之间以及语言之间的差异。即
RPC
支持多种语言,而
RMI(Remote
Method
Invocation)只支持
Java
写的应用程序。
另外
RMI
调用远程对象方法,允许方法返回
Java
对象以及基本数据类型。而
RPC
不支持对象的概念,传送到
RPC
服务的消息由外部数据表示
(External
Data
Representation,
XDR)
语言表示,这种语言抽象了字节序类和数据类型结构之间的差异。只有由
XDR
定义的数据类型才能被传递,
RPC
不允许传递对象。可以说
RMI
是面向对象方式的
Java
RPC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式