一种基于工作流的业务流程集成框架
2014-06-23夏慧慧黄海广
潘 俊,夏慧慧,黄海广
(1.温州大学信息安全研究所,浙江温州 325035;2.济南市城市规划咨询服务中心,山东济南 250000;3.温州市海洋渔业安全救助信息中心,浙江温州 325001)
一种基于工作流的业务流程集成框架
潘 俊1,夏慧慧2,黄海广3
(1.温州大学信息安全研究所,浙江温州 325035;2.济南市城市规划咨询服务中心,山东济南 250000;3.温州市海洋渔业安全救助信息中心,浙江温州 325001)
提出一种基于工作流的业务流程集成框架,该框架将各应用逻辑视作分布计算环境下的平台组件,采用面向服务的视图,将组件提供的服务封装到适配器中,使用XML消息协调服务间的交互,通过全局工作流引擎控制业务流程.给出了框架的分层架构模型,设计了框架的核心组件:工作流引擎、适配器和消息代理.以企业订单创建流程为例,验证了框架的有效性.
业务流程;集成框架;工作流引擎;适配器;消息代理
随着各种企业信息系统的广泛使用以及业务流程的持续优化,企业一方面需要建立统一的业务数据视图来共享信息数据,另一方面需要持续设计跨部门、跨系统、跨地域的业务流程来响应业务需求的频繁变化.在这样的环境下,如何重新定义应用系统的边界、通过松耦合模块化的设计整合内部系统和业务流程、提高运营效能是每个企业都在试图解决的重要课题[1].企业应用集成技术(EAI)通过整合现有信息资源来提供统一的业务视图,是实现业务集成的重要方法,相关的研究成果已有很多[2-6].
根据应用集成的层级,EAI技术可大致分为数据集成、应用连接和流程整合三类.数据集成技术通过对数据进行复制、变换和抽取等操作,来屏蔽基础数据源的位置类型等物理特性,如利用dblink技术在不同数据库实例间进行数据传输和数据同步处理,利用ETL技术从异构数据源中获取数据并集成为统一的数据模型等[2-3].应用连接技术通过中间件技术实现应用之间的互联,如利用MQ Series、MSMQ、JMS、Tuxedo-Q等消息中间件来控制不同应用之间的数据同步[4].流程集成技术将业务流程从应用逻辑中抽离出来,利用工作流引擎管理业务流程,利用适配器或封装器连接各应用逻辑,能实现包含协作、各种外部条件和复杂业务逻辑的集成任务[5-6].这些集成技术的适用场景不同,各具特色也各有不足.数据获取 / 复制技术适用于同构、开放性应用数据库之间的大量数据传输,ETL技术适用于异构系统之间的数据批量集成,但两者都不支持业务流程的变更[3].消息中间件技术通过消息交换来实现集成,易于保持数据的完整性,但需要修改现有应用的消息收发接口,对流程的支持有限并且实现起来较为复杂[4].流程集成实现了应用逻辑和过程逻辑的分离,对业务流程的支持最好,并提供系统之间异步或准实时双向通讯.但是,对于已具有工作流功能的应用系统的集成,现有流程集成框架仍难以提供协作手段和异构流程间的互操作,或者难以满足业务流程动态易变的集成需要[1,7-8].
本文针对流程集成技术存在的问题,提出一种基于工作流的业务流程集成框架WBPIF (Workflow-based Business Process Intergration Framwork),该框架将企业内外部的不同应用系统都视作分布计算环境下的集成化平台的组件,采用面向服务的视图,将组件提供的服务封装到适配器中,通过XML消息协调各组件的服务之间的交互,业务流程节点可以和适配器提供的业务逻辑绑定,全局工作流引擎控制业务流程的状态转换,从而实现了应用位置的透明性.本文将首先阐述集成框架WBPIF,然后介绍关键组件的实现技术,最后给出应用实例.
1 集成框架WBPIF
作为集成框架,WBPIF采用面向服务的视图,把数据资源、应用逻辑、业务流程等都抽象为服务(以及服务的组合)[9],这些服务之间具有松耦合的特性,服务的接口和实现相互独立,应用开发者可以通过组合多个服务来构建业务流程,而无须理解服务的实现细节.框架通过适配器动态注册、发现和绑定服务,屏蔽了服务提供者的分布复杂性,实现了组件服务变动的透明性;消息代理机制为服务提供了统一的环境,屏蔽了服务通信的复杂性;基于多层动态状态转换模型的工作流引擎使得流程定义和配置非常容易,提高了流程的可重用性.
1.1 集成框架的分层模型
WBPIF集成框架分六层,如图1所示.
图1 WBPIF的分层模型
1)系统层:系统层包含企业内外部的应用系统和数据源,例如ERP系统,CRM系统,合作企业的对外信息系统,各业务数据库等.这些业务系统可能分布在不同地域,从结构上看彼此间没有接口可供互相调用.
2)连接层:连接层包含了各个适配器,其作用主要是连接业务系统层各信息资源,获取系统层提供的服务并在服务层发布,获取系统层需要的事件消息并在消息层发布,具有快速无缝地集成到各种同构或异构系统的能力.
3)服务层:服务层根据预先定义的接口标准将来自适配器的信息进行相应的格式转换,是容纳业务连接层的适配器发布的服务和事件的逻辑部件,可以根据需要将服务和事件进行组合来实现一个业务逻辑.
4)消息层:消息层向业务流程层提供了基于主题的发布和订阅通信机制,使得业务流程能以松耦合、异步的方式进行通信,每个业务流程节点都可以指定其发布和订阅的消息主题.
5)流程层:流程层将业务活动视作服务,可根据所需的业务流程,组合业务逻辑来建立并执行跨内部系统、外部资源的业务流程模型,通过消息路由层实现流程活动间的同步和异步通信.
6)持久化层:业务流程层的活动节点被编译为类对象,对于业务对象和流程对象中的状态数据和事务数据等关键信息,本层通过序列化和反序列化实现对象和数据库文件的双向转换.
1.2 运行机制
服务提供者:各个应用逻辑通过服务接口在适配器中注册、更新和删除所提供的服务信息.服务中介者:适配器封装了各应用逻辑提供的服务,并将服务调用和响应转换为所要求的XML消息格式,从而实现业务流程和应用逻辑之间的透明通信.服务消费者:业务流程节点可根据具体需求,通过适配器调用应用逻辑提供的服务.具体过程为:本地系统子流程执行过程中,如需请求外部系统的服务,则生成事件消息,通过适配器将事件消息发给工作流引擎主流程,从而触发主流程的流程节点,流程节点依据所绑定的业务逻辑单元调用外部服务.当然,业务节点需要在适配器订阅希望接收的事件,并设定过滤条件.总之,在主流程的控制下,各应用逻辑依据消息执行相关处理流程,同时通过适配器调用外部服务,这体现了框架松耦合、灵活的协作特征.
根据本文的分层框架,业务对象开发人员根据业务需求创建业务对象,编写必需的系统级代码,业务应用开发人员根据具体行业要求将业务对象组装成业务应用,业务分析人员组合业务应用,建立各种业务流程模型,确定XML业务文档在各种松耦合系统间的路由和转换.因此,WBPIF集成框架为应用集成所需要的不同层次提供了统一的环境,具有模块化、松散耦合、可复用的集成能力.
2 系统支撑组件设计
WBPIF集成框架在分布异构环境中实现了基于工作流的松散耦合集成,支持异步通信和粗粒度通信,框架中的三个重要组件分别是工作流引擎、适配器和消息代理.
2.1 工作流引擎
全局工作流引擎是业务流程层的核心部分,通过协调组合各业务逻辑单元建立业务流程模型的实例.全局工作流发出的消息由消息代理通过服务接口转发给适配器,由适配器调用外部服务并返回执行结果,因此,外部系统之间可以通过各自的适配器和全局工作流引擎实现透明互操作.
2.1.1 核心类的设计
工作流引擎的核心类:工作流配置器(WFProcConfig)负责对流程逻辑进行判断,并创建各任务节点之间的关系,同时具有序列化存取功能以保证数据的完整.一个工作流配置器包含多个工作流实例(WFProcInst);工作流流程管理器(WFProc)管理一个工作流配置器及其对应的多个工作流实例,具有获取、生成、重置、清除各个实例的功能.工作流实例是流程相关数据的核心,一个工作流实例通过procInstId唯一标识,并可管理当前活动的流程节点.流程相关数据的核心是流程节点类(WFAct),流程节点类派生出各种不同类型的节点.
2.1.2 流程节点类型
通过组合各种业务活动来定义流程,由WFAct派生出的不同类型活动包括:1)起始活动(WFActBegin),无前驱活动.2)门禁活动(W fActGate),只有一个前驱活动,当前驱活动的值等于该门禁活动允许的值时才运行该活动.3)普通活动(WFActNormal),对应实际的业务环节,但实际的应用逻辑位于后台,由工作流引擎自动调用完成.4)逻辑活动(WFActLogic),是独立于具体业务环节、多前驱、阻塞式的活动节点.对前驱值进行逻辑处理的方式有四种,分别是:与类型(And),流经此处的任务将进行与同步,当前驱活动都为Yes才通过;或类型(Or),流经此处的任务将进行或同步,当前驱活动只要有一个值为Yes则通过;异或类型(Xor),前驱活动值相异才通过;投票类型(Vote),同一批次的任务只有达到所指定的票数才可流向后继活动.5)结束活动(WFActEnd),表明相应业务过程终结,独立于具体业务环节,没有后继活动.2.1.3 异常和消息传递
对于业务流程运行过程中可能发生的异常,首先判别异常的类型,如果是外部系统业务操作失败引发的异常,主引擎不需要做任何异常处理的操作,只需要接受外部系统发过来的成败结果的标识来判断是否需要重新转发相关信息.如果是和外部系统通信引发的异常,首先根据设定的重试次数,进行重试,如果在规定的次数内还没有成功,那么就将流程挂起并等待后续处理.在WBPIF集成框架下,业务流程设计阶段将任务分为业务流程和任务逻辑(组件),即子流程也被映射为业务逻辑单元.主工作流引擎和子工作流引擎的互操作消息采用W f-XML标准,消息由适配器进行格式转换后在网络环境中传递,由此屏蔽了异构系统之间的差异.
2.2 适配器
在设计模式中,适配器(Adapter)模式是在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口,在遗留代码复用、类库迁移等方面得到了很好的应用.在本文框架中,适配器封装了其它业务逻辑和工作流系统的服务,并将服务调用和响应转换为XML消息格式实现工作流引擎和业务系统的透明通信.当工作流端接口收到一个XML服务请求文件时,XML转换器将文件转换为本地应用要求的格式并连接到该应用,调用合适的应用程序逻辑来执行流程或对被请求数据的处理(如CRUD操作),将被请求数据进行格式转换成XML服务响应文件并返回.一个典型的实现方案如图2所示.
本文设计的适配器遵循分布式开放标准,通过消息映射屏蔽了各应用之间的平台异构、互操作API异构、通信协议异构和数据格式异构,实现了安全透明的互操作.例如,对于连接数据库系统的适配器,查询和存储过程调用都封装在业务逻辑中,适配器接收外部客户的访问请求,通过XML解析器将XML格式请求消息中的SQL语句解析成数据库语言的SQL语句,提交给数据库系统,数据库系统将执行结果返回给适配器,适配器再通过XML转换器将数据转换成XML格式返回给客户.
从应用逻辑的角度,结构图中的接口部分需要根据不同的API和消息格式进行定制开发,如果要连接子流程系统,则还需实现W f-XML所定义的互操作接口来和子工作流引擎进行交互.
图2 适配器的结构
2.3 消息代理
WBPIF集成框架的消息代理模块为业务流程提供了基于主题的发布和订阅通信机制,使业务流程能以松散耦合、异步的方式进行通信.例如,采购订单路由流程可以订阅新订单输入主题,当新的订单消息发布到该主题时,就激活该流程.每个业务流程都可以指定其发布和订阅的主题,发布者无须知道谁将接收消息,就可以广播消息.同时,消息代理支持事件消息,后者可以从外部资源向消息代理发布事件.通过这种异步的发布订阅方式,消息代理为各个组件提供了松散耦合的界面.
消息代理的结构如图3所示.通过消息代理,工作流引擎能经由适配器和其它应用系统通讯.消息格式采用W f-XML消息服务规范所规定的格式,消息包分为消息头和消息内容两个部分,消息在体系内部是用对象来存储的,必须有个XML文档转换为内部对象和内部对象转换成XML文档的过程,可采用序列化和反序列化技术实现这个过程.消息通过HTTP进行传输,这样能够在大量异质的、不同架构的网络间进行消息传输.
图3 消息代理的结构
各应用组件通过其适配器发出服务请求,一旦请求事件发生,适配器就将请求事件封装成一个XML文件并发送到消息代理,然后异步等待响应消息.服务请求事件于是经过消息路由被投递到相应的消息队列中,工作流引擎侦听到订阅的消息后,将激活并执行绑定该消息的业务过程.同样,该业务过程的执行需要通过适配器发出服务请求,这样新的消息又不断产生,这些消息的投递将激发新一轮的服务响应.显然这是一个递归过程,一直到所有服务请求都完成或失败.
3 实例分析
WBPIF集成框架以基于工作流的EAI总线作为数据流转的基础,以松耦合的方式连接各应用系统,根据具体需求,可以采用 .NET Framework或JavaEE技术来实现工作流引擎、适配器和消息代理三个支撑组件.以某企业为例,现有CRM系统、业务财帐系统和资源管理系统,采用基于本文框架的平台来实现各系统业务流程的集成.本文选用开源JBossESB作为实现消息路由的EAI总线,并在此基础上集成业务流程管理系统,基于J2CA、JDBC、JMS和JAXP实现适配器和消息代理.J2CA定义了可扩展的、安全的事务性机制,使得各异构企业信息系统(EIS)能够连接到J2EE平台,同时也定义了通用客户接口来访问EIS.JMS提供一组支持点对点和发布 /订阅消息传递方式的API,允许客户代码能够以一种通用的方式来生成、发送、接收和读取消息.JAXP提供一组API来解析和生成XML消息.
以企业订单创建流程为例,该流程涉及CRM系统、财帐系统和资源管理系统,如图4.根据流程定义,EAI将侦听订阅的订单创建事件,当CRM系统发出创建订单事件时,适配器将订单事件转换成XML格式并发给EAI,启动订单创建流程.首先将订单信息XML文件转换成资源管理系统需要的XML文件格式,然后将订单信息通过HTTP的方式传送到资源管理系统,如果传送则每隔固定的时间进行重试,在规定次数内无法传送成功则阻塞在队列中,并通知相应的管理员.资源管理系统根据收到的订单文件,检查订单所需的产品资源,完成所需的业务操作流程后,返回处理的结果信息.EAI接收返回结果并根据CRM规定的格式发送给CRM并改变定单状态,如果正常返回,则EAI将订单信息转换成财帐系统需要的XML文件格式发送给财帐系统,同样,财帐系统根据收到的订单文件,更新用户的帐户信息或生成费用信息后,返回处理结果.
图4 订单创建流程图
4 结 语
本文针对企业内外部业务系统的集成问题,提出了一种基于工作流的业务流程集成框架,将所有业务集成组件统一到灵活的、可扩展的环境之下,提供系统接入、数据转换、服务集成、消息代理、业务流程管理等关键功能,为快速构建跨系统业务流程,简化生产管理提供了通用的开发和运行环境.实践表明,本文框架是可行的,具有较好的开放性、可扩展性和易维护性.
参考文献
[1] Xu L D. Enterprise systems: State-of-the-art and future trends [J]. IEEE Transactions on Industrial Informatics, 2011, 7(4): 630-640.
[2] Adil O F, Mathew S. Leveraging organisation Data through EII, ETL and Data replication: Methodologies and implementation [J]. International Journal of Technology Management, 2010, 50(2): 208-224.
[3] Awad M M I, Abdullah M S, Ali A B M. Extending ETL framework using service oriented architecture [J]. Procedia Computer Science, 2011, (3): 110-114.
[4] Sachs K, Kounev S, Bacon J, et al. Performance evaluation of message-oriented middleware using the SPECjms2007 benchmark [J]. Performance Evaluation, 2009, 66(8): 410-434.
[5] Gong Y W, Janssen M. From policy implementation to business process management: Principles for creating flexibility and agility [J]. Government Information Quarterly, 2012, 29(S1): 61-71.
[6] Li Q, Zhou J, Peng Q R, et al. Business processes oriented heterogeneous systems integration platform for networked enterprises [J]. Computers in Industry, 2010, 61(2): 127-144.
[7] Umar A, Zordan A. Reengineering for service oriented architectures: A strategic decision model for integration versus migration [J]. Journal of Systems and Software, 2009, 82(3): 448-462.
[8] Chituc C M, Azevedo A, Toscano C. A framework proposal for seam less interoperability in a collaborative networked environment [J]. Computers in Industry, 2009, 60(5): 317-338.
[9] Concha D, Espadas J, Romero D, et al. The e-HUB evolution: from a custom software architecture to a softwareas-a-service implementation [J]. Computers in Industry, 2010, 61(2): 145-151.
A Workflow-based Integration Framework for Business Process
PAN Jun1, XIA Huihui2, HUANG Haiguang3
(1. Institute of Information Security, Wenzhou University, Wenzhou, China 325035; 2. Jinan Urban Planning Consulting Service Centre, Jinan, China 250000; 3. Information Center, Wenzhou Ocean and Fishery Service, Wenzhou, China 325001)
A workflow-based integration framework for business process called WFBPI is proposed, which views the legal application logics as components in a distributed computing environment. With a service-oriented view, WFBPI encapsulates the services provided by each component into its adapter, and associates them via xm l messages. It also provides a global workflow engine to manipulate the business processes. The layer model is introduced and the three major parts, i.e. workflow engine, adapter, and message broker are defined. A case of order processing in a real world company shows that WFBPI is feasible.
Business Process; Integration Framework; Workflow Engine; Adapter; Message Broker
TP301
:A
:1674-3563(2014)03-0043-07
10.3875/j.issn.1674-3563.2014.03.007 本文的PDF文件可以从xuebao.wzu.edu.cn获得
(编辑:王一芳)
2013-10-11
浙江省科技计划项目(2012C33086);温州市科技计划项目(G20100196)
潘俊(1978- ),男,浙江温州人,讲师,博士,研究方向:数据挖掘,机器学习,CIMS