基于事件驱动SOA架构的企业应用集成模式研究

2009-03-02 02:43刘秋生李红贵
中国管理信息化 2009年4期

刘秋生 李红贵

[摘 要] 针对在当前企业应用整合中存在的集成平台缺乏灵活性和适应性、扩展性较差、互操作性不高等问题,本文提出了事件驱动的业务过程和服务驱动的松耦合动态集成相结合的EDSOA企业应用集成模式。该体系架构具有松耦合、行业支持和高度可集成能力等优势,可满足企业行业化、协同工作与动态电子商务以及实时企业与业务流程自动化的需要, 也可以方便地实施EAI。

[关键词] 企业应用集成;面向服务的软件架构;事件驱动架构;业务整合

[中图分类号]F270.7[文献标识码]A[文章编号]1673-0194(2009)04-0067-03

随着信息技术的迅猛发展和社会生产力的不断进步,商务模式发生了根本性的变化,企业应用集成也面临诸多方面的压力。目前,我国企业现有的各应用系统集成通常只关注某一个业务环节或整体集成和沟通程度不高,各应用系统相互独立地运行, 在这些应用程序之间共享数据是很困难的,因此不可避免地形成一个个信息孤岛。而且,企业众多应用系统由于缺乏总体设计,产生了许多重复的功能模块,维护十分困难。然而,并不能一夜之间就将这些孤立程序全部放弃或替换,因为它们都是一些关键业务,而且在当前的商业环境下从零开始重新开发整个信息系统常常是不合算的。另外,企业需要不时地引进各种新的应用系统,而这些新方案往往基于最新的体系架构,它们与原有系统的体系架构有着很大的不同。

为有效地解决这些问题,使企业IT系统具备扩展性强和随时支持业务流程变化的基础功能,成功实施企业应用集成、整合将是必要的措施。本文提出了事件驱动的业务过程和服务驱动的松耦合动态集成相结合的EDSOA企业应用集成参考模型。

1 企业应用集成及应用架构介绍

1. 1企业应用集成简介

企业应用集成(Enterprise Application Integration,EAI)的概念最初仅指企业内部不同应用系统之间的互连,以期通过应用整合实现数据在多个系统间的同步和共享[1]。伴随着企业应用集成EAI技术的不断发展,它所被赋予的内涵变得越来越丰富。现在EAI 的概念已经扩展到业务整合(Business Integration) 的范畴,不仅要提供底层应用支撑系统间的互连,同时还要实现存在于企业内部应用与应用之间、本企业和其他合作伙伴间[2]端到端的业务流程的管理,包括用户互动、应用整合、B2B整合、自动化业务流程管理、企业门户以及对所有应用系统和流程的管理监控等方方面面。

1. 2面向服务体系结构

面向服务的体系结构(Service Oriented Architecture,SOA)建立在分布式计算技术的基础上,可以基于现有的系统投资来发展,而不需要彻底重新创建系统。这种体系结构本质上是动态的,它提供对服务的登记、发现和调用的支持。SOA 的软件开发人员可以将企业应用系统以服务的形式通过网络发布,即任何服务应用程序都可以同其他位置的基于服务的应用系统交互,并充分考虑服务的重用。

1. 3事件驱动体系架构

事件驱动体系架构(Event-Driven Architecture,EDA)是一种设计和构建应用的方法,其中事件触发消息在独立的非耦合模块之间传递。事件源通常发送消息到中间件或消息代理,需要者可订阅这个消息。由于事件消息用发布/订阅方式通过消息代理传输,一个事件便可传送给多个需要者。EDA 和SOA之间主要的区别是:在SOA 中,发布者和需要者只有一对一的关系;而在EDA 中,事件发布者最终可以传送消息给基于订阅规则的任何数量的消费者。也就是说信息在两个系统间交互时,根本不需要知道对方的详细信息。上述特点能很好地满足企业的应用需求, 如跨部门的应急联动系统或联合监管协同服务等应用[3]。

2 基于事件驱动的SOA(EDSOA)企业应用集成模式架构

2. 1事件驱动型SOA

所有业务都是事件驱动的,事件驱动型SOA为组织提供了响应这些实时业务动态所需的能力。它结合了面向服务的架构(SOA)的请求-响应模式和事件驱动架构的事件发布-提交模式。前者对服务事件的支持允许设计人员将应用程序设计映射到业务问题,后者通常由事件和请求/响应组成。服务和事件处理的结合产生了更好的敏捷性和快速的信息性响应。

