工作流管理系统

工作流管理系统

简称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流程引擎通过令牌来决定流程的流转。

时间: 2024-12-23 18:19:24

工作流管理系统的相关文章

1.2.1 工作流管理系统参考模型 (zhuan)

http://book.51cto.com/art/201009/228705.htm ************************************************* <jBPM4工作流应用开发指南>第1章工作流基础,本章将为您开宗明义地介绍工作流这门科学,使您了解这门"很有前途的"技术的概念.发展历程以及目前的状况,并给您一个选择jBPM的理由.本节为大家介绍工作流管理系统参考模型. AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用

工作流管理系统 jBPM

工作流管理系统 jBPM 运行环境: 授权方式:BSD 软件大小:M 下载量:589 更新日期:2014-04-04 来源地址: 联系作者:Linux jBpm是一个灵活可扩展的工作流管理系统.作为 jBpm运行时server输入的业务流程使用简单强大的语言表达并打包在流程档案中.jBpm将工作流应用开发的便利性和杰出的企业应用集成(EAI)能力结合了起来.jBpm包括一个Web应用程序和一个日程安排程序.jBpm是一组J2SE组件,可以作为J2EE应用集群部署. 工作流程编辑 1) jBPM的

JBPM(一)——工作流基础

1.什么是工作流? 全部或者部分由计算机支持或自动处理的业务过程. 2.工作流的目标? 管理工作的流程以确保工作在正确的时间被期望的人员所执行 3.工作流的好处 例如: 简单的业务流程--订货流程: 1>客户提交采购订单 2>业务员执行订单处理 3>如果缺货,转工厂生产 4>仓库发货 5>物流发货 整个流程如图所示: 如果不使用工作流技术,从头开始开发这个订购流程的业务系统,我们需要做 每个活动节点都要开发交互界面和后台处理程序 每次活动的流转都需要硬性判断下一步活动节点及其

JBPM工作流

1.工作流 工作流是一项分离业务操作和系统流程的技术.工作流由实体(Entity).参与者(Participant).流程定义(Flow Definition).工作流引擎(Engine) 四部分组成. ① 实体是工作流的主体,是需要随着工作流一起流动的物件(Object).例如,在一个采购申请批准流程中,实体就是采购申请单;在公文审批流程中,实体就是公文. ② 参与者是各个处理步骤中的责任人,可能是人,也可能是某个职能部门,还可能是某个自动化的设备; ③ 流程定义是预定义的工作步骤,它规定了实

Java开源 开源工作流

OpenEbXML   点击次数7801 Werkflow   点击次数11181 OSWorkflow   点击次数14988 wfmOpen   点击次数7997 OFBiz   点击次数12342 ObjectWeb Bonita   点击次数8808 Bigbross Bossa   点击次数8502 XFlow   点击次数7898 Taverna   点击次数7222 Enhydra Shark   点击次数9526 PowerFolder   点击次数7866 Open Busin

微型工作流引擎设计

微型工作流引擎设计 一.前言 提到工作流很多人就会想到OA,的确OA就是典型的工作流的应用,但是工作流并不仅仅局限于OA,工作流应该算是基础框架软件,主要用于流程的重组和优化,它有广阔的应用领域.在java下有很多优秀的开源工作流可以选择比如activit5.jpbm4等,在.net下却几乎找不到令人满意的工作流引擎可用.当然不是说.net下没有开源的只是有些国产开源的但看了代码后就一点兴趣都没有了,且不说代码质量如何,还引入了一大堆的东西,想在项目中应用也是非常困难.鉴于此我还是决定自己开发一

Activiti工作流的简单介绍

1.概念 工作流(Workflow)就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息 或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现." 2.工作流的主要实现功能 工作流管理系统(Workflow Management System, WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流规则进行工作流实例的执行.工作流管理系统不是企业的

Activity工作流引擎开发系列

Activity工作流引擎开发系列-01 作者:邓家海 没有伞的孩子,只能光脚奔跑! 前言: 初次接触工作流这个概念是自从2014年11月份开始,当时是由于我的毕业设计需要,还记得当时我毕业设计的题目是<基于BS结构模式的工程管理系统设计与实现--工程计划管理>,里面涉及到一个工程管理的审批.正好我当时12月份出来实习,实习所在的公司所做的OA系统普遍也需要工作流,但是公司项目所用的工作流是CCFLOW,这是一个基于C#的国产开源工作流引擎,但是我毕业设计做的是java,所以从2014年的11

工作流之设置表访问权限

在工作流管理系统中,工作流引擎负责流程的流转.首先梳理业务,将业务转换成工作流系统的一个一个业务处理环节,再用连线连接各个业务环节,使得业务流程得以流转.流转的方式有多种,顺序流转,条件流转,并行流转,循环执行等等. 流程的各个环节上具体要处理的事情,通过业务表单来完成.如一个审批流,分为填写申请单,审核申请单,甚至多级审批.填写申请单是一个业务环节,审批申请单是一个业务环节(甚至有一级的审批就可以做一个业务环节).具体申请单的填写内容在表单中完成.制作一张填写申请单的的页面录入表,将此录入表单