Java RMI和RPC有什么区别?

问题

Java RMI和RPC之间的实际区别是什么?

我在某些地方读过RMI使用对象?


#1 热门回答(116 赞)

RPC是基于C的,因此它具有结构化编程语义,另一方面,RMI是基于Java的技术,它是面向对象的。

使用RPC,你可以调用导出到服务器的远程函数,在RMI中,你可以引用远程对象并调用它们的方法,还可以传递和返回可以分布在许多JVM实例中的更多远程对象引用,因此它更强大。

当需要开发比纯客户端 - 服务器架构更复杂的东西时,RMI脱颖而出。通过网络分布对象非常容易,使所有客户端能够进行通信,而无需明确地建立单独的连接。


#2 热门回答(36 赞)

RPC和RMI之间的主要区别在于RMI涉及对象。我们不是使用代理功能远程调用过程,而是使用代理对象。

RMI具有更高的透明度,即由于技术被集成到语言中而利用对象,引用,继承,多态和异常。

RMI也比RPC更先进,允许动态调用,接口可以在运行时更改,以及对象适应,这提供了额外的抽象层。


#3 热门回答(12 赞)

1.方法:
RMI使用面向对象的范例,用户需要知道对象和他需要调用的对象的方法。

RPC不处理对象。相反,它调用已经建立的特定子例程。
2.工作:
使用RPC,你将获得一个看起来非常像本地调用的过程调用。 RPC处理将调用从本地传递到远程计算机所涉及的复杂性。

RMI做了同样的事情,但RMI传递了对象和被调用方法的引用。
RMI = RPC Object-orientation3.更好的一个:
与RPC相比,RMI是一种更好的方法,特别是对于较大的程序,因为它提供了更清晰的代码,如果出现问题则更容易识别。
4.系统示例:
RPC系统:SUN RPC,DCE RPC

RMI系统:Java RMI,CORBA,Microsoft DCOM / COM,SOAP(简单对象访问协议)