EDSOA的目标是对SOA进行扩展,从而使解决方案能够以极快的速度从海量数据流中迅速标识出有价值的事件。它把专门化实时系统的数据流管理和复杂事件处理的功能变为应用程序的一部分。用户和系统能够获得最高到微秒级的状态图,并且能够及时获知需要特别关注的一些改变。之所以有这样的优势,一方面,是因为SOA提供了一种集成框架,可将来自多个系统的数据集合在一起,并且当企业对请求进行响应时,SOA可以提供与某种系统的集成,从而为企业提供帮助;另一方面,不像SOA的请求/响应系统,要求请求者必须明确发送请求信息,而一个事件驱动架构提供一个机制去动态响应事件。在一个EDA系统里,事件产生者发布事件,事件消费者接受事件,所以EDA极大地改善了企业对各种看似无关的事件的响应能力,而这些事件往往会对企业造成影响。通过提供即时过滤、聚集和关联事件的功能,EDA能够以极快的速度检测有可能对企业造成威胁或为企业提供商业机遇的事件和模式,并且为企业提供对此做出即时反应的能力。企业通过使用全面的数据提要和确切的事件定义,能够快速做出反应并应对出现的挑战。

2. 2EDSOA应用集成参考模式

在企业应用集成领域,企业一直面临削减成本和最大限度地利用现有技术的难题,但与此同时,他们还必须不断地努力,以期更好地服务客户,更快地响应企业战略重点,从而赢得更大的竞争力。从信息的整合再到功能与流程的整合,从企业内部的应用整合到跨企业边界的整合,企业整合的需求不断变化和丰富。在当前激烈竞争的环境下,一个成功的企业在IT构建上需要解决下列问题:

(1)如何实现应用系统的快速构建、迁移和伸缩,以满足不断变化的市场需求。

(2)如何能够让已有的多种应用系统无缝集成起来。

(3)如何设计现代IT架构,使系统不仅功能强大和可靠,而且还有强大的灵活性和可扩展性,以满足不断增长的新需求。

通过对事件驱动SOA架构的分析可知,事件驱动SOA架构可以解决以上这些问题,基于此,本文提出了完整的基于事件驱动SOA架构的企业应用集成参考模式,如图1所示。

图1中的各个功能实体都以服务的形式出现,是在特定层次上为特定应用提供服务的基础设施。实体服务可以是具有内部完整功能闭环的应用系统且对外提供特定功能的服务单元。

整个体系结构中的服务由以下几层构成:①企业服务总线(Enterprise Service Bus,ESB),这是SOA 体系中的基础架构,各个服务通过总线来互相访问;②应用服务层,这一层主要是指需要集成的企业各个应用系统和数据存储库;③总线接入层,这一层提供了适配器[4,5]服务,支持多种主流应用的接入协议,这样使用户可以访问各个应用服务,并通过消息机制使各种应用接入ESB,使用ESB 的各种服务;④核心服务层,提供多种企业服务总线所需的必要服务支持,在这一层提供总线基本服务,如消息分发/订阅、队列、目录服务以及数据转换/映射服务等;⑤业务支持层,这一层侧重在业务支持上,通过通用、标准的对象和服务模型,可以在这一层上定义可重用的和基于企业界标准的业务流程,同时,还提供统一的用户交互服务,包括手机银行、网上银行和传统银行网点。建立在企业服务总线之上的用户交互服务可以很小巧,并关注于各自交互的特点。

该集成框架基于面向服务技术,通过各类适配器服务接口将企业应用封装成统一的应用服务,然后发布到目录服务中心,并通过企业服务总线中的基础核心服务,如统一数据格式和消息传递等,来实现各个应用系统间的通信交互。在该集成框架中,应用服务既可以是已有的旧应用,也可以是新开发的应用。该集成平台是连接各类应用的桥梁,采用的是松耦合方式,即任何应用都以独立服务的形式连接到系统中来,方式灵活,简单快速,真正实现了“即插即用”。

当在该框架下需要进行过程集成和业务集成时,首先通过业务流程定义服务,并根据事件驱动的模型将已经注册的应用服务在一定的规则下组成相应的业务流程链。业务集成模型的实现是由集成引擎调用应用服务的接口实现数据的存取,并通过消息引擎在各个应用服务间传递路由数据,实现定义的业务流程。

