【发布时间】:2013-11-03 12:28:30
【问题描述】:
没有任何Java RMI的经验,我有一个幼稚的问题,但搜索互联网后仍然不确定答案。
问题:
对我来说,有两种情况:
场景一:从本地启动一个Java程序,在执行过程中,它会从存储在远程机器上的类中调用一个方法,然后将该方法的类下载到本地机器,然后继续执行。
场景2:从本地启动一个Java程序,在执行过程中,它调用存储在远程机器上的类中的方法,然后该方法将在远程机器上执行,并且结果将被发送回本地机器。 (这需要类/对象转移吗?)
Java RMI 使用哪一个?还是两者都没有?
来自Wikipedia of RPC:“RPC 允许计算机程序使子例程或过程在另一个地址空间(通常在共享网络上的另一台计算机上)执行”,似乎是第二种情况。
但根据这篇论文Reducing Data Transfer during Remote Classloading in Java RMI,似乎是第一种情况。
【问题讨论】:
-
链接论文的哪一部分让您认为这是场景 #2?
-
@StephenCS 链接的论文让我觉得这是场景 #1,因为它提到了远程类加载(对我来说,将远程类加载到本地)。
-
远程类加载并不意味着。这意味着从远离代码运行位置的位置加载类(代码)。代码移动到 RMI 目标对象......反之亦然。
-
@StephenC 这里的“代码移动到RMI目标对象”,你的意思是在RMI的情况下代码被移动到远程机器吗?
标签: java rmi rpc dynamic-class-loaders