工作流引擎,主要是实现业务流程的规则抽象,模型的建立,解释,以及为流程实例提供运行环境,并解释执行流程实例。
工作流引擎必须要包含一个工作流模型的设计,工作流模型就是对业务流程抽象的一个模型,是整个工作流引擎的基础。所以模型设计的好坏决定引擎的功能是否灵活,也决定了工作流管理系统从设计实现到运行实施等诸多环节。
在信息管理自动化的环境下,工作流模型必须采用简单、直观、又具有较强描述能力的模型。我们公司的自定义工作流系统采用了有限状态机的数学模型来实现工作流模型,有限状态机(FSM)又称为有限状态自动机或简称状态机,是表示有限个状态以及这些状态之间的转移和动作等行为的数学模型。
状态转换图:
上图左数第一个图:为初始状态,用粗线圈表示;
SX,S0,S01,S011,S0110 为状态名称
U=0表示处于该状态的输入
连线箭头上的0或1表示导入状态转换时的输入
工作流模型正是利用这种状态和动作,动作的结果导致状态的转移来达到流程的流转。
工作流引擎的每一种状态(state)被描述成为一个步骤(step)和步骤的状态(status)。工作流实例从一种状态(state)升迁到另外一种状态是通过执行动作(action)来达到的,动作的结果(result)导向另外一种状态(state),这样达到流程的流转。在一个工作流实例的生命周期内通常有一个或者多个活动的状态(state)。这些简单的思想表现在工作流引擎的核心包里面,并且通过一个简单的XML文件来描述业务工作流程。
一个简单的流程描述xml文件是这样的:
上图xml流程的图解状态过程如下:
开始节点-》初始化动作--》步骤节点-》动作节点--》结束
工作流引擎的基本元素:
步骤(step)
一个step描述的是工作流所处的位置。可能从一个step transtion到另外一个step,或者也可以在同一个step内流转(因为step可以通Status来细分,形成多个state)。一个流程里面可以有多个step。
状态(status)
状态status 是用来描述工作流程中具体step(步骤)状态的字符串。eWorkFlow中预置了三种步骤的状态 Underway(进行中)、Queued(等候处理中)、Finished(完成),用户可以任意扩展自己的状态。而工作流的状态state则是由step(步骤)+status(步骤的状态)组成的。工作流状态state的升迁来达到工作流实例的推进。
流转(transtion)
一个工作流实例状态state到另一个状态state的转移。
动作(action)
action 触发了发生在 step 内或 step 间的流转,或者说是基于 state 的流转。一个 step 里面可以有多个action。action 和step 之间的关系是,step 说明“在哪里”,action 说明“去哪里”。 一个 action 典型地由两部分组成:可以执行此action(动作)的condition(条件),以及执行此动作后的 result(结果)。
任务(task)
任务是当工作流状态发生转移的时候,产生的任务。任务可以指定为一个具体的角色,人,或者群组。任务具体,待办,已办,竞争办理,代理待办等多种功能。
条件(condition)
类似于逻辑判断,可包含“AND”和“OR”逻辑。比如一个请假流程中的“本部门审批阶段”,该阶段利用“AND”逻辑,判断流程状态是否为等候处理中,以及审批者是否为本部门主管。
结果(result)
Result 代表执行action(动作)后的结果,指向新的 step 及其 step status,也可能进入 split 或者 join。result 分为两种, contidional-result (有条件结果),只有条件为真时才使用该结果,和 unconditional-result(无条件结果),当条件不满足或没有条件时使用该结果。
分支/合并(split/join)
流程的分支和合并。分支是指流程下一步可以同时分发给多个步骤,分支split 提供多个unconditional-result(无条件结果);join 则判断多个current step 的状态提供一个 result(结果)。
子流程(subflow)
子流程,动作的结果可以指向一个子流程,子流程是一个独立的流程,可以单独启动也可以嵌套在另外的流程中启动,和主流程有同步或异步衔接的属性。
自由流 (free transtion)
自由流是指当一个步骤的动作执行完成后,需要跳转到任务的步骤。任意步骤,是指整个流程范围内的任意步骤,包含执行过的或未执行过的。
回退流(return transtion)
回退指当流程实例运行到某个步骤的时候,由于某些特殊原因需要回退到已经执行过的某个步骤上。回退是一种特殊的过程,只有在运行过程中才会明确指导要回退到那个步骤,回退往往需要执行业务补偿。回退和自由流不一样,回退会摸掉当前步骤到回退步骤之间的运行轨迹,就像初次运行到回退的步骤一样,同时需要辅助业务补偿来到达业务数据的回退。
工作流引擎核心包内,对这些基本元素做解释,并提供流程实例启动,动作执行,任务完成等等API,达到对业务流程的抽象。业务系统集成工作流后,做好业务流程建模,然后利用自定义表单做好相应业务数据的处理,将表单挂接到流程上。启动工作流系统,就可以实现业务系统了。
相关链接:
web工作流管理系统开发之一 工作流概念
web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 集成工作流与自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造
web工作流管理系统开发之六 表单权限与流程的权限控制
web工作流管理系统开发之七 最新修改的版本下载
web工作流管理系统开发之八 开源osworkflow之任务管理
分享到:
相关推荐
基于Web的工作流管理系统是在网络环境下实现的工作流管理系统,它通过浏览器为用户提供工作流的定义、执行、监控等功能。这种系统的一大优势是其平台的独立性,用户不再受操作系统和地理位置的限制,只要有网络连接...
综上所述,基于Web的工作流管理系统的设计与实现涉及多种技术和理论,包括Web开发、工作流管理、数据库设计、业务规则处理以及系统集成等,是一项综合性的工程任务。理解并掌握这些知识点,有助于构建高效、灵活且...
工作流执行部件,即工作流引擎,是工作流管理系统的核心。工作流引擎负责解释过程定义、创建模型实例、调度模型实例任务、推进流程等功能。一个过程模型就是企业经营过程中业务流程的一个抽象模型,当使用诸如Petri...
在IT行业中,工作流引擎是一种用于自动化业务流程的软件系统,它可以帮助企业或组织实现流程的标准化、规范化和高效化。在PHP环境下开发工作流引擎,可以充分利用PHP的灵活性和强大的Web开发能力,为各种业务场景...
1. **工作流管理系统**:工作流(Workflow)是指按照预定义规则在参与者间传递文件、信息或任务的过程,以达成特定业务目标。工作流管理系统(Workflow Management System, WFMS)则提供了定义、模拟和管理这些过程...
《SpringBoot+Vue3快速开发平台与自研工作流引擎详解》 在现代软件开发领域,SpringBoot和Vue3已经成为构建高效、灵活的Web应用的首选框架。本平台结合这两者的优势,为开发者提供了一个快速开发环境,同时融入了自...
### 基于Web的工作流管理系统的设计与实现 #### 一、引言 随着信息技术的飞速发展,尤其是互联网技术的普及与深化,企业信息化的需求日益增长。工作流技术作为提高企业管理水平和运营效率的重要手段,得到了广泛的...
在IT领域,工作流引擎是一种用于自动化业务流程的软件系统,它可以帮助企业或组织实现复杂的业务逻辑和审批流程。PHP工作流引擎就是基于PHP编程语言实现的这种工具,旨在为PHP开发者提供一种高效、灵活的方式来设计...
工作流引擎是一种软件系统,它负责管理和自动化一系列业务流程,使得组织能够按照预定义的规则和步骤高效地处理任务。在本项目中,"用C#做的工作流引擎"是利用C#编程语言构建的,这表明开发人员利用了C#的强大功能和...
Web工作流是指基于Web技术实现的工作流程管理系统,它允许用户通过网页浏览器进行流程的设计、执行和监控。这种系统通常用于企业内部,以便优化业务流程,提高效率,减少错误,并确保合规性。工作流设计工具提供了一...
本文探讨了基于Web Service的工作流管理系统体系结构,并详细阐述了各个模块的功能与实现方法。 #### 1. 工作流技术的发展现状 ##### 1.1. 工作流技术的发展背景与挑战 工作流技术旨在通过计算机支持来实现企业...
自研工作流引擎是该项目的一大亮点,它可能是一个专门为该平台定制的工作流程管理系统。工作流引擎通常用于自动化业务流程,如审批流程、请假流程等,它负责解析工作流定义,调度任务执行,并与业务系统交互。自研...
在本项目中,"asp.net基于工作流引擎的系统框架设计开发(源代码+论文)",我们将深入探讨如何利用ASP.NET结合工作流引擎来构建高效、灵活的业务流程管理系统。 工作流引擎是用于自动化业务流程的核心组件,它能够...
开发工作流管理系统通常包括四个主要部分:工作流引擎开发、工作流定义工具、自定义表单模块和流程管理与监控。工作流定义工具使用户能以图形化方式创建流程,而自定义表单模块则用于构建业务表单。流程管理和监控则...
《基于ASP.NET技术和工作流技术的学生信息管理系统的研究与开发》 在信息技术日益发达的今天,学生信息管理系统的建设已经成为教育领域的重要课题。本系统利用先进的ASP.NET技术和工作流技术,旨在提升学生信息管理...