没有RMI的两个JVM之间的通信?

时间:2010-03-27 02:17:13

标签: java rmi

如果没有RMI,同一台机器上运行的两个/多个JVM如何通信?

THX

3 个答案:

答案 0 :(得分:3)

如果您担心JVM与JVM通信的安全性与使用Wireshark等进行窥探,您可以考虑通过SSL安全通道或等效通道进行RMI通信。

但是,如果有人能够在与两个JVM相同的计算机上运行Wireshark,那么这可能不足以解决您的问题。使用RMI的替代方案也不会让你更安全。

首先,如果坏人有足够的权限运行Wireshark,他们几乎肯定有权以破坏您使用安全通道的方式干扰JVM。例如,他们可能会将调试器附加到JVM,或者破解应用程序代码(通过文件系统)泄漏您要保护的信息。

简而言之,你最好只使用RMI,并花时间确保坏人无法进入你的机器运行Wireshark(等)。

答案 1 :(得分:2)

沟通或调用方法?

您可以随时打开套接字并通过任意协议直接通信,甚至可以以序列化形式来回传递对象。在大多数操作系统上,同一台机器上的进程之间的套接字连接比机器之间的连接更快,更有效。

一个好的起点是看JMS tutrial。 JMS需要额外的代理进程,但使JVM之间的通信变得轻而易举。

还有像J2EE甚至基于http的XML-RPC之类的东西,但这些可能对你的需求来说太过分了。

答案 2 :(得分:1)

套接字,远程EJB,Web服务......来自我的头脑。你的具体情况是什么?