英雄杀手游消费送侠胆:ESB让服务双方松耦合 业务组装依靠服务协作

来源:百度文库 编辑:九乡新闻网 时间:2024/05/05 12:26:21
51CTO.com用户代表:两个服务进行松耦合,组合在一起需要怎样的条件进行管理?另外,能否举一个具体例子说明如何做组合服务?

毛新生:这个问题非常有趣。在SOA世界里,每个服务与另外一个服务都是以松散耦合方式结合在一起的,这就要谈到SOA灵活性的由来。在集成架构里,ESB作为集成架构的模式,作为集成架构的最佳实践,它的目的就是为了解耦服务的请求者和提供者。它提供异构环境下的连通性,你用什么技术和语言都没关系,ESB可以帮你打通。

毛新生:ESB可以帮你进行API和消息的转换,这边是Java那边是CA都没关系。紧接着帮你做路由,你在哪儿我不知道,你可以在美国也可以在我身边,我不需要关心这事,ESB可以帮助我找到你在哪里,帮我把信息传到那地方。甚至可以不需要知道对方是谁,只要把提供服务的要求告诉ESB,ESB就会去找到一个你制订要求的服务,然后帮你绑定,帮你做路由,帮你做必要的转换。

SOA的世界里有了ESB的架构元素之后,服务的请求者和服务的提供者之间不需要关心对方是谁,也不需要关心对方用的是什么技术,在哪里。因此在SOA的世界里服务之间的关系永远都是松散耦合的。

毛新生:第二个问题谈到组装,组装本身遵循的也是服务组装的技术和模式,一般都支持描述性的规范。这些描述性的语言可以说明一个业务流程由哪些SOA世界里的服务协作完成。协作的关系是什么?无外乎是控制的过程,不同的步骤是由不同的服务做完,控制的过程只是描述性的东西,随时可以改变控制的过程。虽然你的业务流程比较容易发生变化,但调整就可以了——下面的服务是不用动的,所以这种组合的过程也是比较灵活,比较敏捷,适于变化的。