在探讨信息系统的SOA架构概念时,一个非常重要的概念是:企业服务总线(ESB)。可以说,ESB也是SOA的核心构成部分。要真正实现应用架构完善的SOA结构,简化SOA构件间的关系,就一定要建设好信息系统的企业级服务总线。
01 企业服务总线的概念
(一)总线的概念
在世界的各种类事物里,总需要相互联系和沟通。这些事物包括人与人之间,组织与组织之间,物理设备之间,应用程序与应用程序之间。
在没有总线的概念前,这些联系与沟通是自然发展建立起来的,一开始通常都呈现为点对点模式:
点对点的连接方式在连接对象比较少的时候,确实是一种简单和高效的连接方式。但其最大的问题是,当连接对象多的时候,连接路径会以指数方式剧增。连接路径数与连接对象数之间的关系是:

具体数字看下表:

可见,点对点的连接方式有以下明显的缺陷:
  • 如果连接对象比较多,连接路径会非常多。连接拓扑图是一个复杂的多对多的网状结构。
  • 如果连接对象各自的连接方式有差异,如:对于程序的连接,如果沟通的语言、文字、格式、方法等有差异,则每一个连接方都要同时支持和维护多种连接方式。
  • 当某一个连接对象的连接方式发生变化,会引起其他所有与之连接的连接方有所变化。
基于以上几点,在多点互连的情况下,点对点连接方式成本高,可用性和可维护性低。显然不是一个好的连接方式。
随着技术的发展,另外一种连接方式开始逐步取代点对点的连接方式。这就是总线连接方式:

与点对点连接方式最大的区别是,总线连接方式把多对多的连接方式变成一对一的方式。所有连接方均与总线连接,然后通过总线再连接到需要连接的对方。这样,无论连接对象有多少,其连接路径数与连接方的数量永远一样。整个连接拓扑图是一个简单的星形结构。
不同连接对象如果连接方式有差异,可以通过总线完全屏蔽掉,做到对连接对象透明,无需各个连接对象关心。
总线的连接方式最早在许多硬件设计上得到广泛的使用。如处理芯片的数据总线,网络节点的交换机,大型计算机系统处理器与外围存储设备连接的集线器等。通过总线结构,把原来复杂的网状结构变成简单的星形结构,极大提高了硬件的可靠性和可用性。
02 服务总线
随着计算机信息系统的发展,信息系统也越来越庞大、越来越复杂。总线的概念也引入到信息系统的架构建设上。跟随SOA的概念,信息系统的总线通常叫服务总线。其战略层的总线称之为企业服务总线(ESB)。
关于企业服务总线的概念,业界有许多定义,但一些基本定义是一致的,归纳如下:
企业服务总线是一个具有标准接口、实现了互连、通信、服务路由,支持实现SOA(Service Oriented Architecture,面向服务架构)的企业级信息系统基础平台。它提供消息驱动、事件驱动和文本导向的处理模式,支持基于内容的服务路由。SOA架构将各应用服务器(包括异构的服务器)上的各种服务连接到服务总线上,支持分布式的存储及分布式的处理、异步处理。为信息系统的真正松耦合提供了架构保障。简化了企业整个信息系统的复杂性,提高了信息系统架构的灵活性,降低企业内部信息共享的成本。
03 企业服务总线的功能
通常认为,企业级服务总线需要具备如下功能:
1、 服务统一管理
为整个系统提供一个统一的、标准的、可靠的、可扩展的服务管理平台。
2、集成服务
提供基础的服务与定制的服务;支持集成服务模式;支持服务的分解,服务调度和路由,服务封装,服务组合。
3、公用服务
提供内置的各种公用服务。例如,认证服务,日志服务等。
一些厂家提供的ESB产品,还会包括如下一些功能:
4、服务协议转换
通过把不同的通信协议转换成标准的报文,屏蔽异构系统的底层技术差异。
5、服务监控
提供服务等级管理及流量管理。提供多角度的服务实时监控、报警与交易分析报表。
6、安全体系
提供多种安全机制并支持和第三方安全系统的有效集成,提供有效的安全监控机制。
04 ESB产品
ESB是一个相对新的概念,其产品也是一些较新的产品。从目前的应用案例看,能称得上成熟、完善、通用、成功的案例不多。不同的ESB产品,其功能会有所侧重,使用环境也会有所限定。据了解,目前有如下定位为ESB的产品:
1、IBM
IBM的相关产品有:WESB、WMB、WDP。
2、Oracle
Oracle的相关产品有:OSB、ESB。
3、Microsoft
微软的ESB功能是通过一组产品实现。包括BizTalk、.Net等。
4、开源
还有一些开源产品,如:Jboss ESB、Mule ESB、ServiceMix/FUSE ESB、Synapse/WSO2 ESB等。
关注本公众号(数据学堂,ID:data_school),后台回复“ESB”,即可下载《企业服务总线ESB平台介绍》53页PPT全文。
<END>
继续阅读
阅读原文