【问题标题】:Java Server application architecture with Swing thin client带有 Swing 瘦客户端的 Java Server 应用程序架构
【发布时间】:2009-07-07 01:42:01
【问题描述】:

我目前正在寻找设置客户端/服务器应用程序。我计划将客户端编写为 Swing 瘦客户端。我不太确定应该如何设置服务器端应用程序。

Java 服务器端应用程序将具有应用程序业务逻辑、数据库访问等。我在网上看到很多关于设置使用 Web 前端的 Java 服务器端应用程序的信息。所以我看到了很多关于 Tomcat 和完整的应用程序服务器(如 JBOSS 等)的信息。由于我不会使用 Web 前端,所以我不确定应该如何设置服务器。我一直在研究 Spring 以及 Java EE。

这些是我最好的选择吗?还有其他我没有想到的选择吗?我应该一起使用它们还是可以单独使用它们?

如果我只打算使用 Java EE,我是否需要一个完整的应用程序服务器,如 JBOSS、Weblogic、Websphere 等,或者这是否太过分了?如果我还想使用 JMS,我应该也使用应用程序服务器还是有其他选择?我的第一个想法是应用服务器有点过头了,但我不确定。

提前感谢您的所有想法!

【问题讨论】:

  • 不是混蛋,但是“swing”和“thin”在一个句子中很少并排放置。 :) 你看过 GWT 吗?它具有原生客户端的编码感觉和 Web 客户端的真正精简特性。

标签: java swing spring jakarta-ee


【解决方案1】:

我想我和你的情况差不多。我打算继续使用 Swing + Spring + JPA。远程处理应通过 Spring Http Invoker 完成。唯一的缺点是您需要一个像 Tomcat 或 Jetty 这样的 servlet 容器来将 http 请求路由到 Spring bean。但是像 winstone(Hudson CI 使用)这样的服务器非常轻量级,可以嵌入到应用程序中。

拥有 Spring 后端意味着您不需要应用程序服务器。但是如果您将来需要应用服务器,Spring 也可以无缝支持。

【讨论】:

    【解决方案2】:

    如果您不使用所提供的功能,应用程序服务器就是一种过度杀伤。如果您的应用程序只有 JSP 和 Servlet,那么 Tomcat 是更好的选择。如果使用 EJB,那么您需要像 Jboss 这样的应用服务器。

    您首先要决定的是您的 Swing 客户端将如何与您的服务器交互。你会使用 HTTP 协议、EJB 查找、简单 RMI 等吗?

    如果您的客户端将被位于服务器网络之外的人使用,那么您应该使用 HTTP 协议,这样 Servlet 是最佳选择。您也可以将您的服务器公开为 Web 服务。如果客户端用户在服务器网络中,那么您可以在这里使用 EJB 或套接字编程甚至 http 之类的任何东西。

    您当然可以在服务器和客户端中使用 Spring。 Spring 是一个大框架,您需要决定要使用哪些功能。 Spring 可用于 servlet 环境、EJB 环境或任何其他环境。

    【讨论】:

    • 使用 HTTP/HTTPS 无疑是一个不错的通信选择,因为防火墙和代理的问题要少得多。在类似的情况下(SWT 'thin' application + Tomcat),我们使用 Spring httpinvoker 在客户端和服务器之间进行通信。
    【解决方案3】:

    http 是一个很好但简单的协议,它可能可以满足您的需求。

    要获得灵感,请尝试使用 Jetty 服务器(Tomcat 的替代品)——它有一个简单的基于 Ajax 的聊天客户端作为演示应用程序之一,这可能是您需要做的任何事情的基础。

    http://dist.codehaus.org/jetty/jetty-6.1.19/获取版本 6

    我建议保持简单,这样您就不需要大量需要学习的架构库。

    【讨论】:

      【解决方案4】:

      也许你应该看看CaptainCasa——我曾经在 JAX 会议上看到过这个。它们似乎提供了一个漂亮的 Swing 客户端,但在后端处理所有逻辑内容。我对该产品没有个人经验,但从他们展示的内容来看,对于“愚蠢”的客户来说,它看起来很有趣。

      【讨论】:

        【解决方案5】:

        应用服务器可能是最简单的解决方案。您可能会考虑在服务器端创建一个 RESTful api,这可以在应用程序服务器上使用 spring 来完成。然后就可以在客户端使用一个简单的http客户端库了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-06
          • 2018-04-23
          • 1970-01-01
          • 1970-01-01
          • 2011-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多