摘要:分析了工作流引擎的构架,提出了基于Web的轻量级工作流设计方案。依靠关系数据库作为底层数据存储方案,提出了轻量级工作流的实现方案,并对Web环境下的用户授权机制进行了研究,采用用户角色授权模型来实现工作流的授权管理。
中图法分类号:TP 文献标识码:
Research ofLightweight WorkFlow Engine And AuthorizationMechanismBased On Web
LI Bao-YanYANG Liu LIU Zhong-Feng
(People's HospitalofZhengzhou, Zhengzhou 450002, China)
Abstract:The Architecture of the WorkFlow Engine has been analyzed, andasolution of lightweight WorkFlow based on Web has been proposed. Depend on the relational database which used for the bottom data storage solution, the implement solution of the lightweight WorkFlow has been put forward. Also, user authorization mechanism based on Web has been discussed.Adopt the user role authorization model to achieve the authorization management of WorkFlow.
Keywords:WorkFlow;Lightweight;Authorization Mechanism
0引言
工作流最早产生于生产组织和办公自动化领域,它针对日常工作中具有独立程序的活动而提出的一个概念。1993年,国际工作流管理联盟的成立标志着工作流技术开始进入相对成熟的阶段。随着网络应用的更加深入,人们对工作流的网络化应用研究也不断加深。工作流技术已经从最初的创建无纸化办公环境,发展为实现业务流程自动执行的必要工具,成为企业信息化建设的重要内容。
当前,在对工作流引擎的开发应用中,存在着追求功能全面的趋势,这种趋势也产生了一些问题,譬如,具有工作流特征的应用种类繁多,事实上任何一个工作流引擎都难以解释执行于所有的流程,引入复杂的工作流引擎往往使得开发和使用工作流系统的成本都难以控制,这样的产品并不适用于中小型的应用[1]。而轻量级工作流引擎却有自身的优势,它的开发周期较短,可移植性强,扩展性好,在针对特定的一些中小型应用时,是一种良好的解决方案。
本文就基于Web的轻量级工作流探讨了轻量级工作流的构造过程,并讨论了如何解决网络环境下应用系统中的授权机制。
1工作流引擎架构设计
工作流引擎是一组数据模型和软件,它为工作流管理系统在定义时期提供支持,并在运行时期提供解释和执行服务。WFMC(WorkFlow Management Coalition)工作流管理联盟给出了工作流系统的一个通用框架——工作流参考模型[2]。工作流引擎是工作流系统的核心。一个工作流系统的好坏,主要取决于工作流引擎的性能。一个好的工作流引擎,能够使设计出的工作流系统更加地具有可扩展性、灵活性、易用性。图1为工作流管理联盟给出的通用工作流参考模型框架。
图1工作流参考模型
1.1轻量级工作流
基于Web的轻量级工作流引擎是指工作流引擎从够用、灵活、操作简单的设计原则出发,主要考虑了其数据模型的定义和解释以及任务的分配和控制等功能提供支持,不追求工作流引擎功能的完备和复杂,不支持内建的应用开发工具、对应用数据的定义和完整性维护、完善的异常处理以及事务控制等功能,只是实现必要的功能和特征[3]。
明白轻量级的定义,对下一步的设计十分重要。它指导在具体的设计过程中去掉标准工作流参考模型中不必要的成分,尽量简化系统的复杂度。
1.2系统整体模型
工作流引擎为工作流实例提供运行时的执行环境,包括实例的创建,激活,挂起,终止,并按定义流程和数据信息导航推进实例。工作流引擎设计的好坏直接关系到工作流的执行效率与可扩展性,进而影响到工作流系统的柔性以至企业的办事效率及在市场中的竞争力。
参照工作流联盟定义的工作流模型接口模型中,工作流引擎技术主要实现接口l(过程定义工具)和接口2(工作流客户调用)的功能。它主要由解析加载模块、流程执
行模块、数据库持久化模块、安全模块、事物管理模块、其他支持模块。如图2所示。
图2 工作流系统整体模型
2工作流引擎的实现
整个工作流引擎部分由流程定义器、流程管理、任务分配和流程接口组成。
(1)流程定义器。根据多种建模方式对业务流程进行定义,描述一个业务流程是如何进行的,在该系统中已事先定义好所有流程。
(2)流程管理器。根据流程的定义创建新的流程实例,管理现有的流程实例,对流程实例进行更新、终止等基本操作。
(3)任务分配管理器。负责管理系统为每个用户提供的工作列表。判断用户是否有权访问工作任务。通知工作项完成、更新,选定工作项的截止日期并根据需要调用相应工具或应用程序。
(4)流程接口。用户模块通过该接口访问工作流引擎,通过该接口实现应用层服务和流程服务之间的通信。
对于一个轻量级工作流引擎只需要三方面的对象支持它的运作:工作流模板、工作流实例和工作流监控。
2.1数据库的实现
本系统采用关系型数据库来存储工作流管理系统的相关资料,以特定的实体形式保存在关系型数据库中.数据库设计如图3所示.
图3工作流引擎数据库关系图
它主要有工作流表、节点表、工作流实例表、节点实例表和历史记录表组成。它们和工作流模板中的类和数据结构相对应。图中并未完全表示所有的数据库表,还有一些是在定义工作流模型的时候才加入数据库的,如对应工作流附件类型的表格[4]。为了减少网络流量,提高系统的运行速度,把一些有关联的数据库操作使用存储过程来实现。
2.2系统分层实现
工作流管理系统的采用三层体系结构,三层分别是客户应用层、业务逻辑层、数据层。应用层是工作流平台的用户应用部分,使用HTML+CSS做界面,用户通过Web浏览器参与业务流程处理。客户登录工作流网站并进行身份验证之后会进入不同的界面进行各自的工作。
业务逻辑层的实现主要利用中间件技术,它接受Web层发来的请求数据,并依此进行相应的动作,完成事先定义的任务,并且把下一步的要求回送给Web层。工作流引擎以组件形式封装在业务逻辑层,提供接口供用户调用。中间件以Java Bean的形式存在,内部调用JDBC、Jmail等与数据库和Email等系统相联。
数据层是工作流平台的数据基础,由工作流模型数据库、工作流实例数据库和工作流组织数据库等组成,主要负责对工作流系统中的模版数据、实例数据和组织数据进行存储、组织与维护。
2.3工作流相应管理
工作流模板管理包括模板的创建、修改和删除。创建就是将建模工具生成的工作流模板保存到数据库中。工作流模板包含表单和路径,表单包含若干个表单项。每个表单项由
项目名称,数据变现形式组成。数据变现形式可以是单选框,复选框,时间,数字,文本。路径包含一个个工作项和连接。工作项包含:工作项名称,描述、预定的处理时间、处理者(处理者类型包含:用户、角色、职务、流程发起者的领导、某用户的领导、上一步处理者的领导),处理者处理的内容。连接定义了工作流中的流向,包括三种:一对一、一对多和多对一。