【问题标题】:Best practice to communicate with Java EE server与 Java EE 服务器通信的最佳实践
【发布时间】:2011-08-11 07:16:24
【问题描述】:

我们有一个 Swing 应用程序。现在我需要设置一个 Java EE 服务器,为 LAN 上的这些 Swing 客户端提供一些服务。

考虑到客户端和服务器以两种方式进行通信,实现这一点的最佳做法是什么?

【问题讨论】:

  • 您使用的是哪种协议? HTTP? TCP?
  • “考虑到客户端和服务器以两种方式进行通信”是什么意思?
  • 我的意思是双向通信——客户端访问服务,服务器通知客户端数据变化。
  • 我也很感兴趣,这是实现这一目标的最佳方式......我很确定应该避免轮询,并且应该使用回调模式:cs.swan.ac.uk/~csneal/InternetComputing/ThreadCallBack.html - 使用 RMI回调应该不是问题,但是使用其他远程处理机制会变得复杂。

标签: java web-services remoting


【解决方案1】:

如果客户端在 LAN 中并且您正在对双方进行编程,我会采用 RMI。因为它的性能比 Web 服务高得多。我认为这是与 Java EE 服务器通信的本机方式。

也许您应该在提供服务的服务器端创建外观类。

【讨论】:

    【解决方案2】:

    使用带有 XML 或 JSON 数据格式的 JerseyApache CXF 等实现的 JAX-RS 是一个不错的选择。

    【讨论】:

    • 这很有帮助。谢谢。
    【解决方案3】:

    如果您需要灵活性,请使用 Spring remoting,因为它抽象了远程处理层,因此最终更改实现可以让您保持清洁。

    我用HTTP Invoker,因为它轻量级并且使用java序列化,所以它是Java客户端-> Java服务器通信的不错选择。

    与 RMI 相比,HTTP Invoker 的缺点是您总是从服务器获取对象的新实例,因此如果从客户端发送的对象在服务器上发生更改,则更改不会反映在客户端实例。

    好消息在这里:Considerations when choosing a technology

    【讨论】:

      【解决方案4】:

      我建议使用Webservices

      【讨论】:

        【解决方案5】:
        • RMI - 这对于 Java 应用程序来说非常好,但它的一般互操作性非常低。如果我想象你想从 Swing 切换到其他技术或添加另一个不是用 Java 编写的客户端,那么 RMI 将是一场噩梦。

        • Web 服务 - 它不包括双向通信。这对 Swing - Java EE 来说很好,但您还必须在 Swing 端执行一些 WS(或任何其他公开机制),以处理 Java EE - Swing 通信。例如。比如 Java EE 上的 REST 和 Swing 上的 XML-RPC。

        您也可以考虑使用 ESB

        【讨论】:

          【解决方案6】:

          如果您有 Java EE 服务器并且更愿意遵守 Java EE 规范的标准,我建议您使用 Spring RPC 或 EJB 3 Web 服务不是二进制的,因此会出现性能问题。

          【讨论】:

          • 嗨,马克,感谢您的建议。使用基于 HTTP 的二进制协议的 Hessian 是否从性能角度优于其他 Web 服务?
          • 嗨,我还没有机会与 Hessian 合作,但我认为可以。如果您使用 Web 服务 - 您将不得不处理 SOAP(Xml) / JSON - 基于“纯文本”的协议。这意味着来回解析,而不是创建 java 对象。另一方面,您有一个应该刚刚恢复的序列化对象(读取一系列字节)。我认为这应该快得多。此外,我猜你会在前一种情况下通过网络翻译更多的数据。如果您拥有多种技术,那么 Web 服务会大放异彩,它们被设计为与语言无关。
          猜你喜欢
          • 1970-01-01
          • 2021-03-15
          • 2011-06-21
          • 2012-04-12
          • 2013-08-20
          • 1970-01-01
          • 2020-08-15
          • 2015-07-26
          • 1970-01-01
          相关资源
          最近更新 更多