工作流引擎在工程项目管理系统中的应用与研究_第1页
工作流引擎在工程项目管理系统中的应用与研究_第2页
工作流引擎在工程项目管理系统中的应用与研究_第3页
工作流引擎在工程项目管理系统中的应用与研究_第4页
工作流引擎在工程项目管理系统中的应用与研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、工作流引擎在工程项目管理系统中的应用与研究摘要:文章对工程项目管理系统的特点及设计要求进行分析,对工作流引擎应用于该类系统的必要性进行简述。阐述了工作流管理系统结构及工作流引擎组成,着重介绍工作流组件、工作流表、工作流实例表、工作流相关类等关键要素的设计,并以一个典型流程模型为例,给由工作流模型定义数据库的一个实现过程。对以工作流引擎为核心的工程项目管理系统功能模块进行设计划分。关键词:项目管理系统;工作流引擎;应用与研究DOI:10.16640/ki.37-1222/t.2016.12.0851工程项目管理系统特点工程项目管理系统中,项目管理通常为每个项目分为"项目销售管理、招投标

2、管理、合同与技术管理、施工准备管理、施工过程管理、竣工验收管理、竣后服务管理”这七个业务阶段1,每业务阶段均有可能需要交叉引用之前的数据,其中各个业务阶段均涉及众多的参与人员及角色,并且还需要考虑系统作为开放式平台,为多个工程公司提供系统功能服务。在日常的工程项目管理中,各个业务阶段的大部份环节属于流程类工作,比如开工审批、采购审批等。一般过程是由基层业务人员发起申请,部门主管接受申请,审查后提交上一级领导,最终由莫级主管审查通过后再返回给基层业务人员。传统工程项目管理系统是基于事务管理及MIS的方式设计,该方式未将应用软件与业务流程相分离,只是把业务流程混合事务管理编写到工程项目管理系统中,

3、由此造成的弊端是当组织机构或业务流程发生变化时,整个系统可能需要重新设计,或者需要对系统编码进行大幅修改,修改难度大、软件维护周期长。所以若仍使用事务管理及MIS的设计方式,已经不能支撑当前项目管理内在的协作性、高效性、实用性等要求。为此,必须采用业务驱动及流程管控的模式来提高工程项目管理系统效能,使用工作流技术可以很好地实现该目的。在基于工作流技术的工程项目管理系统中,设计时将流程的生成、流转逻辑、执行、监控、管理等工作实现代码从具体业务中剥离独立由来,形成专门的“工作流引擎”,设计人员在设计业务流程时仅需要关注业务流程本身的业务逻辑,完成业务逻辑设计后再调用工作流引擎实现业务具体流转。当项

4、目所在公司的组织机构、人员角色或业务流程发生变化时,仅需要修改业务逻辑后再绑定工作流引擎即可完成业务流程的维护,大大降低维护难度及维护周期。2工作流管理系统2.1引言工作流管理系统(WorkHowManagementSystem,WFMS)是一个软件系统,它完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。通常,工作流管理系统是指运行在一个或多个工作流引擎上用于定义、实现和管理工作流运行的一套软件系统,它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。工作注引擎负责处理工作流管理系统的逻辑与流程控制。因此,工作流引擎是工作流管理系

5、统的核心部分2。一般而言,工作流引擎有如下三个阶段:(1)建立阶段:主要考虑工作流过程和相关活动的定义和建模功能。(2)运行阶段:在一定的运行环境下,执行工作流过程,并完成每个过程中活动的排序和调度功能。(3)人机交互阶段:实现各种活动执行过程中用户与应用工具之间的交互3。2.2 工作流引擎的体系结构如图1所示,工作流引擎系统可分为以下三个部分:(1)数据库:用于持久化保存用户数据,工作流数据等。(2)Web服务器:分为两部分,第一部分视图模块用于向用户提供交互的接口,第二部分控制模块用于向工作流引擎传递用户的动作与数据(3)工作流引擎:作为整个工作流系统的核心部分,其分为以下几个部分:1)数

6、据库接口:负责与数据库交互,向数据库中读写数据;2)用户管理模块:负责管理用户的个人信息等数据,以及处理用户的登录及注册等动作;3)组管理模块:负责管理用户组,以及组成员的管理;4)工作流管理与控制模块:负责管理工作流,及控制其执行等操作;5)组件及业务逻辑模块:工作流由组件构成,组件及业务逻辑模块负责管理组件及其业务逻辑。2.3 系统的设计原则为了保证系统的正确性和高效性,系统遵循以下设计原则:(1)用户必须先创建好工作流并提交后,才能对其组件的属性进行设置修改。(2)每个组件都有一个唯一的编号,此编号由前端生成,在任何地方均一致。(3)在所有的组件中,只有choose组件能够回退到工作流已

7、执行过的结点。3工作流引擎关键要素设计3.1 工作流组件工作流中共有8种重要的组件:开始、结束、任务、子模块、和汇聚、或汇聚、选择触发、并行触发。(1)开始组件(start):表示一个工作流程的开始,在(系统或者人为)激活后,直接引起下一个工作的开始。(2)结束组件(end):表示一个工作流程的结束。通知项目负责人或者相关人员项目已经到达了完成状态。(3)任务组件(task):用于定义工作流的单个工作项。任务组件对应单个输入和单个输生。(4)子模块组件(submodule):用于定义工作流中的莫个子过程,该子过程同样可以看作是一个完整的工作流。子过程模块的输入将作为子过程中工作流的“起始”组件

