首页 > 代码库 > 工作流管理系统

工作流管理系统

工作流管理系统
简称WFMS,经过对业务、公文流转过程的分析以及抽象,工作流管理系统围绕业务交互逻辑、业务处理逻辑以及参与者三个问题进行解决,业务交互逻辑对应的为业务的流转过程,在工作流管理系统中对应的提出了工作流引擎、工作流设计、流程操作来解决业务交互逻辑的问题,业务处理逻辑对应业务流转过程中的表单、文档等的处理,在工作流管理系统中对应的提出了表单设计工具、与表单的集成来解决业务处理逻辑的问题,参与者对应到的为流转过程中环节对应的人或程序,在工作流管理系统中通过与应用程序的集成来解决参与者的问题。
工作流管理系统为方便业务交互逻辑、业务处理逻辑以及参与者的修改,多数通过提供可视化的流程设计以及表单设计工具来实现,为实现工作流管理系统的扩展性,多数提供了一系列的API。
一个完整的工作流管理系统通常由工作流引擎、可视工作流设计、流程操作、工作流客户端程序、流程监控、表单设计工具、与表单的集成以及与应用程序的集成八个部分组成。
2.1. 工作流引擎
工作流引擎作为工作流管理系统的核心部分,主要提供了对于工作流定义的解析以及流程流转的支持。工作流定义文件描述了业务的交互逻辑,工作流引擎通过解析此工作流定义文件按照业务的交互逻辑进行业务的流转,工作流引擎通常通过参考某种模型来进行设计,通过调度算法来进行流程的流转(流程的启动、终止、挂起、恢复等),通过各种环节调度算法(SPLIT、AND、OR等)来实现对于环节的流转(环节的合并、分叉、选择、条件性的选择等)。
2.2. 可视工作流程设计
工作流程设计为可视化的流程设计工具,用户通过拖放等方式来绘制流程,并通过对于环节的配置来实现环节操作、环节表单、环节参与者的配置。
工作流程设计为用户以及开发商提供了快速绘制、修改流程的方式,工作流程步骤设计的好坏决定到工作流管理系统的易用性。全程软件工作流程设计,采用简单易用的可视化流程设计,方便用户快速设计流程,控制流程使用范围、操作权限。
2.3. 流程操作
流程操作指所支持的对于流程环节的操作,如启动流程、终止流程、挂起流程、直流、分流(单人办理)、并流(多人同时办理)、联审等,像这些流程操作都是可直接基于引擎所提供的环节调度算法来直接支持的,而在实际的需求中,通常需要自由的对于流程进行干涉,如回退、跳转、追加、传阅、办理等,而这些流程操作对于工作流引擎来说是不合理的,因此必须单独的去实现。
流程操作支持的好坏直接决定到一个工作流管理系统的实用性。
2.4. 工作流客户端程序
工作流客户端程序为工作流系统的表现形式,通常使用Web方式进行展现,通过提供待办列表、已办列表、执行流程操作、查看流程历史信息等来展现工作流系统的功能。
2.5. 流程监控
流程监控通过提供图形化的方式来对流程执行过程进行监控,包括流程运转状况,每个环节所耗费的时间等等,而通过这些可相应的进行流程的优化,以提高工作效率。
2.6. 表单设计工具
表单设计工具为可视化的表单设计工具,用户通过拖放的方式来绘制业务所需的表单,并可相应的进行表单数据的绑定。
表单设计工具为客户以及开发商提供了快速修改表单的方法,表单设计工具的易用与否以及功能的完善与否影响到工作流管理系统的易用性。
表单设计分成:普通采集节点,标准审核节点,数量审核节点。表单设计工具应该考虑前一个,后两个是固定的。
2.7. 与表单的集成
通常业务流转需要表单来表达实际的业务,因此需要与表单进行集成来实现业务意义,与表单的集成通常包括表单数据的自动获取、存储、修改,表单域的权限控制、流程相关数据的维护以及流程环节表单的绑定。
与表单的集成的好坏影响到工作流管理系统是否能提高开发效率。
2.8. 与应用程序的集成
通过与应用程序的集成来完善工作流管理系统的业务意义,主要涉及到的是与权限系统以及组织机构的集成。流程环节需要相应的绑定不同的执行角色,而流程操作通常需要与权限系统、组织机构进行关联。
 
参考模型
WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准。工作流管理联盟给出的工作流定义是:工作流是指整个或部分经营过程在计算机支持下的全自动或半自动化。在实际情况中可以更广泛地把凡是由计算机软件系统(工作流管理系统)控制其执行的过程都称为工作流。
一个工作流包括一组活动及它们的相互顺序关系,还包括过程及活动的启动和终止条件,以及对每个活动的描述。工作流管理系统指运行在一个或多个工作流引擎上用于定义、实现和管理工作流运行的一套软件系统,它与工作流执行者(人、应用)交互,推进工作流实例的执行,并监控工作流的运行状态。
WFMC主要提出了五个接口与工作流执行服务一起共同组成了工作流系统:
1: 接口一(工作流定义交换),用于在建模和定义工具与执行服务之间交换工作流定义。主要是数据交换格式和API。数据交换通过XPDL,API通过WAPI。
2:接口二(工作流客户端应用接口),用于工作流客户端应用访问工作流引擎和工作列表,通过WAPI完成。
3:接口三(被调用的应用接口),用于调用不同的应用系统。
4:接口四(工作流系统互操作接口),用于不同工作流系统之间的互操作。
5:接口五(系统管理和监控),用于系统管理应用访问工作流执行服务。
核心调度算法
通常流程引擎采用的核心调度算法主要有FSM以及PetriNet两种,基于调度算法来完成流程的流转。
4.1. FSM(有限状态机)
FSM的定义为包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。当输入符号串,模型随即进入起始状态。它要改变到新的状态,依赖于转换函数。在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态,等等。
遵循FSM流程引擎通过状态的切换来完成流程的流转。
4.2. Petri Net
信息流的一个抽象的、形式的模型。指出系统的静态和动态性质。Petri net通常表示成图。图中有两类用弧彼此相连的结点(称为地点和变换)和指示其动态性能的标记(称为记号)。
遵循Petri Net流程引擎通过令牌来决定流程的流转。

工作流管理系统