问题描述
|
SOA涉及集成异构应用程序或由较低级别的服务组成业务流程。
我们能否在大型企业中实现应用程序跨越部门和所有权界限的大型企业中的完整SOA解决方案,而仅使用支持Java和非Java JMS客户端的最新JMS提供程序,并在不同集成点使用Web服务和应用程序服务器(如果需要)而无需使用更复杂的ESB产品?
具有良好行业经验的集成架构师可以最好地回答这个问题。
解决方法
是的-实现SOA不需要ESB。
最好使用JMS上的Web服务来实现您的服务。
ESB通常要解决的一些问题,您应该注意:
转接器
当使用不支持相关技术(JMS,SOAP等)的旧版服务提供商或客户端时,ESB可以为它们充当适配器-在您的情况下,您所有的服务和客户端应自行支持这些技术,否则您将需要实现适配器。
路由
ESB充当路由器,隐藏了服务提供商的物理地址。
您应该使用严格的Queue \\ Topic命名约定,以确保解决方案的一致性和可维护性。
规划命名方案时,请考虑多个环境和版本的共存。
服务注册
您应该具有所有服务规范的某种注册表。
一些不容易支持的问题是
基于内容的路由
中央日志记录\\策略执行\\审核
,除了Ophir的答案之外:
您的问题翻译为:“可以使用JMS进行布线吗?”是的,可以。
SOAP-许多SOA解决方案的关键-本质上是一种消息传递协议。这允许使用异步解决方案,因此JMS非常适合。 SOAP需要在另一个会话/应用程序层协议(JMS可以是该协议)上运行。
设想以下解决方案:
服务提供者侦听JMS总线,可能是特定的队列/队列+消息选择器
服务使用者在JMS总线上发布消息,以解决他们所需的服务(特定队列)
响应根据需求而有所不同,通常是消费者监听的响应的单独队列(可能在JMS答复属性中指定)。
本质上,服务端口是一个JMS队列。