流程设计--设计理念
SDP工作流程管理系统功能模型如下:
SDP工作流系统功能模型与参考模型的对应关系如下图所示:
根据流程功能模型和设计原理,针对SDP工作流程引擎框架进行设计,设计后的工作流引擎框架结构如下图所示:
运行原理
工作流业务管理是指运行在一个或多个工作流引擎上,用于定义、实现和管理工作流运行的一套软件系统。它与工作流执行者(人、应用)交互,推 进工作流实例的执行,并监控工作流的运行状态,其运行原理如下:
体系架构
SDP工作流程管理系统软件构成
1、建模工具:用来生成xml文件,并提供一个解析该xml,并把数据插入流程数据表中。
2、流程引擎:推进调度执行工作流过程和活动。维护自动活动和人工活动,分别为外部系统调用和参与者的任务列表提供数据
3、监控管理:对流程、活动任务的运行监控,实行通知信息的管理机制。
4、外部系统数据调用:调用和执行外部可执行文件、DLL、事件、存储过程、脚本等。
5、运行平台:用户web端发起流程,对流程工作任务进行领用执行,以及对流程进行跟踪监控管理。
SDP工作流程管理系统数据
(1)、工作流数据
流程数据:分为模型库和运行库。模型库的数据来源于对xml文件的解析。当对一个模型库实例化的时候,把模型库数据实例化并导入运行库。实例化包括生成序列ID,初始状态等。
相关数据:在路由活动中用来判断后续活动变迁数据ID,类型,初始值。
控制数据:变迁表的前驱活动ID,后续活动ID,工作流对象状态等数据。
形参数据:在外部Tools,EXE中规定的参数类型和个数。
人员数据:这里定义的参与者角色,需要和外部员工数据进行映射来对应员工。
(2)、外部数据
表单属性数据:人工活动界面设计时,需要对页面元素进行控制的数据
外部应用数据:外部数据执行所需要的数据。
外部系统数据:当工作流系统需要参与者交互的时候,需要引用员工数据,通过员工角色映射表来对应员工,有3种判定员工策略:先登录先指派,任务最少指派,唯一对应指派。
三、SDP工作流程管理系统功能
SDP工作流管理系统功能需要完整的流转完成需要经过三个阶段(模型定义、模型实例、模型执行)的执行才能完成。所以工作流管理系统功能包含三部分,功能描述如下:
模型定义阶段功能:主要实现工作流过程和相关活动的定义和建模功能。
模型实例阶段功能:对需要执行的流程的业务进行流程的实例化,完成过程实例、活动实例、工作任务的创建过程功能。
模型执行阶段功能: 执行既定工作流过程,并根据规则调度相应的活动,通过引擎调度系统,将活动产生的工作任务推送给处理者,处理者通过系统提供的人机交互功能来完成工作任务。同时对过程与活动的执行情况进行监控与跟踪。
四、SDP工作流程管理系统设计原理
我们的SDP工作流程引擎采用的是核心调度算法是FSM(有限状态机),基于调度算法来完成流程的流转。FSM的定义为包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算 模型。当输入符号串,模型随即进入起始状态。它要改变到新的状态,依 赖于转换函数。在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。
SDP工作流对象分为过程、活动、工作任务这三部分,各个对象在流程实例启动后通过各对象的状态变迁来推进流程的运行。具体各对象在模型实例化后,所具有的状态内容如下:
(1)、过程实例
过程的基本状态可以概括为如下六种:
初始(Initiated)、运行(Running)、挂起(Suspend)、中断(Abort)、
终止(Terminate)、完成(Complete)
(2)、活动实例
活动的基本状态可以概括为如下六种:
初始(Initiated)、运行(Running)、挂起(Suspend)、中断(Abort)、
终止(Terminate)、完成(Complete)
(3)、工作任务
工作任务的基本状态可以概括为如下七种:
初始(Initiated)、运行(Running)、领用(Receive)、挂起(Suspend)、
拒绝(Reject)、终止(Terminate)、完成(Complete)。
具体各流程对象的状态的相互关系及各自的变迁顺序请见后面章节的详细说明介绍。