Answers:
RPC基于C,因此具有结构化的编程语义,另一方面,RMI是基于Java的技术,并且它是面向对象的。
使用RPC,您可以仅调用导出到服务器中的远程函数,在RMI中,您可以具有对远程对象的引用并调用它们的方法,还可以传递并返回更多可以在许多JVM实例之间分发的远程对象引用,因此它的功能要强大得多。 。
当出现需要开发比纯客户端-服务器体系结构更复杂的内容时,RMI会脱颖而出。在网络上散布对象非常容易,使所有客户端都可以进行通信,而不必显式地建立单独的连接。
RPC和RMI之间的主要区别在于RMI涉及对象。与其使用代理功能远程调用过程,不如使用代理对象。
RMI具有更高的透明度,即由于将对象,引用,继承,多态性和异常集成到该语言中,因此可以充分利用该语言。
RMI还比RPC更高级,它允许动态调用(其中接口可以在运行时更改)和对象适配(对象适配)提供了附加的抽象层。
1.方法:
RMI使用面向对象的范例,其中用户需要了解对象以及需要调用的对象方法。
RPC不处理对象。而是,它调用已建立的特定子例程。
2.工作:
使用RPC,您将获得一个过程调用,该过程调用看起来非常像本地调用。RPC处理将呼叫从本地计算机传递到远程计算机所涉及的复杂性。
RMI做同样的事情,但是RMI将引用传递给对象和被调用的方法。
RMI = RPC +面向对象
3.更好的一个:
与RPC相比,RMI是更好的方法,特别是对于大型程序,因为它提供了更清晰的代码,可以更轻松地识别出问题。
4.系统示例:
RPC系统: SUN RPC,DCE RPC
RMI系统: Java RMI,CORBA,Microsoft DCOM / COM +,SOAP(简单对象访问协议)
RMI或远程方法调用与RPC或远程过程调用非常相似,因为客户端都向服务器发送代理对象(或存根),但是细微的区别是客户端RPC 通过代理函数调用FUNCTIONS,而RMI通过代理函数调用方法 。代理功能。RMI被认为是稍微优越的,因为它是 RPC 的面向对象版本。
从这里。
有关更多信息和示例,请在此处查看。
RPC是基于C的旧协议,它可以调用远程过程并使它看起来像本地调用.RPC处理将远程调用传递给服务器并将结果传递给客户端的复杂性。
Java RMI也实现了相同的功能,但略有不同,它使用了对远程对象的引用,因此它的作用是将对远程对象的引用与要调用的方法的名称一起发送出去。大型程序的情况下,通过代码编写代码以及通过网络分配对象,可使多个客户端调用服务器中的方法,而不必分别建立每个连接。
RMI
在Java中就像gRPC
在.Net中一样……