什么是远程方法调用(RMI)?

时间:2017-04-13 18:27:27

标签: java rmi distributed-system

我找到了很多关于RMI的解释,这些解释似乎指的是不同的东西。这些是我发现的一些相互矛盾的观点。

  • (已解决)RMI与语言无关 OR RMI仅适用于JAVA(感谢@EJP参考RMI / JRMP和RMI / IIOP)

  • RMI和RPC是分布式系统相互通信的两种方式 OR RPC是分布式系统相互通信的一种方式,RMI仅供JAVA对象与之通信彼此。

  • 远程方法调用是一个广义术语,描述了分布式系统如何相互通信 OR RMI是一个专门描述远程Java对象如何相互通信的术语

    < / LI>

有人可以就这些冲突点给出RMI的定义吗?

1 个答案:

答案 0 :(得分:2)

  

什么是远程方法接口(RMI)?

不是。它是远程方法调用。

  

这些是我发现的一些相互矛盾的观点。

     

RMI与语言无关或RMI仅适用于JAVA

我不知道其他语言中有任何其他称为RMI的东西,如果它们存在,则无法与Java RMI通信。我很想知道你在哪里阅读。

  

RMI和RPC做同样的事情,除了RMI是面向对象的或者RMI是一种实现RPC的方式(它们是相同的&#34;级别&#34;还是RMI是RPC的一个例子?)

这些陈述没有冲突,但RMI实际上并不是实施 RPC的一种方式,而且我很好奇你在哪里阅读。 RMI是远程方法调用,位于对象上,其中RPC是远程过程调用,没有对象。

  

RMI只是JAVA中的远程方法调用或者远程方法调用可以使用CORBA,.NET Remoting,JAVA RMI或其他方式实现。   有人可以就这些冲突点给出RMI的定义吗?

RMI / JRMP和RMI / JERI仅限Java。 RMI / IIOP也只是Java,但它可以与其他语言的CORBA实现互操作,但受到各种限制。 .NET Remoting完全不同。

重新编辑:

  

RMI和RPC是分布式系统相互通信的两种方式

  

OR RPC是分布式系统相互通信的一种方式,RMI仅供JAVA对象相互通信。

没有。 RMI是面向对象的RPC。在您编辑之前我已经说过了。

  

远程方法调用是一个广义的术语,描述了分布式系统如何相互通信

可以相互沟通。

  

OR RMI是一个专门描述远程Java对象如何相互通信的术语。

没有。 RMI是客户端在远程对象上调用方法的一种方式,该语句与&#39;或&#39;之前的内容不一致。它不是关于两个远程对象相互通信,除非是特殊情况。

除非重申最初的困惑,否则我不会认为这些新问题可以做任何事情。