8、的输入,子过程的输由即其中的工作流的“结束”组件所传递的消息。(5)和汇聚组件(and):和汇聚组件允许多个消息来源的同时输入,并在处理了多个消息来源后,来决策后续任务的执行与否。“和汇聚”组件只有在所有输入的消息完全到达之后才能启动后续步骤的执行。(6)或汇聚组件(or):该组件接受多个消息来源的同时输入。当其中有一个消息到达的时候即可启动后续任务。通常情况下,启动后续任务之前,该模块要主动停止其他没有汇聚的任务。(7)选择触发组件(choose):接受一个消息来源,并产生多个潜在的后继消息走向。选择触发有多个消息输由路径,其通常只能选择后继路径中的一条路径。(8)并行触发组件(parall

9、el):该组件一旦触发,则可以同时开启多个后续路径同时执行操作。可同时开启的路径数目没有限制,潜在的限制是系统运行时的承载能力和数据库中相关字段的定义。3.2 核心数据库表设计在工作流引擎中最重要的数据表为工作流表(WorkFlow_Table),见表1及工作流实例表(Entity_Table)见表2,分别设计如下。3.3 工作流运行实例样例以图2所示典型流程模型,具工作流模型定义数据库的一个实现样例如表3:运行实例表Entity_Table(仅列由部份重要字段)3.4 工作流相关类的设计根据工程项目管理需求和数据库表的结构,在系统中需要创建以下工作流引擎重要类。3.4.1 组件类组件类用来描

10、述组件在内存中的实例(对象),与数据库中的Entity_Table相对应,它的每一个实例都对应着Entity_Table中的一行。采用继承的方式对组件类进行设计,所有组件及其继承关系如图3所示。工作流中共有8种重要的组件:开始、结束、任务、子模块、和汇聚、或汇聚、选择触发、并行触发。其中子模块组件是一个特殊的组件,是为强化工作流的逻辑视觉效果而添加的功能组件,因此在工作流引擎可不进行设计。为其它的7种组件设计了一个共同的基类BaseComponento(1)基类BaseComponent其成员变量与成员函数定义如下:组件ID:组件的唯一标识符。组件名称:组件的名称。组件描述:对该组件的简单描述

11、。触发方式:组件开始的触发方式(默认为自动开始)。前驱后继:记录组件的前驱结点与后继结点,用来描述工作流中的“箭头”。完成状态:此组件所对应的实例的执行状态,包含以下四种状态:不满足开始条件,满足条件等待开始、正在运行、已完成。Start():若组件的开始条件已满足,则调用此函数将其状态改成正在运行。Over():若组件已执行完成,则调用此函数将其状态改成已完成,同时触发其后继结点(若后继结点是自动触发,则调用其Start函数,若为手动触发,则将其状态修改为满足条件等待开始)。(2)终端组件类终端组件类TermComponent是BaseComponent类的派生类,它派生了StartComp

12、onent和EndComponent两个子类。TermComponent类采用自动开始的触发方式,没有任何的成员变量和成员函数。StartComponent类中有一个开始时间变量,用来记录此组件(即整个工作流)的开始执行时间;EndComponent类中有一个结束时间变量,用来记录此组件(即整个工作流)的完成时间。(3)逻辑组件类逻辑组件类LogicComponent是BaseComponent类的派生类,它派生了AndComponent、OrComponent和ParrelComponent三个子类。LogicComponent类及其子类的实例表示的是工作流中的逻辑关系,因此采用自动开始的触

13、发方式,没有任何的成员变量和成员函数。(4)操作组件类操作组件类OperComponent是BaseComponent类的派生类,它派生了ChooseComponent和TaskComponent两个子类。OperComponent类采用自动/手动开始的触发方式。3.4.2 工作流类工作流类用来描述工作流在内存中的表现形式,与数据库中的WorkFlow_Table相对应,它的每一个实例都对应着WorkFlow_Table中的一行。工作流类的结构图和成员变量的定义如图4所示4工程项目管理系统功能模块设计功能模块划分见图5(1)前端页面:前台创建、修改、显示工作流页面利用图形化交互界面,通过拖拽方

14、式,实现创建工作流和修改与项目相关的工作流。通过填写表单和提交表单,执行莫个工作流。组管理页面对组进行创建和删除,并对组内的组成员用户进行添加、删除管理。(2)后台服务:组件及其业务逻辑模块为后台服务实现组件操作及其业务逻辑。工作流的调度与控制模块为后台服务实现工作流的调度与控制功能。工作流及其校验模块主要功能是当用户提交一个工作流的时候,后台服务对其进行校验,判断其正确性。5结语在工程项目管理系统设计中通过引入工作流引擎技术,实现项目管理系统的具体业务与工作流相分离,系统运行时通过业务与工作流程分别独立设计,然后通过调用的方式来启动工作流,提高了管理效率及可用性。止匕外,在工程项目管理系统中使用工作流引擎,提高了系统的适应性、可维护性,能降低整个

温馨提示

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

评论

0/150

提交评论