面向业务过程的企业应用集成方案的研究
2008-03-20
作者:施化吉1,3,赵曦滨2,丁秋林3
摘 要:在分析传统企业应用集成" title="应用集成">应用集成方案的基础上,提出了面向业务" title="面向业务">面向业务过程的企业应用集成EAI(Enterprise Application Integration)架构模型。给出了J2EE平台下面向业务过程EAI架构模型的结构,并讨论了如何用虚拟组件、EJB组件和Web Services组件实现过程对象、业务对象和领域对象;最后给出了集成案例,验证了该架构模型的可行性。
关键词:企业应用集成 业务过程管理 集成框架 J2EE Web服务
面对快速变化的市场,企业必须以高速、高效和灵活性作为应对策略,必须对内部的遗留应用进行有效集成。传统的点到点应用接口集成方法,系统间通过专用的API实现信息的交流和方法调用,业务过程与企业信息系统紧密地集成在一起。这种集成方法只能支持固定的业务过程,一旦业务过程发生改变或应用系统" title="应用系统">应用系统进行了升级,系统之间的集成接口必须重新进行编写,并且每个系统都要知道与之相集成的系统的结构和内容。这种紧耦合的集成方式已经不能满足企业复杂多变的业务过程活动的要求。企业需要将其集成化应用系统的应用逻辑与业务过程逻辑分开,以使业务过程的改变不会引起应用系统间集成方式的改变,从而实现松耦合的应用集成。
为了避免传统的点对点集成的缺点,人们提出了三层的集成架构,它将企业应用系统分成表示层、中间层" title="中间层">中间层和企业信息系统(EISs)层(包括数据库系统)。中间层主要实现应用的业务逻辑和各种服务支持,作为应用业务逻辑功能实施的一部分,中间层可以访问在EISs层运行的且与应用相关联的数据和函数。EISs层包括那些现在正在使用的企业应用、数据库系统和企业原有的应用。在三层架构中,EISs之间并不直接实现点对点的连接,而是通过一个面向消息的中间件实现数据的交换。
企业应用的三层架构可以说是EAI的一个里程碑,它彻底改变了企业中传统的点对点的系统集成方式,通过引入一个中间层实现不同系统间的协调和对企业各种事务处理活动的支持。但是三层的企业信息系统集成体系架构还不能满足企业多变的业务活动的要求,系统间的集成仍然是一种紧耦合的集成方式。因此,迫切需要一种新的集成方法。本文提出了一种面向业务过程的EAI架构模型。
1 面向业务过程的EAI架构模型
面向业务过程的EAI架构模型BPEAIAM(The Business Process-oriented EAI Architecture Model)的总体结构如图1所示。从图1中可以看出:在BPEAIAM模型中,EISs层、中间层、表示层和客户端构成了明显的层次关系,下层应用为上一层提供了独立完整的功能。因此上层应用无需了解下层应用内部的实现细节,只需调用下层应用明确定义的接口和方法来实现自己的功能。
BPEAIAM模型的中间层由过程对象、业务对象/业务对象管理器、领域对象和数据路由器组成。图2给出了中间层结构。
1.1 过程对象
过程对象体现企业的业务处理过程、事件序列、业务规则和特定业务对象间的联系。过程对象管理着运行时业务对象间的协作,例如:订单处理过程没有绑定到某个特定的业务对象上,相反,它涉及到客户、客户地址以及订购明细等业务对象。这些业务对象间的协作包括对订单下达方式的描述以及订单明细的描述。如果将上述信息放到业务对象中,则会破坏对象的封装性。因此有关行为规则的描述应该由过程对象负责。
业务对象关注企业业务功能的实现细节,过程对象关注业务对象间的联系,而不关心业务功能如何实现。
1.2 业务对象
业务对象体现了企业业务的概念,它包括组织、客户、订单等信息项。业务对象将具有特定行为、信息的基本对象和业务规则进行整合。业务对象间是独立的,并不与其他业务对象绑定(与其他业务对象绑定是过程对象的职责)。任何涉及到多个业务对象的行为都应该由过程对象负责。
1.3 领域对象
领域对象反映了特定行业的业务概念,它独立于具体的应用。领域对象可能包括该领域的基本信息(如客户、订单等),也可能包含该领域的产品和联系方式等。领域对象以组件的形式提供了领域应用的功能。
1.4 数据路由器
数据路由器负责将源数据发送到目标系统,保证数据在传输过程中不会遗失。基本路由器提供路由表,有时会提供识别和映射源系统和目标系统的规则;高级路由器实现了发布-订阅引擎,对请求进行智能过滤。目标系统(订阅者)请求新的数据或特殊类型数据的更新,而源系统(发布者)发布和更新数据。路由器自动将数据送到对它感兴趣的地方,并执行管理任务。
1.5 自适应的业务过程
过程对象执行企业业务模型的功能,可以看作是一种微型工作流,它负责NTGAEAM模型中业务对象间的协作和交互。由于过程对象是面向对象的,具有面向对象技术的所有特性,因此过程对象可以部署为运行时可执行组件。过程对象可以用面向对象技术的继承和组合特性构建更加适应市场环境的新的过程对象。新的过程对象代表着业务过程的重新组合,体现了BPEAIAM模型的自适应能力。
由过程对象执行业务对象间的协作为集成提供了一种新的方式。本质上,集成是业务过程动态的组合过程,这种动态组合可以看成是过程对象穿越特定路径的节点集(这里的节点指业务对象)。因此对一个给定的节点集,不同的业务过程会产生不同的结果。
BPEAIAM模型解决了企业业务过程活动多变的问题。与传统EAI解决方案相比,BPEAIAM模型具有如下特点:
(1)有利于自适应的业务过程的重组;
(2)为新加入的应用提供了即插即用的功能;
(3)方便了领域应用的集成;
(4)实现了业务规则的分离。
2 J2EE平台下的BPEAIAM模型
J2EE平台下的BPEAIAM模型是BPEAIAM模型的一个特化。该模型在Web Services、EJB、CORBA等J2EE技术的支持下能更好地实现灵活性和自适应性。图3给出了J2EE平台下BPEAIAM模型的结构。
从图3可以看出,J2EE平台下的BPEAIAM模型主要由三部分组成:(1)通用对象请求代理架构(CORBA)、J2EE规范、Web Services技术标准及规范;(2)Web Services组件、EJB组件、虚拟组件、事务管理引擎;(3)领域应用和领域应用适配器。
2.1 虚拟组件
虚拟组件一般在领域对象层,用来表示领域应用的功能。一方面,提供与J2EE兼容的接口;另一方面,通过领域应用提供的API与领域应用进行连接。虚拟组件掩饰了不同领域应用的技术差异,客户端可以通过虚拟组件存取领域应用。对不提供API或者提供的API不适合需求的领域应用,必须通过封装进行扩展。封装提供了必要的接口,通过这些接口,虚拟组件可以存取领域应用。虚拟组件的结构如图4所示。
虚拟组件分为访问现有数据库的虚拟组件和访问领域应用功能的虚拟组件两种。虚拟组件可以用CORBA、RMI-IIOP或者JMS构建。虚拟组件功能如下:
(1)通过API存取控制领域应用;
(2)通过封装存取控制领域应用;
(3)提供对数据的存取控制。
2.2 EJB组件
EJB组件实现企业的业务功能(业务对象的功能),它组合虚拟组件的功能以提供一个实现较高级功能的抽象层。EJB组件将会把高层的事务请求转换成一系列对低层虚拟组件的调用。EJB组件也进行一些数据转换,并且通过集成领域应用实现企业的业务功能。
2.3 Web Services组件
为了实现业务对象的可利用性,需要创建更高层次的过程对象。过程对象可以发布有用的业务过程,以及使用简单的XML消息交换数据。显然业务对象可以出现在不同的过程对象中以实现特定的业务过程,例如身份验证可以被多个过程所使用。
当使用Web Services表示过程对象时,过程对象就成为一种服务,称之为过程对象服务,其架构如图5所示。
过程对象服务由基本服务和复合服务组成。其中,基本服务是最小的服务单位,由业务对象实现;复合服务从本质上说是一个过程对象服务,是由控制流或者数据流连接起来的基本服务。任何过程对象服务都是由基本服务递归而成。同时作为过程对象中的某个模块也可能是过程对象,并且这种组合方式是任意的。过程对象服务组成结构如图6所示。
控制流和数据流的含义为:
(1)控制流:复合服务所要激活的次序,包括时间约束、执行或者取消过程运行的信号。
(2)数据流:复合服务中的数据流。一个在业务过程中活动的Web服务本身可能就是一个业务过程。
3 集成案例
根据本文所探讨的集成架构和集成原理,镇江移动电话公司构建了一个集成系统。公司有一组互不相连或部分相连的应用程序" title="应用程序">应用程序,分别为:
(1)客户信息应用程序;
(2)客户账户管理应用程序;
(3)打印发票应用程序;
(4)市话话费计价应用程序;
(5)长话话费计价应用程序;
(6)话费信息应用程序。
这些应用程序没有集成,因此用户要在不同应用程序中手工输入数据。有些应用程序提供基于共享数据文件的简单数据交换,用专属格式格式化。在这几个应用程序中,客户信息应用程序、客户账户管理应用程序、话费信息应用程序提供了API,分别通过封装增加接口。打印发票应用程序用JMS封装,另外两个用CORBA封装。
为了实现较高层次的集成,在业务逻辑层定义低层虚拟组件,以便用一致的方式存取控制。根据案例分析和各种分析类图识别出高层EJB组件。识别出的高层EJB组件为:信用卡EJB组件、移动电话用户EJB组件、账户EJB组件、授权和选择账户EJB组件、充值EJB组件、检查余额EJB组件。这些高层EJB组件所完成的功能集中在业务处理上,通过对低层虚拟组件方法的调用实现业务功能,例如检查余额的虚拟组件计算账户余额的方法要涉及到客户账户管理、市话计费、长话计费、话费信息等低层虚拟组件的调用。
最后将这些业务方法级的高层EJB组件以Web Services的方式发布。如果要进行更高层次的集成,可以在这些Web Services的基础上集成,既实现了低耦合性,又实现了较高的性能。从而使公司内外的管理者和顾客都可以调用。公司外的顾客可以进行查询充值等操作,公司内的管理者可以进行更高权限的操作(如修改资费标准等)。要实现这种权限控制,可以用基于角色的权限控制访问策略和企业信息门户的统一界面提供服务。
BPEAIAM模型的基本思想是快速实现企业业务流程的重组。BPEAIAM模型提供一个集成框架,可以通过多种方法实现。其中一种方法是利用Web服务技术实现,将遗留应用的功能包装成其他应用程序可以直接调用的Web服务,然后组合这些服务,产生满足企业业务需要的流程。
镇江移动电话集成系统是实现BPEAIAM模型的初步尝试,它证明了BPEAIAM模型的可行性。目前该系统正在进一步完善中。下一步的工作是以BPEAIAM模型为核心,尝试开发一个功能相对完善的集成开发环境(IDE)。该开发环境提供了所有相关的基础性服务,可以有效提高软件的抽象层次,使开发者能将主要精力集中在业务逻辑的开发上。
参考文献
1 David S.Linthicum.Process Automation and EAI.EAI Journal,2000,3;12~18
2 顾 翊,张申生.一种企业应用集成(EAI)方案的研究.计算机工程与应用,2003;6
3 Denver Robert,Edward Williams.Adaptive integration architec-ture for software reuse[D].University of Central Florida,2001
4 James Chang.Envisioning the Process-Centric Enterprise[J].EAI Journal,2002;(8)30~33
5 SUN.Microsystems.JavaTM 2 Platform Enterprise Edition Specification,v1.4.http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf:13~14
6 OMG.CORBA Specification.http://www.omg.org/docs/formal/04-03-01.pdf
7 Heather Kreger.Web Services Conceptual Architecture(WSCA 1.0).IBM Software Group,2001,5.http://www-306.ibm.com/software/solutions/webservices/pdf/WSCA.pdf
8 Mary Kirtland.A Platform for Web Services.Microsoft Devel-oper Network,2001,1.http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarxml/html/websvcs_plat-form.asp
9 W3C Workshop.Web Services Framework.http://www.w3.org/2001/03/WSWS-popa/paper51.2001,4
10 SUN Microsystems.The J2EE 1.4 Tutorial.http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Overview7.html
11 Binu John,Vu Trang,Michael Vemik.Performance Evaluation of Enterprise JavaBeansTM(EJBTM) CORBA Adapter to CORBA Server Interoperability.2001;1~6