我们能否仅使用JMS提供商实现完整的基于SOA的解决方案?

时间:2011-05-24 08:25:04

标签: web-services jms soa esb

SOA是关于集成异构应用程序或从较低级别的服务组合业务流程。

我们是否可以在大型企业中实现完整的SOA解决方案,其中应用程序跨越部门和所有权边界,仅使用支持Java和非Java JMS客户端的最先进的JMS提供程序,并在各种集成点使用Web服务和应用程序服务器不需要使用更复杂的ESB产品吗?

具有良好行业经验的集成架构师可以最好地回答这个问题。

2 个答案:

答案 0 :(得分:2)

是的 - 实施SOA不需要ESB。

最好使用基于JMS的Web服务来实现您的服务。

ESB通常会解决的一些问题,您应该注意:

<强>适配器

当使用不支持相关技术(JMS,SOAP,...)的旧服务提供者或客户端时,ESB可以为它们充当适配器 - 在您的情况下,您所有的服务和客户端都应该支持这些技术自我,或者你需要实现一个适配器。

<强>路由

ESB充当路由器,隐藏服务提供商的物理地址。 您应该使用严格的Queue \ Topic命名约定来确保解决方案的一致性和可维护性。 在规划命名方案时考虑多个环境和版本的共存。

服务注册表

您应该拥有所有服务规范的某种注册表。

一些不容易支持的问题是

基于内容的路由

中央记录\政策执行\审核

答案 1 :(得分:2)

除了Ophir的回答之外:

您的问题翻译为“JMS可用于接线吗?”是的,它可以。 SOAP - 许多SOA解决方案的关键 - 本质上是一种消息传递协议。这允许异步解决方案,因此JMS符合要求。 SOAP需要在另一个会话/应用程序层协议上运行,JMS可以是。

设想解决方案如下:

  1. 服务提供程序侦听JMS总线,可能是特定的队列/队列+消息选择器
  2. 服务消费者在JMS总线上发布消息,解决他们需要的服务(特定队列)
  3. 响应因需求而异,通常是消费者收听响应的响应的单独队列(可能在 JMS回复属性中指定)。
  4. 实质上,服务端口是JMS队列

相关问题