互联网服务中间件

提升企业服务总线ESB的实施效果解析

现在很多企业都在做信息化发展规划,一方面是业务规范,一方面是IT架构规划。本文简单聊下IT架构中的ESB,即企业服务总线。   
   企业的IT架构目前已比较成熟,基本如下图所示:



这是一个多层的架构:靠上的是门户及中间件层(中间层包含信息集成及业务流程等),靠下的是业务系统及基础架构(如数据库等)。 上层与下层的交互,以及各业务系统之间的交互,需要通过企业服务总线ESB来完成。但在实际的项目中,我们看到ESB通常变成摆设,这主要有以下几个原因:

      1.对ESB的作用及定位存在偏差:

ESB能做什么?大部分IT人员认为ESB可以实现数据传输,同时可以进行传输协议及数据格式的转换。没错这是ESB最基本的功能,但是如果仅仅是基于这样一种定位,就没有必要用ESB,因为使用现有的技术完全可以实现这些功能。

那么应该如何来定位ESB呢?答案是:解决系统之间的紧耦合问题。即将下图所示的,系统之间网状的紧耦合的交互方式,变成松耦合的总线交互方式。

  

2.对于实施ESB的方法论不清楚



要想ESB实施取得好的效果,最重要的是建立服务路由规范。




上图是一个带服务路由组件的ESB架构图,他是如何实现系统之间的松耦合的?假设A系统需要将信息发送给D系统,A系统只需要开发一个接口,向ESB发送该信息。然后ESB将信息传输给D系统的接口,实现数据交互。


这里有一个问题,ESB是如何知道应该调用D系统的接口,而不是调用另外一个系统的呢?



大部分的用户在实施ESB的时候,采用的是由A系统将目标系统的信息以参数的形式传给ESB,这样ESB就知道应该调用哪个系统的接口了。这是最直接,也最容易实现的方式,但这样系统又变成紧耦合了,因为A系统必须知道要将数据发给哪个系统。如果A系统需要将同一信息发送给E系统,则必须修改A系统的接口代码。



因此要实现松耦合, A系统除了知道要交互的数据本身以外,不应该知道目标系统的信息。再回到之前的问题:ESB如何知道应该调用的目标系统接口呢? 答案就是服务注册及映射。首先需要将A系统的接口、及B系统的接口在ESB上进行注册,其次需要在ESB上做个映射,即将A系统的指定接口,映射到B系统的指定接口。ESB就知道接口之间的调用关系了。 再回到之前的业务场景,A系统目前只需要将B系统发送信息,将来A系统需要将该信息发送给E系统,这时只需要在ESB上增加一个映射关系即可。而A系统不需要做任何代码级的修改。这样ESB就可以根据服务注册及映射信息,进行服务的路由了,从而实现了系统之间的松耦合交互。




实际上按这种方式实施ESB还有很多好处,将在后续文章中进行讨论。

参与5

0同行回答

“答”则兼济天下,请您为题主分忧!
wupper888wupper888系统架构师SllA Tech.
收藏, 现在正好做这方面的业余.显示全部
收藏, 现在正好做这方面的业余.收起
保险 · 2015-07-09
浏览721
loopwa291loopwa291网站开发工程师wisco
收藏,学习 非常有用显示全部
收藏,学习 非常有用收起
硬件生产 · 2014-12-20
浏览720
zymh_zyzymh_zyIT顾问国内某公司
文章不错.继续贴一些ESB的文章.期待第二遍...显示全部
文章不错.继续贴一些ESB的文章.期待第二遍...收起
IT咨询服务 · 2014-10-23
浏览763
liushaoyiliushaoyi技术经理华润
异步的接口好说,同步的接口怎么处理一对多的映射?显示全部
异步的接口好说,同步的接口怎么处理一对多的映射?收起
互联网服务 · 2014-10-23
浏览727

提问者

老衲
软件开发工程师北京传诚科技
擅长领域: 中间件大数据商业智能

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-10-22
  • 关注会员:1 人
  • 问题浏览:3815
  • 最近回答:2015-07-09
  • X社区推广