您现在的位置是:首页 > IT基础架构 > 软件与服务 >

BPEL与ESB工作流管理系统的融合之道

2008-12-15 16:22:00作者: 来源:

摘要本文首先介绍工作流、BPEL、ESB的相关知识,总结出基于BPEL的流程设计模式。同时参考工作流管理联盟提出的参考模型,给出基于BPEL与ESB工作流管理系统框架模型及框架中引擎结构,分析了框架的性能。最后提出该框架中还存在的问题及今后的研究方向。...

0 引 言

现代企业的发展和规模的扩大,企业信息及资源已呈现出异构分布和松散耦合的状态,原有集中式的模式已不能满足日益增长的事务处理、信息处理和决策支持等方面的要求。

随着计算机技术的发展和Internet的广泛应用,工作流技术越来越受到人们的重视。工作流技术是一项为达到协同工作环境而进行人与人、人与部门、部门之间、企业之间信息的共享、交换、组织、分类、传递、处理和协调的技术。因此工作流管理系统的功能由最初的无纸化办公,转变成为简化企业复杂信息环境,实现企业业务流程自动化的工具。

本文首先介绍框架使用的相关技术,如BPEL(Business Process Execution Language)、ESB(Enterprise Service Bus)和工作流系统,根据工作流联盟提出的工作流参考模型及BPEL的设计模式,结合企业服务总线ESB构造出工作流管理系统框架,并且细化出工作流引擎的框架结构。

1 相关技术

1.1 BPEL

BPEL4WS(Business PD0cess Execution Language for Web Service,Web服务的业务流程执行语言,也称为BPEL)结合了基于图形的流程语言和块结构的流程语言的优点。提供了描述业务流程的定义语言,描述了时间、顺序、地点等相关内容。BPEL4WS主要基于WSDL 1.1、XML Schema 1.0和XPath 1.0规范。其中,WSDL(Web Senrice Description Language,Web服务描述语言)消息和XML Schema类型定义提供了BPEL4WS流程所需的所有数据模型。而所有需要的外部资源和伙伴(BPEL4WS中与业务流程交互的服务被模拟成伙伴partner,并由partneLinkType来声明)都被描述为WSDL服务。在WSDL中,porType使用抽象消息来定义抽象功能,服务的用户必须静态地依赖于这种抽象接口。这样,在基于BPEL4WS的业务流程中。外部的Web服务可像黑盒一样来为流程提供所需的服务,而不需要考虑开发的平台、异构系统等问题。

1.2 ESB

在工作流系统中所有的信息传输都是基于SOAP(Simple Object Access Pmtocol,简单对象访问协议)来完成的。其安全性方面不是十分可靠,因此采用了企业服务总线ESB。其结构如图1所示。

ESB提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(服务)和其它组件之间的互操作,同时是向服务体系结构(SOA)的一种基于标准的实现,它能够进行可靠连接和协调数百个应用程序端点。它是以“软总线”的方式,提供服务问协作、管理和控制的分布式架构,用于构建、集成、部署和监控管理各种企业的分布式资源。ESB还提供基于上下文的路由和过滤,采用XML作为信息表示与交换的标准,支持多种标准接口,分布式操作和管理。ESB总线可以并行挂接多个服务或应用程序。单个服务的修改或增加取消挂接无须影响到其他服务或应用程序。具有相当的灵活性和可配置性。

1.3 工作流系统

工作流管理联盟(WFMC,Worknow Management Coalition)发布的工作流参考模型(Workflow Reference Model),如图2所示,对工作流管理系统结构进行了通用的描述,同时总结了主要部件和相关接口。

该模型说明工作流系统的核心是工作流执行服务(Workflow Enactment Senrice)。系统的这部分推动着案例在组织中流转,执行服务确保按照正确的次序由正确的人执行正确的活动。为此,必须使用过程定义工具(Pfocess Definition Tools)生成过程定义和资源分类。除了描述过程和组织,这些工具还常常为分析技术(如仿真)提供便利。工作项通过工作流客户应用程序提供给雇员,通过选中一个工作项,雇员能够开始执行具体案例中的特定任务。执行任务时,有时需要启动应用程序。所有可以被工作流系统所启动的应用程序在参考模型中称作被调用的应用程序(Invoked Application)。工作流追踪、案例控制和员工管理则由所谓的管理和监控工具(Administration and Monitoring Tools)支持,同时该模型图也给出了五个接口。

2 BPEL流程设计

根据IBM公司开发的BPEL引擎及使用指导,大致可以把BPEL的流程设计为以下模块。具体流程图如图3所示。

(1)服务发布,各服务的提供者将其Web服务的描述进行发布,通常采用注册到某个UDDI服务器中的方法。

(2)获取WSDL,BPEL流程开发者获得参与此流程的各Web服务的描述信息,如可以使用UDDI浏览器访问并获得WSDL。

(3)编写BPEL流程定义,该步是重点,BPEL的引擎会根据流程的定义来分配任务。可以使用流程建模工具来生成流程定义BPEL文件和WSDL文件。

