2

我有一个 Java 应用程序,它是一个长时间运行的进程(我们称它为“服务器”)。我必须编写一个桌面 GUI(最有可能在 Swing 中),我们称之为“客户端”,它可以连接到这个应用程序并且:

  1. 显示来自应用程序的状态更新
  2. 向应用程序提供特定的“手动触发”命令

客户端和服务器之间的每次交互(对话线程)都会很短,但可能涉及一些上下消息。实现这样的事情有哪些不同的选择?速度对我来说不是一个大问题。我更感兴趣的是我可以在不被管道细节困扰的情况下发展对话协议。我现在想到的选项是套接字、RMI、JMS 和 JavaSpaces。

4

5 回答 5

1

在Apache Camel (Java)上达到顶峰。它支持您提到的所有选项,并且在路由消息时还允许规则。

单独安装或随 Apache ActiveMQ(JMS 代理)一起安装。

于 2009-05-11T22:08:28.810 回答
0

如果可以选择通过RESTful API 扩展服务器,那可能是客户端最容易使用的一种。在简单地以 URL 术语说明 API 之后,您可以在需要时轻松地将您的客户端切换到其他语言。

于 2009-05-11T21:45:21.390 回答
0

我已经通过使用 ObjectInputStream 和 ObjectOutputStream 进行序列化命令的套接字解​​决了这个问题。

对于协议,您需要不同的对象命令(命令模式在这里很有用)。所有这些对象都应该是可序列化的。然后您可以简单地发送/接收命令。恕我直言,最简单的方法(在技术方面和实施方面)。

于 2009-05-11T21:50:31.223 回答
0

我多年来一直使用XML-RPC做这种事情。我喜欢它,因为它非常简单,可以让你在 15 分钟内运行。都是 http 和简单的 XML。

于 2009-05-11T21:39:40.773 回答
0

我同意@Norbert Hartl。Apache 有一个非常简单的 XMLRPC 实现,您可以将其与 Apache HTTPClient 一起使用。该库还有一个使用服务器接收 XMLRPC 请求的示例。

于 2009-05-12T00:35:34.357 回答