博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RMI和RPC的区别
阅读量:3675 次
发布时间:2019-05-21

本文共 691 字,大约阅读时间需要 2 分钟。

转自:

远程对象方法调用并不是新概念,远程过程调用 (RPC-remote procedurecall) 已经使用很多年了。远程过程调用被设计为在应用程序间通信的平台中立的方式,它不理会操作系统之间以及语言之间的差异。即 RPC 支持多种语言,而 RMI(RemoteMethodInvocation)只支持 Java 写的应用程序。

另外 RMI 调用远程对象方法,允许方法返回 Java 对象以及基本数据类型。而 RPC 不支持对象的概念,传送到 RPC 服务的消息由外部数据表示 (ExternalData Representation,XDR) 语言表示,这种语言抽象了字节序类和数据类型结构之间的差异。只有由 XDR 定义的数据类型才能被传递, RPC 不允许传递对象。可以说 RMI 是面向对象方式的 JavaRPC 。

RMI和RPC之间最主要的区别在于方法是如何被调用的。在RMI中,远程接口使每个远程方法都具有方法签名。如果一个方法在服务器上执行,但是没有相匹配的签名被添加到这个远程接口上,那么这个新方法就不能被RMI客户方所调用。

在RPC中,当一个请求到达RPC服务器时,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式。这就向RPC服务器表明,被请求的方法在为“classname”的类中,名叫“methodname”。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。这里的参数类型是与RPC请求中的类型是匹配的。一旦匹配成功,这个方法就被调用了,其结果被编码后返回客户方。

 

转载地址:http://svhbn.baihongyu.com/

你可能感兴趣的文章
import_Keyword
查看>>
int_Keyword
查看>>
超详细解读:神经语义解析的结构化表示学习 | 附代码分析
查看>>
在 CentOS 6 里安装 OpenJDK 1.8 和 Tomcat 8.5
查看>>
在 Debian 9 里安装 php5.3 fpm
查看>>
【干货合集】12篇文章带你读懂敏捷架构!
查看>>
手把手教你从零搭建深度学习项目(附链接)
查看>>
主题演讲:漏洞扫描在Web安全的应用
查看>>
量子计算会成为下一次革命的新机会吗?
查看>>
getValueFromEvent和shouldUpdate
查看>>
2019/07/18 kvm虚拟化(04)
查看>>
2019/07/24 git server(05)
查看>>
2019/07/24 搜索引擎及ES概述(01)
查看>>
2019/07/29 Linux容器和lxc(01)
查看>>
2019/07/31 docker容器和镜像(03)容器部分
查看>>
Dubbo与spi扩展
查看>>
微服务面试笔记
查看>>
SpringCloud-基础设施即服务day3-Docker上
查看>>
SpringCloud-基础设施即服务day4-Docker中
查看>>
SpringCloud-基础设施即服务day5-DockerCompose
查看>>