(4)部署流程,设计完成的BPEL流程可以部署到BPEL流程引擎上运行,即将BPEL文件和WSDL文件成功部署在引擎上后,引擎将等待调用流程的SOAP消息,生成流程实例。

(5)测试和运行流程,部署完成后流程需要进行测试,才能确认业务逻辑是否符合要求。BPEL流程对外暴露为一个Web服务,对它的调用方式与普通Web服务相同。

3 工作流系统管理应用框架

3.1 框架提出

参考工作流管理联盟发布的参考模型及BPEL流程设计模式,这里提出了实际应用的框架图。在该框架中体现出了参考模型中的各个部分,如图4所示。

(1)BPEL流程建模,即使用参考模型中过程定义工具,生成高效的BPEL工具供流程执行引擎调用。这里可以采用可视化流程建模,自动生成BPEL文件。流程建模的高效及最优性将会提高引擎的执行效率。

(2)BPEL管理/报告和分析结果,即参考模型中的管理/监控工具。管理监控工具主要包括日志管理和流程监控。流程监控工具能够修改所有流程实例以及工作列表的各种状态,包括取消、挂起、重新启动等。日志管理就是记录流程实例及活动的运行状态及相关信息,在流程监控工具改变活动执行状态时可以根据日志来恢复或导航到相应的活动和相应的状态。

(3)BPEL流程执行引擎,即参考模型的核心部分,工作流执行服务,可以创建新的实例,基于过程定义生成工作项,支持活动的执行以及记录工作流的状态等。详细内容见下一节。

(4)BPEL流程信息库,用来存储流程模板,便于流程管理。主要数据表有流程编码表,用来描述各流程的运作规则。任务列表,用来存储流程中任务项信息。

(5)BPEL流程实例信息库,用来存储流程实例描述,主要数据表有流程实例表及工作项列表用来描述和流程实例运行状况相关信息。

(6)ESB企业服务总线,即参考模型中接口3。由于Web服务的调用,消息的传递都是使用SOAP消息,但是SOAP消息是基于HTTP传输的,缺乏安全性,因此这里使用了ESB,保证消息的可靠性。

3.2 BPEL流程执行引擎实现

工作流引擎是工作流管理系统的心脏,因此工作流引擎的好坏关系到工作流系统性能的优劣。工作流引擎是为工作流管理系统的定义提供支持,同时在运行时提供解释和执行服务的一组数据模型和组件。工作流管理系统框架中工作流引擎的框架结构如图5所示。

工作流引擎主要由4个部分组成:流程驱动模块、流程调度中心、流程终止模块和流程状态管理模块。

(1)流程驱动模块。可以由外部接口发送过来的流程控制请求信息,如业务初始化,获取任务以及结束任务等信息来驱动流程运行。无须人为参与任务,程序内部可根据条件自动驱动。请求信息,送往调度中心,由调度中心查看流程状态并根据不同请求类型,执行相关的操作。

(2)流程调度中心。该模块是引擎的关键,根据分析BPEL结构和当前流程的状态。制定分配任务,获取任务相关信息及资源。任务管理中,制定任务的相关资源,即设置人员的相关权限信息,将人的行为活动参与到流程中去。任务分配时若存在任务资源,则分配给相关人员,出现在工作待办项,否则自动执行流程流转。消息发送机制,通过消息的方式告知任务执行者或者督办,催办,提醒等,消息发送机制设置了任务项的时效,超过时效可以终止流程执行,或者释放流程的阻塞,都可以通过消息发送机制来制定。

(3)流程终止模块。每个实例都有生命周期,从实例的创建到实例的终止,实例的创建是隐式的,收到流程控制请求信息,检查实例是否存在,若不存在则创建一个新实例。实例的终止可以为以下几种:当定义流程行为活动全部结束时,即自动运行结束;当故障到达流程的作用域时,即异常结束;当流程实例被活动显示终止,即人为活动终止结束。在该模块中设置了上述几种实例终止方式。

(4)流程状态管理模块。流程运行需要根据流程状态来选择路由。路由大致包括四种:顺序路由,任务节点是一个接一个地执行;并行路由,多个节点同时执行或以任意次序执行;选择路由,一个过程决定了某特定类型流程的路由;循环路由,某个节点的反复执行直到通过。

3.3 框架性能分析

框架中企业服务总线的引入,使得框架利用ESB可以进行业务上的扩展,有比较好的扩展性。业务流程执行语言BPEL的引入,由于其可读性,加上可视化的建模工具简化了开发的难度。对流程规则的信息存储于数据库,可灵活地配置流程规则信息来满足一些扩展的特殊权限功能,具有比较好的可伸缩性。工作流本身对于业务系统而言,其作用是隐藏在背后,业务系统包括大量的业务处理数据,工作流引擎本身也有数据的处理,二者通过数据库之间的关联来保证数据事务完整性。

4 结束语

本文根据流程设计模式及工作流参考模型,结合BPEL和ESB提出一种工作流框架结构,并对框架中引擎结构进行了描述,但是在框架的安全性方面未进行研究,其实用性方面需要得到进一步验证。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们