基于WEB的工作流引擎设计和实现_第1页
基于WEB的工作流引擎设计和实现_第2页
基于WEB的工作流引擎设计和实现_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于WEB的工作流引擎设计和实现一、引言随着社会生产的流程化,工作流Workflow起着越来越重要的作业,工作流的核心是流程管理。对于企业来说,其生产经营活动就是由各种各样业务流程交织在一起组成的。然而,在企业管理中,许多流程在日常操作过程中已被习惯,而不被人们所重视,更不能被有效的管理起来。另外,客户的需求瞬息万变,而产品的生命周期也是在不断缩短,技术在不断创新。企业要在这样一个竞争和变换的外部环境中求得生存,就必须要有随需而变的能力,不断地调整和优化自身的各种业务流程,对流程进行重构和再造。为此,本文详细描述了工作流引擎的系统结构、接口设计、功能建模,以及工作流引擎在ERP系统中的应用。二

2、、工作流技术概述一相关概念工作流Workflow就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在电脑中以恰当的模型进行表示并对其实施计算。工作流引擎Workflow Engine, WfE的主要功能是通过电脑技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流引擎来调度、实现。二工作流引擎的主要功能工作流引擎是定义、创建、执行工作流的软件组元。作为工作流的核心应能提供以下几个方面的功能支持:解释过程定义;创建过程实例并控制其执行;调度各项活动;为用户工作表添加工作项;通过应用程序接口API调用应用程序;提

3、供监督和管理功能等。三、工作流引擎的分析及设计一工作流引擎的功能结构工作流引擎需要支持两种业务流程,即确定型工作流和非确定工作流。确定型工作流是指人们可以事先给出运行路线的一类业务流程;非确定型工作流是指人们事先不能给出运行路线的一类业务流程。业务流程的流向应根据实际情况而定。工作流引擎的功能结构图应该如图一所示:                   图1 工作流引擎的功能结构图二工作流引擎控制器分析 &#

4、160;   引擎控制器是工作流引擎在运行时的控制中心,引擎控制器的控制结构图如图二所示:    图二 引擎控制器的控制结构图1调度中心。调度中心接受从外部接口发送过来有关流程控制的请求,然后根据不同的请求类型调用相应的处理模块完成与本次请求相关的操作并将结果返回。由于是在DBMS内部实现工作流引擎的控制模型,因此有关请求的并发处理等问题完全可以交给数据库管理系统来完成,也不需要诸如请求队列等形式的数据结构。2任务管理。任务管理主要根据调度中心的指示完成诸如任务创建、任务状态的转换以及相关数据的维护等工作。每次“结束任务”的外部请求将

5、触发调度中心调用“任务管理”为后继活动如果存在的话创建新的实例,其状态为“待定”;同时,其他不同的外部请求也将触发“任务管理”实施任务状态的切换。3任务指派。任务指派处理只是针对常规交互活动,通常情况下,在任务状态由“待定”切换到“等待”过程中完成任务的指派工作,即处于就绪状态的任务在通常情况下都确定了其执行者。任务指派过程首先根据任务指派基准确定可以执行此任务的群体人员,通常情况下这是一个包含多个人员的集合;然后根据任务指派方法确定由这个群体中的哪些个体来执行任务,执行任务的个体标识记录在相应任务记录的字段中。4依赖检查。在工作流引擎中,业务规则可以分解成活动的前依赖规则和活动的后转发规则。

6、依赖检查指的是活动的前依赖规则的检查,调度中心在将任务切换到就绪状态之前将进行相关的前依赖规则检查,只有满足检查条件的任务才可以进行状态的切换。前依赖规则包含顺序、与汇聚、或汇聚和投票汇聚四种规则:第一,对于顺序前依赖规则,从前趋活动流转到当前活动跟其他前趋活动没有关系,当前活动的启动没有其他约束条件,相应任务可以立即由“待定”状态转换到“等待”状态。第二,对于与汇聚前依赖规则,相应记录要指明所有参与与汇聚的其他前趋活动,只有所有相关的前趋活动均到达各自指定的结束状态,当前活动方可启动。第三,对于或汇聚前依赖规则,前依赖活动集为空集,此规则的检查将涉及到业务活动表中的或聚集标志,其取值可以是所

7、有相关的前趋活动的结束标记之一或者是一个特殊的标记。如果或聚集标志不是一个特殊标记,则将检查相应前趋活动的结束标记是否和或聚集标志相同,假设相同,则启动当前活动,假设不相同,则不作任何处理。如果或聚集标志是一个特殊标记,则首先结束的前趋活动将启动当前活动,后结束的活动将被丢弃。第四,对于投票汇聚活动,前依赖活动集同样为空集,当前活动要等到属于同一批次任务数目到达设置的要求方可启动。5转发控制。当应用发出“结束任务”的外部请求时,该请求将触发调度中心启动“转发控制”。转发控制的主要依据在工作流数据模型中定义的后转发规则,后转发规则定义了当前活动与其后继活动之间的关系。6启动控制。启动控制负责常规

8、自动活动的所对应的自动执行体的启动并对其活动进行监控。      三、工作流引擎实现      一任务表结构确定型任务表负责保存系统中所有确定型流程的任务实例待处理记录及任务实例处理的历史记录,工作流引擎定期扫描该任务表,将任务表中所有待处理的任务实例分发给相应流程中的相应节点。确定型任务表的结构为:TaskList(TasklnstanceID,TasklD,TaskStep,TaskHandleTime,ProceeID,DstNodelD,lsHandled,CommmitMan),分别为

9、:TasklnstaneeID:同一个任务可以有多个不同的运行实例。该字段用于区别多个不同的运行实例;TasklD:用于区别不同的任务;TaskStep:记录任务运行实例在流程中的处理步骤;TaskHandeTime:任务运行实例在相应处理步骤中的处理时间;Processed:记录任务实例所在流程的ID;DstNodelD:处理任务运行实例的后续节点;IsHandled:任务实例在后续节点是否已经处理;CommitMan:任务的处理人。二工作流的流向控制工作流引擎的一个核心功能就是要决定确定型任务表中各个任务运行实例的后续处理节点,使任务运行实例按照事先定义好的路线流动,也就是流程的流向控制。流向控制算法描述如下:*控制流程流向*function HowControl(string processid,string nodeid)string followIds= GetSueNodeld(processed,nodeid);for(int i=0; i<followIds的长度; i+)*后续节点同步控制*if(查询后续节点i所对应的条件中有无isprecondition为true的条件)对后续节点进行同步控制;*子流程的处理情况*if(后续

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论