摘要:文介绍了现代企业在信息化建设过程中遇到的交互和耦合问题,阐述了面向服务构建企业应用的解决方案——ESB企业服务总线,对该解决方案给出了详细的设计,并举出实现例子。
关键词:面向服务;企业解决方案;企业服务总线
1 问题提出
企业信息化建设,大部分已经结束各自为政的各业务部门独立建设的阶段,迫切需要把企业内部已经建设、部署好的业务系统,联通起来,构建整体的企业信息化体系。
这里所说的联通,不是简单的通过互联网络,连接各个应用系统,而是各个系统间业务工作和业务数据的共享和交互。
目前,在各个业务系统建设均已成熟的情况下,企业内部提出这种系统交互需求,只能通过认为地为系统添加特定的接口,完成与特定系统的特定数据或者业务交互,这样不但造成系统间交互的网络模型混乱复杂,也加重了开发成本,随着新交互需求的不断提出,企业信息化建设始终处于不断修补的不良状况下。(图1)
图1企业信息化建设始终阶段不断修补的不良状况
随着企业中业务系统建设越来越多,这种错综复杂的系统交互关系会越来越多,各个系统甚至出现互相依赖,互相耦合的情况。这种情形直接导致了业务组件重复建设、业务数据冗余、企业内数据不同步、系统界限模糊、维护困难、拓展困难等等难以想象的问题,使得企业信息化建设陷入泥沼。
2 ESB企业服务总线
ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
企业服务总线(Enterprise Service Bus,ESB)的概念是从面向服务体系架构(Service -Oriented Architecture, SOA)发展而来的。SOA描述了一种IT基础设施的应用集成模型,其中的软构件集是以一种定义清晰的层次化结构相互耦合,其中,一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。
ESB是传统中间件技术与XML、Web服务等技术相互结合的产物。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
使用一个分布式企业服务总线,企业可以通过利用标准以提供灵活实时的“按需服务”基础架构来最大化利用其在硬件和软件的现有投资。
3 企业服务总线建设构想
3.1 期望业务模型
企业服务总线的模型,是为企业的业务流和数据流提供一个通用的通道,通过标准的接口,应用系统可以容易地通过ESB提供服务接口和数据交互接口。(图2)
图2应用系统通过ESB提供服务接口和数据交互接口
这里涉及几个关键:
(1)接口:各个系统,尤其是旧有系统,系统接口均已经发布部署,不容易改变,企业服务总线ESB必须兼容这些接口,这必然需要一套适配机制,满足不同的接口通过适配机制接入到总线中;
(2)总线中的数据流:为了方便ESB操作数据,从各个接口流入总线的数据流和业务流,必须被格式化成标准格式,在ESB中流转,当传送到特定系统时,再被翻译成该系统能接受的格式;
(3)节点的注册:接入ESB的应用服务,必须在ESB上注册组件信息和服务信息;
(4)自动传输:ESB应该可以控制一些无需人手干预的数据流转,如信息同步等,并且控制流动的过程。
3.2 实现原理
通过定义节点的方式,定义应用组件的接入以及接口规则;通过开发针对不同类型数据接口的适配器,实现不同的接口接入系统,并翻译节点数据的ESB内部数据格式;通过定义数据交互的路由和调度,实现自动的数据传递过程;通过队列、线程、缓存等方法,实现多任务多进程,提高业务数据传递效率。(图3)