2010-04-12 44 views
7

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

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

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

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

干杯。

+0

可能的重复http://stackoverflow.com/questions/2604528/terminal-panel-pc-single-server-solution-client-server-or-rdp – paxdiablo 2010-04-12 08:31:26

+0

我想你自己已经回答了这个问题。如果它是轻量级和单一用户,并且您对RMI感到满意,那么您应该继续使用它。 – 2010-04-12 08:34:55

+1

@paxdiablo *可能*重复? :) – oedo 2010-04-12 08:35:35

回答

6

个人而言,如果你只有一个方法可以调用,并且你的所有数据已经​​被包装在一个字符串中,RMI看起来有点矫枉过正。我想象一个简单的套接字服务器就足够满足您的需求。然而,RMI会给你一些免费的东西,比如多线程,分布式垃圾回收,对象编组等,但是如果你只有一个客户端,那么多线程可能没有用,因为你正在做自己的对象编组,这些好处可能不会带来任何收益。

有关于RMI的能力,良好的页面在这里:http://java.sun.com/javase/technologies/core/basic/rmi/whitepaper/index.jsp

+0

这就是我的想法。保持简单,或使用RMI,以后再利用其他功能。我仍然不确定,但我只是想确保没有其他框架/ API我不知道。干杯。 – StillLearning 2010-04-13 05:55:21

2

因为你的协议已经非常简单了(你只需要传递一个字符串)我建议你只需要使用套接字。 的好处是,例如,你不会被束缚在Java的两端 - 它可以很容易地将UI切换到另一种语言。

1

您可以考虑包装你的服务器入口点作为一个servlet和做来自客户端的POST。

+0

是的,负责编组和解组。唯一的缺点是,我们需要Web服务器。 – 2015-05-29 07:19:28

2

在完成了使用原始套接字进行通信的应用程序之后,使用RMI的应用程序和使用SOAP的应用程序使用RMI最简单(但通过简单的方式),但是然后强烈地使用Java来处理所有事情。 RMI最简单的关键在于它确保发送整个消息包含一个基本的发现框架,但它没有SOAP的复杂性(比上面列出的其他所有内容复杂得多)。