Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是远程方法调用(RMI)?_Java_Rmi_Distributed System - Fatal编程技术网

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

Java 什么是远程方法调用(RMI)?,java,rmi,distributed-system,Java,Rmi,Distributed System,我找到了许多关于RMI的解释,这些解释似乎涉及不同的事情。我发现了一些相互矛盾的观点 (已解决)RMI与语言无关或RMI仅用于JAVA(感谢@EJP参考RMI/JRMP和RMI/IIOP) RMI和RPC都是分布式系统相互通信的方式或RPC是分布式系统相互通信的方式,RMI仅用于JAVA对象相互通信 远程方法调用是一个广义的术语,描述分布式系统如何相互通信或RMI是一个专门描述远程Java对象如何相互通信的术语 有人能就这些冲突点给出RMI的定义吗 什么是远程方法接口(RMI) 事实并非如此

我找到了许多关于RMI的解释,这些解释似乎涉及不同的事情。我发现了一些相互矛盾的观点

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

  • RMI和RPC都是分布式系统相互通信的方式RPC是分布式系统相互通信的方式,RMI仅用于JAVA对象相互通信

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

有人能就这些冲突点给出RMI的定义吗

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

事实并非如此。它是远程方法调用

我发现了一些相互矛盾的观点

RMI与语言无关,或者RMI仅用于JAVA

我不知道在其他语言中还有什么叫做RMI的东西,如果它们存在,它们就不能与JavaRMI通信。我很想知道你在哪里读到其他的东西

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

这些语句并不冲突,但RMI并不是真正实现RPC的一种方式,我很好奇您在哪里读到了其他内容。RMI是对象上的远程方法调用,其中RPC是没有对象的远程过程调用

RMI仅在JAVA中是远程方法调用,或者远程方法调用可以通过CORBA、.NET远程处理、JAVA RMI或其他方式实现。 有人能就这些冲突点给出RMI的定义吗

RMI/JRMP和RMI/JERI仅限于Java。RMI/IIOP也是纯Java的,但它可以与其他语言中的CORBA实现进行互操作,但会受到各种限制。网络远程处理完全是另一回事

重新编辑:

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

或者RPC是分布式系统相互通信的一种方式,RMI仅用于JAVA对象相互通信

不是。RMI是面向对象的RPC。在你要求编辑之前,我已经说过了

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

可以互相交流

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

不是。RMI是客户端调用远程对象上的方法的一种方式,并且该语句与“or”之前的语句不一致。它不是关于两个远程对象之间的通信,除非是作为一种特殊情况


我不认为这些新问题除了重述原来的混乱之外什么都不做。< / P >啊,是的。RMI并不意味着远程方法接口。我编辑了我的问题以反映这一点。同时,感谢您回答这个问题,但我意识到我的观点可能措辞不当。我将更改我的问题描述。啊,是的,它并不意味着远程方法接口。又来了,噢!天哪,太尴尬了,*是的,我接受了你的回答,因为它帮助了我。我已经确认JavaRMI不同于远程调用/远程方法调用。但是,大多数文本/答案在说RMI时并没有明显的区别。JavaRMI专门用于Java的远程方法调用实现。远程方法调用是分布式系统的通用术语,可以用C++等其他语言来完成。资料来源:你只需点击标签就可以得到一大堆信息谢谢你的提示,但我发现许多答案相互冲突,这就是为什么我提出了一个新问题。它到底在哪里说RMI是独立于语言的?我的讲师在幻灯片中提到了它,你提到了RMI/IIOP,我理解这意味着RMI超过IIOP,可以独立于语言。从这里,我点击了远程方法调用,并被引导到这里。他们给出了CORBA/JavaRMI/的示例。。。我知道维基百科并不是一个可靠的来源。幻灯片7给出了CORBA的示例,它是独立于语言的幻灯片3幻灯片15或第8/18页,这在一页中有两张幻灯片