业务系统可以从SOA和EDA中受益匪浅,因为当事件发生时EDA能触发事件消费者,SOA服务可以快速地从相同的消费者中访问、查询。系统需要快速的响应性,当事件触发时这个系统必须能快速决定必须的动作。到事件结束,事件应该被发布和消费,而且事件要穿越SOA所有的边界,包括整个体系结构和物理层。图2演示了事件被激发并穿越体系结构的所有层。

在图2的环境中,一个事件能被定义为任何系统的、平台的、组件的、业务的或应用进程的变化。事件可能是高层的业务事件或底层的系统事件。因为事件能被传送和接收,订阅事件的应用程序和服务能对这些变化作出响应[6]。

可以看出SOA 完全可以提供一个灵活松耦合的可扩展的基础集成服务平台,比较完善地实现数据集成和应用集成。而且随着事件驱动架构的介入,可以顺利地实现企业业务流程的建模和集成,最终实现企业应用集成的最高层次,即过程集成。

2. 3EDSOA模式在企业应用集成中的结合应用

信息系统应用集成在近两年成为企业信息化建设的热点。应该说EAI建设是企业对其信息系统建设的一个总结。从EAI建设的驱动力来说,EAI是为了解决企业内的“蜘蛛网”、“信息孤岛”等问题而产生的。企业通过建设EAI系统,有效地降低了接口数量,并且在各个信息系统之间架起了沟通的桥梁。EAI为许多企业疏通了脉络,提高了信息系统的整合能力。

由于企业行业化、协同工作与动态电子商务以及实时企业与业务流程自动化的需要等这些商业发展因素的驱动,企业应用集成越来越成为人们关注的焦点。事件驱动的SOA的好处是很明显的。通过实现具有实时反应能力的企业,事件驱动的SOA能够通过提高客户满意度、有效地管理意外事件和提高竞争的灵活性等措施增加企业的收入。通过提高价值链的可见性和减少获取客户的成本,事件驱动的SOA还能够降低运营成本。因此,通过更快的产品投放市场时间和更优越的技术支持和服务,企业的市场领先地位将得以提高等。

事件驱动的SOA创建了把流程、方式和商业逻辑应用到原始数据中的基础。它把SOA请求/响应的范例与事件驱动的结构的发布/订阅模式结合在了一起。事件驱动的SOA还允许设计者描绘旨在解决商业问题的应用程序。这一般包括事件和请求/响应的互动。通过把面向服务和事件处理与商务流程管理、商务活动监视和企业服务总线等技术结合在一起,事件驱动的SOA创造了极大的灵活性。

3 结束语

基于事件驱动SOA架构的企业应用集成体系结构将减少集成那些完全不同系统所需的时间,并通过快速开发和组件重用来快速部署服务。从高度集成环境中的多个事件源捕获、关联和汇集事件的能力可确保企业对变化的业务情况进行预测并快速作出响应。相信新技术与新业务流程的相互融合,将为我国企业在管理与业务模式上的创新提供机遇,也会为“实时企业”的理念、管理模式、相关技术以及相应的支撑管理软件在我国企业的应用实践提供良好的基础。

主要参考文献

[1] 柴晓路. EAI 和Web 服务轻松进行企业应用集成[EB/OL]. http://www.ccw.com.cn/htm/center/app/02_2_28_2.asp,2002-02-28.

[2] 〔美〕Fred A Cummins. 企业集成[M]. 杨旭,等,译. 北京:机械工业出版社,中信出版社,2003.

[3] Global Research Partners. Event-driven Architecture:The Next Big Thing[C]. Gartner Application Integration and Web Services Summit,2004.

[4] Jeff Sutherland,W J Van den Heuvel. Enterprise Application Integration Encounters Complex Adaptive Systems:A Business Object Perspective[C]. Proceedings of the 35th Hawaii International Conference on System Sciences(HICSS′02),2002.

[5] David S Linthicum. The Evolution of Adapters[J]. EAI Journal,2002(12):36-40.

[6] Jeff Hanson. Event-driven Services in SOA:Design an Event-driven and Service-oriented Platform with Mule [J]. JavaWorld,2007(7):21-23.