【问题标题】:What is Remote Method Invocation (RMI)?什么是远程方法调用 (RMI)?
【发布时间】:2017-04-13 18:27:27
【问题描述】:

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

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

  • RMI 和 RPC 都是分布式系统相互通信的方式 OR RPC 是分布式系统相互通信的一种方式,而 RMI 仅用于 JAVA 对象进行通信彼此。

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

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

【问题讨论】:

标签: java rmi distributed-system


【解决方案1】:

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

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

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

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

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

RMI 和 RPC 做同样的事情,除了 RMI 是面向对象的或者 RMI 是一种实现 RPC 的方式(它们是相同的“级别”还是 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 是客户端调用远程对象上的方法的一种方式,并且该语句与“或”之前的内容不一致。这不是关于两个远程对象相互通信的问题,除非是特殊情况。

除了重申最初的困惑之外,我认为这些新问题没有任何作用。

【讨论】:

  • 啊,是的。 RMI 确实意味着远程方法接口。我已经编辑了我的问题以反映这一点。
  • 另外,感谢您回答这个问题,但我意识到我的观点可能表达得很糟糕。我将更改我的问题描述。
  • 是的,它 表示远程方法接口。再次。
  • 哦!天哪,太尴尬了,*是的调用
  • 接受您的回答,因为它对我有帮助。我已经确认 Java RMI 不同于远程调用/远程方法调用。大多数文本/答案在说 RMI 时并没有明显区分。 Java RMI 专门用于 Java 的远程方法调用实现。远程方法调用是分布式系统的通用术语,可以用 C++ 等其他语言完成。来源:azmuri.files.wordpress.com/2013/09/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多