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

What is Remote Method Invocation (RMI)?

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

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

What is Remote Method Interface (RMI)?

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

These are some conflicting points I have found.

RMI is language independent OR RMI is for JAVA only

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

RMI and RPC do the same thing except RMI is object-oriented OR RMI is a way of implementing RPC (Are they the same "level" or is RMI an example of RPC?)

这些陈述并不冲突,但 RMI 并不是 实现 RPC 的真正方式,而且我再次很好奇您在何处阅读其他内容。 RMI 是对 对象 的远程 方法 调用,而 RPC 是远程 过程 调用,没有对象。

RMI is Remote Method Invocation in JAVA only OR Remote Method Invocation can be implemented with CORBA, .NET Remoting, JAVA RMI or other ways. Could someone give a definition of RMI in regards to these conflicting points?

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

关于你的编辑:

RMI and RPC are both ways for distributed systems to communicate with each other

是的。

OR RPC is a way for distributed systems to communicate with each other and RMI is only for JAVA objects to communcicate with each other.

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

Remote Method Invocation is a broad term that describes how distributed systems communicate with each other

可以相互通信。

OR RMI is a term that specifically describes how Remote Java Objects communicate with each other.

没有。 RMI 是客户端调用远程对象方法的一种方式,该语句与 'or' 之前的内容并不矛盾。它不是关于两个远程对象相互通信,除非是特殊情况。

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