如果没有RMI,同一台机器上运行的两个/多个JVM如何通信?
THX
答案 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服务......来自我的头脑。你的具体情况是什么?