摘 要: 详细地论述SOA及企业服务总线的基本概念、工作原理,借助IBM消息中间件MQ和总线产品MB为商业银行分析设计出面向服务架构的企业服务总线,打造一个随需而变的银行SOA企业应用平台,以应对不断变化的市场环境和用户需求。
关键词: 面向服务架构; 企业服务总线; 集成
目前,我国银行建设处于快速发展期,银行业务不断更新,银行客户对服务质量的要求也不断提高,银行与客户之间的关系将由单纯的买卖关系逐渐向复杂的服务关系转变。随着银行服务功能的增多以及银行客户需求的不断变化,许多银行通过增加各种渠道来拓宽自己的市场。然而,零售银行多渠道趋势虽然丰富了银行的渠道供给和服务品质,但同时也给银行和客户双方带来了产品之外的渠道问题,更给现有银行的IT架构带来了新的问题和挑战。客户在使用银行多渠道产品时往往会碰到一系列的问题,比如:
(1)渠道之间信息不共享。某客户开通银行账户时,已经填写了个人信息,但是在网上开通时还是要求该用户输入很多重复的个人信息。
(2)渠道之间没有很好的连贯性。某客户丢失了信用卡,第一时间通过网上银行进行了信用卡挂失操作后,紧接着打电话向银行说明,可是却发现该客户并没有挂失操作,因为银行客服人员不知道如何在网上银行渠道上进行业务操作。
(3)渠道之间的数据信息缺乏一致性。某客户在自动存款机上往个人账户存款人民币一千元,提示存款操作成功,但是查询账户余额,却发现个人银行账户里还是原来的一百元。
针对这些问题和挑战,银行业需要对原有的业务渠道进行重新整合。近年来风靡全球的面向服务架构SOA (Service-Oriented Architecture)提供了解决之道——其不考虑平台和开发环境的差异,能实现银行现有各业务模块的重用,并将这些系统有机地整合以实现信息的共享和交互,使之成为一个灵活、开放、高效和可靠的系统。此系统全面整合前端渠道、中间业务平台和各个业务系统子模块,不仅可以解决当前银行IT系统更新换代问题,而且也符合银行业务未来的发展需求。
1 面向服务架构、企业服务总线
1.1面向服务架构
维基百科将面向服务的架构解释为:它是一种软件架构的概念,定义了通过使用各种各样的服务来满足软件用户不断变化的需求。在面向服务的架构环境中网络上的结点通过服务的形式向外部提供资源,其他结点就可以用标准的方式来访问[1]。
Gartner公司认定面向服务的架构为:它体现客户端/服务器的软件架构思想,但它的客户端/服务器显著区别在于它重视整个系统中组件之间松散耦合[2]。
从上述的这些定义中不难看出:面向服务的架构是组织服务的一种架构模式,支持面向服务的特征。面向服务的架构主要包括应用程序前端、服务、服务存储库和服务总线四部分,其关系如图1所示[3]。应用程序前端相当于客户端,它初始化面向服务的架构的应用。服务则包括服务合同、服务实现和服务接口,而服务实现又包括业务逻辑和数据。服务储存库则是存储服务的地方,同时也提供了各种发现的机制,以快速地定位所需要的服务。服务总线则提供了服务之间通信的基础架构,它提供了各种通信的可能,屏蔽了技术和平台之间的差异,同时也提供了一些基础服务。
1.2 企业服务总线
企业服务总线ESB(Enterprise Service Bus)就是在特定环境下,即SOA架构中,实施EAI的一种方式。其实,企业服务总线是传统中间件技术与XML、Web服务等技术结合的产物。ESB是一种在松散耦合的服务与应用之间标准的集成方式,它提供了网络中最基本的中枢,是构筑企业神经系统的必要元素[4-5]。
企业服务总线运用SOA松耦合的思想对企业运用进行集成,借助灵活的服务接口和易用的Adapter为企业应用创建一个统一的平台,方便SOA应用和遗留系统的集成,同时其强大的可扩展性也显露无疑,其架构如图2所示。
从物理角度来看,企业服务总线是使用Web服务、消息中间件、智能路由和格式转换的架构;从逻辑角度来看,企业服务总线与SOA架构的原则相一致,并给出了如何更好地管理服务的解决办法,以及在分布式环境中如何很好地进行服务交互的功能。企业服务总线采用分级的层次结构,用来连接不同业务领域的客户群[6]。
1.3 面向服务架构与企业服务总线关系
随着SOA技术的发展,企业服务总线的应用也变得更加广泛。在SOA的架构体系中,ESB被看作是整合企业中各种异构软件的一个集成平台,是服务提供者及消费者的媒介,所提供的服务具有中介作用。
企业服务总线作为面向服务架构体系的整合平台,被看作是整个系统架构中的核心部分。企业服务总线和面向服务架构是相辅相成的,没有所谓的一方重要,另一方次要,二者都是很重要的。只有有了企业服务总线,面向服务架构才能释放它的最大价值,从而使二者的功能发挥到最佳状态。
2 企业服务总线分析和设计
2.1开发平台介绍
IBM消息中间件产品WebSphere Message Queue具有统一的标准、高稳定性和高安全性等特性。WebSphere Message Queue中的主要操作对象是消息和队列。它借助在相异的子系统中不断流动的消息,来高效地实现对各个子系统的串联,充分利用各个松散耦合的子系统向外面暴露的功能,从而完成某个商业应用的整个工作流程[7]。
IBM业务集成中间件产品WebSphere Message Broker,是一种“企业服务总线”产品,采用MQ作为内部通信机制,支持各种应用接口和网络协议,为企业应用提供丰富多样的接入方式。同时,通过方便快捷的编程方式来提供消息路由、格式转换和服务封装等功能,更重要的是为企业系统的应用互连提供方便、高效和安全的平台[8]。
2.2 企业服务总线在银行系统架构中的地位
为了实现对银行业务多渠道整合,将企业服务总线在整个银行IT集成系统中设计两层。顶层的ESB用于整合银行的交易记录,连接银行内部和外部网络;底层的ESB用于整合银行系统数据库中的所有数据,它与银行的信息管理系统、信息仓库及分析决策系统连接;当然,为了以后业务的拓展,ESB要与银行的其他系统相连。银行IT系统集成整体框架图如图3所示。
低层通信则是采用IBM公司生产的消息中间件WebSphere系列的WebSphere Message Queue来实现消息之间的通信。不同机器上的不同队列管理器之间建立传输队列、发送通道、接收通道实现互连通信,其企业服务总线运行示意图如4所示。
2.3企业服务总线在银行系统架构中的功能
银行IT系统集成中的企业服务总线包括请求与响应方报文校验、交易动态路由、请求与响应方协议转换、共享缓存、交易异常处理、请求与响应方编码转换、交易日志管理、请求方访问控制、交易超时控制、文件传输等功能模块,具体如图5所示。
2.4 企业服务总线的实现
根据系统功能模块的设计,系统功能模块通过三条消息流具体实现。第一条消息流是服务请求者发出SOAP请求消息接收、处理,最后动态路由到相应的服务提供端;第二条消息流是对服务提供者处理完后的相应消息进行接收、处理,最后动态路由到相应的服务请求者;第三条消息流是当服务提供端向注册库中发布新的服务后,该消息流会被触发,自动刷新缓冲存储器中的相应配置信息。整体消息流结点部署如图6所示。
通过开发部署企业服务总线,银行IT部门可以快速地、最大程度地重用现有子系统资源,既节省了开发时间,又省去了大量的费用,面对市场客户不断变化的需求和IT业界技术更新,行内整个IT系统也能应对自如、随需而变。目前,该系统已经完成各种测试和部署,整体运行良好,受到客户的好评。面对国内许多大中小型企业内部IT系统的现状,该理念和技术非常具有实际意义和推广价值。
参考文献
[1] 陈宇翔.精通WebSphere MQ[M].合肥:安徽科学技术出版社,2004.
[2] 甘荃,娄丽军. IBM WebSphere MQ基础教程[M]. 北京:电子工业出版社,2004.
[3] 张宝珠. 基于面向服务架构的应用集成研究天津[D].天津:理工大学, 2008.
[4] 赵亮,史维峰.基于SOA的企业服务总线技术研究与应用[J].计算机应用与软件,2009,26(5):123-124,141.
[5] 牛刚,张忠能.轻量级ESB研究与设计[J]. 微型电脑应用,2009,25(2):14-16.
[6] 丁昭华.基于ESB的企业应用集成技术研究与应用[D].长沙:中南大学,2007.
[7] 李珉.ESB企业服务总线解决方案剖析[EB/OL].(2006-12-xx)http://tech.51cto.com/art/200612/36357.htm.
[8] 蔡昭权.基于ESB的异构系统集成实现[J].计算机应用,2008,28(2):38-54.