从表示层进行服务层调用

时间:2008-12-03 16:27:05

标签: java spring java-ee soa esb

我必须选择一种技术来连接我的应用程序/表示层(基于Java)和服务层(基于Java)。基本上从业务代表对象中查找适当的Spring服务。

那里有很多选择令我困惑。以下是我已经缩小到但不确定的选项..

  • Spring RMI

  • Apache Camel

  • Apache ServiceMix(ESB)

  • Iona FUSE(ESB)

这是我想知道的

  1. 如果您已经(或评估过)其中任何一项,您认为哪种选择更合适? (告诉我原因并不会有害:)
  2. 我还应该关注其他技术吗?
  3. 截至目前,我看到分发的应用程序和服务层,但我不想在将来排除这种可能性。设计提供这种灵活性是一个好主意吗?
  4. 任何帮助都会有用。谢谢!

3 个答案:

答案 0 :(得分:3)

Spring Remoting似乎是最简单的方法。如果这是您想要采取的方向,它还将使您在未来对更复杂的方法持开放态度。

从您的要求的有限角度来看,我会坚持使用一个学习曲线较低的简单解决方案,并离开ESB直到您确定您确实需要它为止。

KISS原则是一件很棒的事。

答案 1 :(得分:2)

它主要归结为您是否希望使用Spring Remoting(Spring RMI和Apache Camel是其实现) - 或者您是否希望将JAX-WS用于Web服务(CXF或Metro实现)。即,您是否希望自动远程处理POJO - 或者您是否希望WS与WSDL合同等等。

一旦你决定了远程技术;您的下一个决定是您希望将其作为库(例如Spring RMI或Camel)捆绑在应用程序中 - 或者您是否希望将其部署在像ServiceMix这样的ESB容器中以便能够热重新部署模块等等。 / p>

如果您选择后者,那么请使用Apache ServiceMix - 如果您想要商业发行版,需要更多文档,频繁发布,商业支持等,请使用FUSE ESB。

答案 2 :(得分:2)