使用Java在远程PC上运行程序

时间:2011-01-05 16:20:08

标签: java

我正在创建一个应用程序,其中有一个中央(服务器?)PC。

当处于中央PC中的特定位置(或事件)时,将转储XML文件。该程序读取提供远程PC IP的XML(任何PC)。 该命令被发送到该PC,该PC将执行该命令。

该命令可以是各种类型中的一种,并且对于PC具有单独的类文件的每个命令。 按命令,它将创建该类型的对象并运行所需的方法。

问题:我可以用什么技术实现这种架构?

4 个答案:

答案 0 :(得分:0)

好的,你的问题是什么?

最简单的方法可能是使用RMI。

但是,您是否考虑过使用JMS队列,因为这样可以让您在多台PC上均匀分配工作,而无需将特定PC分配给特定任务。即,您为队列指定要执行的任务,下一个可用的PC执行该任务。

答案 1 :(得分:0)

查看Java RMI

强制性Wiki link并引用为什么这可以适用于您的实施:

  

Java远程方法调用   应用程序接口   (API)或Java RMI是Java   应用程序编程接口   执行面向对象   相当于远程过程调用   (RPC)。   (甚至跨越机器边界)

答案 2 :(得分:0)

RMI也是第一个出现在我脑海中的人。但我认为要给出一个非常好的答案,我们需要更多关于远程PC上做什么的细节。我的猜测是你正在构建一个分布式Worker Thread Pattern

其他选项可以是:

JMS。 网页服务。 等

答案 3 :(得分:0)

您有几个选项..您可以使用RMI,您可以拥有JMS队列/主题甚至是Http Pub / sub。其中每一个都有利弊。

使用RMI,您可以使远程PC在启动时打开与服务器的连接,以避免出现防火墙问题。这样,您只需要在中央PC上打开传入/传出端口。

使用JMS,您可以将每个远程PC的侦听器注册到JMS容器打开的主题/队列。您在队列/主题中放置的任何消息,您都有使用IP设置的消息过滤器,这样消息将只发送到一台目标PC。我喜欢这种方法,因为您的远程PC和中央PC之间失去耦合。但是在这种方法中,由于您的远程PC和中央PC之间没有开放连接,因此您的中央PC将无法获得与RMI系统相似的控制。