版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于B/S架构的柔性工作流引擎设计袁乔,王丽芳,蒋泽军,李焱伟(西北工业大学 软件与微电子学院 西安市 710065 yqoffice)摘 要:工作流引擎是工作流管理系统的核心,为提高工作流管理系统的开放性、灵活性、易用性,提出了一种基于JAVA的柔性工作流引擎设计方法。通过工作流引擎的ER图,详细阐述了基于JAVA的柔性工作流引擎设计思路和方法;重点介绍了工作流引擎的路由控制机制;并对工作流管理系统的总体结构进行分析和设计。关键词:工作流;柔性工作流引擎;工作流管理系统;路由控制机制中图分类号:TP311 文献标识码: ADesign for B/S-based Flexible Workf
2、low EngineYuan Qiao, Wang Li-fang, Jiang Ze-jun, Li Yan-wei(College of Software and Microelectronics, Northwestern Polytechnical University, Xian Shaanxi Province 710065, China)Abstract:Workflow engine is the core of workflow management system, to improve workflow management system of openness, flex
3、ibility, ease of use; a design method of flexible workflow engine based java is put forward. According to the data model ER chart of workflow engine, expatiate on the idea and method of the flexible workflow engine; introduce the realization mechanism of the route controlling especially; and analysi
4、s and design the overall structure of the workflow management system。Key Words:Workflow; Flexible Workflow Engine; Workflow Management System; route controlling mechanism0 引言在计算机技术中,工作流是指全部或者部分由计算机支持或自动处理的业务过程。工作流管理系统是使用工作流技术实现工作流的定义、创建、管理和实施的软件系统1。工作流技术在发展过程中经历了从刚性向柔性的变革,这种变革源自企业在发展过程中不断出现的许多新需求。例如
5、,部分过程的具体定义不在创建时而在运行时,由终端用户参与完成,或者通过运行时人工干预选择某条执行路径,或者根据各种内、外部原因,更改工作流过程,并将更改及时地反映到正在执行的工作流实例中去等等。以上刚性系统在处理这些柔性需求时,显得能力不足2。为了提高工作流系统的开放性、灵活性、动态性和易用性,本文提出了一种基于B/S架构和关系型数据库的能适应动态改变的柔性工作流引擎。1 基于B/S架构的工作流管理系统总体结构工作流管理系统是基于B/S架构的三层体系结构,工作流用户通过浏览器访问相应的工作流管理和工作列表项等功能网页。由于B/S架构自身所固有的许多优点,再结合JAVA、XML和oracle数据
6、库等技术进行系统设计,可以使工作流管理系统具有跨平台的特性。其体系结构见图1。图1 工作流管理系统体系结构图) 数据层系统采用Oracle数据库存储过程定义数据、工作流实例数据(活动实例、活动监听和活动所有者等)、用户信息数据和业务数据,并提供数据访问逻辑和事务处理逻辑的实现。) 业务逻辑层负责系统的业务逻辑的实现,包括工作流定义工具、工作流引擎、管理监控工具等。其中工作流引擎是系统的核心部分,它的主要功能是解释过程定义,为过程实例提供运行时环境,调度过程实例的运行,并提供工作流客户应用程序、被调应用程序和管理监控工具的接口,协调工作流系统的正常运行。) 表示层(即浏览器)工作流管理系统的管理
7、员、过程定义人员和一般用户都通过浏览器完成与系统的交互、业务数据的处理、流程定义或管理监控等任务。2 基于B/S架构的柔性工作流引擎分析和设计2.1 工作流引擎功能模块分析工作流引擎为工作流实例提供执行环境,它是工作流管理系统的核心服务。因此,工作流引擎设计的好坏直接关系到工作流的执行效率与可扩展性。本文介绍的工作流引擎采用B/S架构实现,其核心用JAVA和JSP编写。用这种方式可以实现基于Web的管理,从而简化工作流引擎的配置。在本系统中,工作流引擎负责将工作流过程定义保存到关系型数据库中,保证数据表之间逻辑关系的正确性,并维护任务项表,控制任务实例的运行。工作流引擎从大的方面可以分为三大功
8、能:定义模块、管理工具和辅助模块。如图2所示。图2 工作流引擎功能模块图其中定义模块主要负责对工作流程的定义及维护,为过程和节点的创建提供模板。管理模块主要是对流程实例、活动实例及工作项的创建、激活、挂起、终止等行为进行管理,控制流程实例、活动实例及工作项的状态转换逻辑,同时监控其运行。辅助模块主要包括日志管理、异常处理等。当企业的业务流程变化时, 通过过程定义工具调整路由控制条件,可适应流程的动态变化,从而达到柔性控制的目的。2.2 工作流引擎设计工作流引擎的设计主要是引擎模型的设计,引擎模型主要包括数据模型和定义工具模块。数据模型主要是对工作流引擎中用到的各种实体数据结构进行定义,定义工具
9、模块包括流程定义器、分配器和路由选择器。下面分别从工作流引擎的数据模型和定义工具模块来介绍引擎的设计。2.2.1 数据模型设计本文的工作流引擎数据模型是基于关系数据库的,其ER图如图3所示。数据模型主要分为流程定义部分和流程实例部分。流程定义部分主要是对流程、活动、活动所有者、活动转换关系以及活动监听器等进行定义,如流程定义表(GZL_FLOW_DEFINE)、活动定义表(GZL_ACTION_DEFINE)和节点转换表(GZL_ACTION_TRANS)等,其需要的字段如ER图所示;流程实例部分主要是用来存储流程实例、活动实例和实例拥有者等的信息,如流程实例表(GZL_FLOW_INSTAN
10、CE)、活动实例表(GZL_ACTION_INSTANCE)和实例拥有者(GZL_OWNER_INSTANCE)等,其需要的字段如ER图所示。整个系统的运行是在关系数据库和工作流应用程序的相互协调与合作下完成的。本系统采用Oracle 9i来实现数据模型设计,并生成数据关系图。图3 工作流引擎ER图2.2.2 定义工具模块设计定义工具模块如图2所示,包括流程定义器、分配器和路由选择器。定义模块主要负责对工作流程的定义及维护,为过程和节点的创建提供模板。1) 流程定义器流程定义器为用户提供一个图形化的界面,用户通过此界面可以定义符合自己要求的流程。流程的定义主要包括节点的定义、节点转换定义、节点
11、所有者的定义以及节点监听器的定义。系统根据用户输入数据生成一条流程定义记录存入数据库的GZL_FLOW_DEFINE表中,同时在数据库的GZL_ACTION_DEFINE、GZL_ACTION_TRANS和GZL_TRANS_CONDITION表中也会生成相应的数据记录。2) 分配器分配器的主要工作是根据不同的条件为业务数据分配合适的流程。其分配有两种方式,其一是事先能够知道该业务数据所要运行的流程,根据flowType(该值用来标示已定义流程的唯一性)值直接从GZL_FLOW_DEFINE表中取出相应流程;其二是根据业务数据中的一些关键信息,自动从GZL_FLOW_DEFINE表中取出最匹配
12、的流程。要选择哪种方式,由管理员在系统管理中设定。通过这两种方式,大大提高了系统的柔性。3) 路由选择器工作流引擎的核心功能就是要决定任务表中各个任务运行实例后的后续处理节点, 使任务运行实例按照预定义的路线流动, 也就是流程的路由控制。根据WFMC对工作流模型的定义,一个工作流引擎至少支持以下几种流向控制:顺序、或分支、与分支、或连接和与连接3,如图4所示。图4 工作流流向控制节点工作流引擎的路由控制主要通过后续节点对前续节点的依赖关系确定。在流程定义的时候,除了结束活动节点外,每个活动节点的后续节点以及和后续节点的转换关系会被存储在相应的GZL_ACTION_TRANS和TRANS_CON
13、DITION表中。为了对节点之间的转换进行控制,在GZL_ACTION_DEFINE表中设置一个字段degree(当前节点的度),在GZL_ACTION_TRANS中设置一个字段agreeDegree (同意通过的度),在GZL_TRANS_CONDITION表中设置一个字段description(转换关系描述,记录当前节点的degree和GZL_ACTION_TRANS中的agreeDegree之间要满足什么样的关系,节点才能继续运转)。当流程运行到某一节点的时候,系统会读取当前节点的degree值和GZL_ACTION_TRANS中的agreeDegree值。并比较degree和agree
14、Degree,看是否满足GZL_TRANS_CONDITION中的description所描述的关系。若满足,则进入下一个节点。若不满足,则该节点进入等待状态,直到该节点满足条件为止。通过这种方式,可以实现工作流模型中定义的顺序、或分支、与分支、或连接和与连接等流向控制。对于“子工作流”结点,当该结点执行时要生成一个新的工作流实例,并在工作流实例库中记录当前工作流实例ID以及当前活动ID作为其父工作流信息,然后调度子工作流运行,当子工作流运行完成后,根据父工作流信息可以返回父工作流结点调度后继结点。从而实现了对子工作流的控制。3 结论本文介绍了一个基于B/S架构的柔性工作流引擎的设计思路。它以
15、数据库管理系统为核心,并具有如下特点:支持流程的图形化配置与管理;配置采用灵活的方式,提高了工作流管理系统的柔性;具有错误恢复机制和一定的事务处理能力,提高了工作流管理系统的健壮性。其已经在合同管理信息系统中得到了实际应用,并达到预期效果。说明基于B/S架构的柔性工作流引擎的设计具有可行性,可以应用在具体的管理系统中。参考文献1 范玉顺. 工作流管理技术基础M . 北京: 清华大学出版社, 2001.2 周建涛,史美林,叶新铭. 柔性工作流技术研究的现状与趋势. 计算机集成制造系统,2005,(11):1501 - 1510.3 NUTT GJ. The evolution towards f
16、lexible workflow system J. Distributed System Engineering, 1996, 3 (4): 276 - 294.4 WfMC-TC00-1003, Workflow Management Coalition. The Workflow Reference ModelS. 19955 张洪山,殷人昆,张素琴. 基于Web 的工作流引擎设计J . 计算机工程,2004,(4) :83285.6 Kiepuszewski. Expressiveness and Suitability of Languages for Control Flow Modeling in Workflows (Submitted):PHD ThesisD.Queensland University of Technology,2002.7 赵文,胡文蕙,张世琨等. 工作流元模型的研究与应用J.软件学报
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江丽水开放大学招聘专业技术人员1人备考题库含答案详解(典型题)
- 2026上半年广东广州市越秀区教育局招聘事业编制教师83人备考题库及答案详解【易错题】
- 2026年4月江苏扬州市邗江区卫生健康系统事业单位招聘专业技术人员20人备考题库及参考答案详解(夺分金卷)
- 2026贵州贵阳综合保税区贵综跨境数据科技服务有限公司员工招聘1人备考题库含答案详解(满分必刷)
- 2026中国科学院化学研究所化学与生命健康交叉中心招聘备考题库及答案详解(新)
- 2026江西萍乡学院高层次人才博士引进35人备考题库附答案详解(完整版)
- 2026浙江台州市第一人民医院招聘编外合同制人员5人备考题库带答案详解(能力提升)
- 2026中国水利水电第八工程局有限公司社会招聘备考题库(含答案详解)
- 2026江苏淮安市淮阴师范学院部分教师岗招聘4人备考题库附参考答案详解(培优b卷)
- 2026山西经济管理干部学院(山西经贸职业学院)招聘博士研究生5人备考题库附答案详解(轻巧夺冠)
- 真分数与假分数练习题
- 2026年山东省东营市高考英语一模试卷
- 2026陕西君保融数字产业有限公司招聘(47人)考试参考试题及答案解析
- 2026年春季青岛版小学数学二年级下册教学计划含进度表
- 中级注册安全工程师《安全生产专业实务-其他安全》真题及答案
- GB/T 46941-2025中医眼保健通用技术要求
- 2026年热交换器故障及维修案例分析
- 2025-2026学年上海市杨浦区八年级(上)期末英语试卷
- 2026年东莞市厚街控股集团有限公司招聘14名工作人员备考题库及1套参考答案详解
- 向法院申请保留最低生活保障申请书(3篇)
- 宣传招标合同范本
评论
0/150
提交评论