版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于目录树的工作流引擎设计与实现 田雅轩【摘 要】目前,大多数工作流引擎流程复杂、环节较多,维护起来难度较大。并且在工作流发生变动的情况下,很容易影响到任务正常流转。为应对工作流引擎在使用过程中出现的加载效率低、灵活性小、流转受阻等问题,提出了基于目录树结构的工作流引擎设计。【关键词】工作流;工作流引擎;目录树;节点【abstract】most of the current workflow engine process complex, more links, it is difficult to maintain. and if cha
2、nges in workflow, it is easy to affect the normal circulation of official document. for the problem of loading efficiency to deal with workflow engine used in the process of low, small, flexible transfer resistance, puts forward the design of workflow engine based on tree structure.【key words】workfl
3、ow; workflow engine; the directory tree; node1 设计背景与目标工作流引擎是根据角色、分工和条件的不同,提供对各应用系统有决定作用的信息传递路由解决方案1。目前,市场上的工作流引擎系统,流程事项的各环节和流转路径相对比较固定,当流程发生变化时,只能通过修改代码方式进行解决,因此,程序维护量比较大2。工作流的变动不仅影响到程序的更改,同时,还会影响到占用该工作流的任务正常流转,造成任务流转受阻。虽然现在推出了很多工作流引擎的框架,例如,shark和jbpm3,可以在此基础上制定个性化工作流引擎,来满足我们对工作流灵活性和易维护性得要求4,但是当工作流进
4、行更改时,必须将正在使用该工作流的任务进行清理,任务必须走完流程或者被删除重新发布,否则无法修改工作流内容。因此,虽然解决了灵活性问题,但在工作流维护方面又增加了额外的工作量。为此,基于.net平台,开发了一种较轻量级的工作流引擎,用于任务流转。同时,为了保证在修改工作流的同时能够正确处理占用该工作流且未流转结束的任务。最终确定设计方案为:在更新或删除工作流时,如存在使用该工作流且未结束流转过程的任务,需要对任务的路由方向重新设置。2 工作流引擎模型构建本工作流引擎在架构上采用了目录树结构方式,审批环节和审批人作为树的叶子节点,若为审批组则该节点下需要关联审批组人员,则审批组内的审批人员作为叶
5、子节点。2.1 节点模型2.1.1 审批环节名称在审批环节名称设置方面,所有名称采用结构化处理,即环节名称全部从节点名称表中选取。2.1.2 审批对象审批人即审批对象是在任务流转至各环节时处理该文的经办人,每个审批环节均有不同审批人负责任务审核、批阅和签批。审批对象分为五类:审批个人、审批组、返回发文者、本部门负责人、总负责人。1)审批个人即选择指定的人员作为审批人,当任务流转至特定环节时,由此人负责任务的审批,其他人均看不到该文,也无法进行审批。2)审批组审批组可以选择一个部门,例如,测试组、研发组、项目组;也可以预先设置一个小组作为审批组,例如,部门领导组、工会小组、党员组。当任务流转至特
6、定环节前,需要用户从该审批组中选择人员作为下一审批人。3)返回发文者任务在上一环审批结束后会自动返回至发文者进行处理。例如,当系统维护费的预算经中心领导审批后返回给发文者,发文者上传发票后继续下一流程审批。4)本部门负责人任务在发布后或上一审批结束后,自动流转至本部门领导进行审批,当本部门领导大于两位以上,则需要用户手工选择其中一位审批领导。5)总负责人任务在发布后或上一审批结束后,自动流转至总负责人进行审批,当总负责人大于两位以上,则需要用户手工选择其中一位审批领导。2.2 工作流操作工作流的操作包括工作流的建立、删除,以及更新工作流,工作的修改操作还包括了:删除节点、插入节点、更新节点内容
7、。其中删除工作流、更新工作流(包括:删除节点、插入节点、更新节点内容),此类操作在执行时,需要判断当前操作的工作流是否被占用,如有任务使用此工作流并且该任务未流转结束,则该任务将被“挂起”,需要将该任务转向其他节点,进行下一步流转。2.3 工作流接口设计在工作流设置过程中,通过调用workflow_interface()接口选择节点类型并对工作流进行实例化。最终能够实现三种类型的工作流,第一个种是以个人为审批对象的工作流person_approveflow();第二种是以组为审批对象的工作流group_approveflow(),每次任务在流转到下一环节之前,需要从该组选择下一审批人,然后进行
8、流转;第三种是个人审批与组审批相结合的工作流person_groupflow(),即有些环节需要从组中选择下一审批人,有些环节已固定审批人员,不用选择。3 工作流引擎实现3.1 工作流创建在工作流构建的过程中,需要将用户的选项内容以及关联的表内容进行抓取,传输至工作流程表中,并生成目录树。具体事项如下: 1)通过public actionresult index()函数进行初始化;2)通过递归方式:函数actionresultcreate(datatable table, lcsz lcsz, string id),分别创建各子树,并进行实例化。3.2 工作流调用通过前序遍历树的递归方式调用工
9、作流进行流转,并自左向右遍历树的每一个节点,currentnode 为当前节点,nextnode为下一节点,先访问第一个子树,直到访问至叶子节点,再访问该层的兄弟节点,再遍历另一个兄弟子树,直至遍历全部节点,即流程全部走完。3.3 工作流修改/删除工作流程内容一旦发生变化,例如,工作流被修改,包括:增加节点、删除节点、修改节点、删除工作流,都将触发check_trigger触发器。通过check_trigger扫描当前流转过程中的任务是否占用该工作流,如果有任务被占用,工作流引擎自动将任务置为“挂起”状态,需要将该任务进行重置,重置方案为:1)将任务退回至初始状态;2)转到其他工作流节点;3)
10、转到本工作流未被删除/修改的节点,如果该工作流即将被删除,那么只能转移到其他工作流节点;最后更新或删除工作流。在程序执行的过程中,首先一旦出现triggeraction.delete和triggeraction.update操作,则执行triggcontext.triggeraction触发任务,即将其变为“挂起”状态,由修改者对任务重新设置。4 工作流引擎性能测试一般的工作流引擎是通过数据库调取流转路径的数据,而本设计则是直接访问已生成的目录树,来调取任务流转路由。记录了1个用户,10个用户、50个用户,100个用户并发调用两种工作流的平均执行时间,过程为从任务流转活动开始到结束。其中,1个
11、用户时,使用一般工作流引擎平均执行时间为2.607s,基于目录树的工作流引擎平均执行时间为1.477s;10个用户时,平均执行时间分别为3.261s与1.763s;50个用户时,平均执行时间分别为3.715s与1.904s;100个用户时,平均执行时间分别为4.213s与2.024s。以上测试可以看出,对于执行同一类活动,使用本设计的工作流引擎比一般工作流引擎所用要少得多。且随着并发数量的增加,这一现象变得更加显著。5 结束语基于目录树的工作流引擎在建立工作流的过程中,操作简单,易于修改。在工作流调用过程中,通过性能测试得出平均执行时间为1.792秒,时间复杂度为o(n),执行效率较高。并针对
12、现有工作流设置过程中存在修改后造成流转中任务路由错误或受阻的情况,设计了工作流修改与任务流转联动的机制,保证了占用所修改工作流的任务能够重新选择节点进行新的路由。由于该工作流的设计刚初步完成,在有些流转功能上还需要手工的参与,在实现全部自动化路由方面,需要进一步完善。【参考文献】1武凌.工作流知识管理系统工作流引擎的研究j.计算机技术与发展,2010,20(8):112-115.wu ling. study on workflow knowledge management system workflow engine. computer technology and development.
13、2010,20(8):112-115.2许悦珊.嵌入式工作流引擎的设计与应用j.计算机时代,2009,199(1):20-24.xu ruishan. design and application of embedded workflow engine. computer era. 2009,199(1):20-24.3马亚锋,张玉扣.教研视野下主流开源工作流引擎对比分析j.成才之路, 2014,413(1):60.ma yafeng, zhang yukou. analysis of teaching from the perspective of mainstream open source workflow engine. the road to success,2014,413(1):60.4冯天佑,梁立宇,李成华,等.基于activiti工作流引擎技术的电力行业业务流程管理系统j.信息通信,2013,130(8)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 牛津译林版(2020)必修一-Unit3 Getting along with others基础夯实训练~词汇短语句型(含答案)
- 2025年高二化学选择性必修2(人教版)同步课件 第二章 第二节 第1课时 分子结构的测定和多样性 价层电子对互斥模型
- 浙江省宁波市第七中学2024-2025学年九年级上学期期中语文试题(含答案)
- 湖南省九校联盟2025届高三第一次联考化学试题(含答案)
- 福建省漳州市平和县广兆中学2024-2025学年八年级上学期期末道德与法治试题(无答案)
- 高一 人教版 英语必修一 第一单元《Lesson 4 Discovering Useful Structures》课件
- 绿色建筑之经典美术馆案例分析
- 五年级语文上册《28.毛主席在花山》
- 高一人教版英语必修一Unit 4《NATURAL DISASTERS Lesson Two Reading and Thinking》 课件
- 浙江省宁波市2023-2024学年高三上学期语文期末考试试卷
- (高清版)WST 360-2024 流式细胞术检测外周血淋巴细胞亚群指南
- (高清版)DZT 0285-2015 矿山帷幕注浆规范
- 黑龙江旅游调研报告
- 带你走上主播台智慧树知到期末考试答案2024年
- 关于医疗事故
- 膝痹病的中医护理常规
- 卷烟营销技能中级培训课件
- 2024年大学试题(宗教学)-佛教文化笔试历年真题荟萃含答案
- 托幼机构卫生保健人员考试题库【附答案】
- 相位生成载波(PGC)调制与解调(包含MATLAB代码)
- 2024年一建水利实务真题及答案
评论
0/150
提交评论