Java:套接字还是RMI?

我需要将我们的应用程序分成轻量级的gui应用程序和业务逻辑应用程序。 这不是客户端/服务器设置,因为“服务器”组件只有一个客户端。

应用程序的另一个限制是它只有一个入口/出口点。 因此,如果我们使用RMI,它将只能在一个函数上。 所有表单数据已经包装成一个字符串并通过一个传输区域。

我应该只使用Java套接字来增强此应用程序,还是使用RMI? 还是其他一些Java技术?

我之前的post概述了我们的应用程序的要求,但它没有得到答复。 https://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp

干杯。

就个人而言,如果您只有一种方法可以调用RMI,那么RMI似乎有些过分,并且您的所有数据都已包含在字符串中。 我想一个简单的套接字服务器就足以满足您的需求。 但是,RMI确实免费提供了一堆东西,比如multithreading,分布式垃圾收集,对象编组等等。但是如果你只有1个客户端,那么multithreading可能没有用,因为你正在做你自己的对象编组然后这些好处可能无法获得任何好处。

这里有关于rmifunction的好页面: http : //java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp

因为你的协议已经非常简单了(你只是传递一个字符串)我建议你只使用套接字。 例如,优势在于您不会在两端与Java捆绑在一起 – 可以轻松地将UI切换到另一种语言。

完成使用原始套接字进行通信的应用程序,使用RMI以及使用SOAP的应用程序,使用RMI最简单(通过一个简单的头发),但是你必须使用Java来完成所有事情。 RMI最简单的关键在于它确保发送整个消息包含一个基本的发现框架,但它没有SOAP的复杂性(这比上面列出的所有其他内容复杂得多)。

您可以考虑将服务器入口点包装为servlet并从客户端执行POST。