java应用程序架构数据交换

时间:2014-03-24 13:00:19

标签: java java-ee jms

我们正在开发更多的Java应用程序。非常简单的描述。

  1. 前端应用程序 - 网络应用程序,与用户交互
  2. 中间件应用 - 为前端应用提供一些功能
  3. 传输应用程序 - 与外部系统通信的应用程序。
  4. 这些应用程序通过http的xml传输相互通信。 来自现实生活的场景看起来,用户在前端应用程序中创建一些操作,前端应用程序调用 中间件应用程序,通常是中间件应用程序调用传输应用程序(通常调用其他一些外部系统)。 前端应用程序也可以直接调用传输应用程序,它取决于流量和业务逻辑等。 就像你看到有很多http调用,前端应用程序创建http调用和调用中间件应用程序,中间件应用程序创建 http呼叫和呼叫传输应用,传输要求其他系统并将响应发送回中间件等。

    我的问题是。这是非常好的建筑吗?看起来对我来说太多了。应该有一些其他更好的解决方案, 如何在应用程序之间传输数据,即使它们在一台服务器上运行。

    数据是99%的简单xml,通过xstream创建。 可能是JMS适当的解决方案吗?

    谢谢

1 个答案:

答案 0 :(得分:2)

我同意你的看法,虽然它肯定能正常工作,但层间http调用的方法可能有点笨拙。

如果不同层之间的调用是异步的并且基本上是火上浇油,那么JMS将是一个非常好的匹配(您发送消息并且不会立即对目标在收到您的工作时所做工作的结果感兴趣信息)。虽然有人使用JMS请求回复,但我觉得这不是面向消息的系统最自然和优雅的用法。

如果您正在做的事情是同步的(您调用后端并等待它响应您的请求)我会使用普通(无状态)会话bean,这些会话bean的创建和管理已经简化了很多EE6。

EJB的另一个优点是,您不会产生所描述方案中所需的不同XML序列化和反序列化的开销。