先说说四个非PetriNet调度算法的开源引擎... 4
OBE的引擎调度机制... 4
Shark的引擎调度机制... 5
OSWorkflow的引擎执行机制... 6
JBpm的引擎执行机制... 6
再说说两个PetriNet调度算法的开源引擎... 9
YAWL的引擎调度机制... 10
Bossa的引擎调度机制(标准的PN机)... 12
工作流程的定义
工作流就是:
“在一个工作群组中,为了达成某一个共同目的而需要多人协力以循序或平行工作的形式来共同完成的任务”
关于工作流的几个名词解释:
任务 | 泛指各种事务上所必需执行的流程性工作 |
循序或平行工作 | 工作的流动性是一个人接着一个人执行,或同时由多人分开执行,或是上述两类工作合并之后的混合性工作 |
多人 | 若是单人就可以完成的工作,则不能归类为流程工作。凡是一件工作必须经由两个或更多人来协力完成的工作才能称为流程工作 |
共同目的 | 多人参的流程性工作,必须是以完成共同目的为前提。如果一群人是分别针对不同的专案来执行各别的工作,并不算构成一个工作流程 |
工作流程的应用范围
在一般的组织活动中,有相当多数量的事务性工作可以被归类到流程性工作的范围里面,举例如下:
采购单流程 | 贷款审核流程 | 员工绩效考核流程 |
工作报表呈报流程 | 各类报表会签流程 | |
如何架构一个工作流程
首先要定义出在一个群组工作的环境下,所需要执行或控管的事务性工作性质及其内容
根据所定义的工作内容,再将它分成许多子工作,或称为步骤。每个步骤都都包含了在这个阶段所需要完成的项目清单,而且这些步骤内的项目应当是在逻辑上适合在同一步骤内完成的。任何一件流程工作都会有许多不同的方法来分解成许多子工作,而如何切割一个流程工作,则要根据实际的情况来做判断;
决定各个步骤需要那些专业背景的人员来执行;
决定各个步骤在流程执行时的顺序;
在执行的过程中,有些步骤的执行会因为某些条件不同而产生不同的结果,进而影响到下一个步骤的执行。所以我们必须要找出这些特定的步骤,并且将相关的执行状态条件定义清楚;
将工作流程中的所有执行步骤及每个步骤之间的关系图画出来,并且根据这份关系图来验证流程的可行性。
根据各个步骤的不同需求,分别建立各阶段所需要的表单,工作指令,文件……等项目。
工作流管理系统(WfMS)的三大功能模块
一般而言,所有的WfMS都将包含如下三大功能模块:建立时功能、运行时控制功能、同用户及应用程序的交互功能。
建立时功能
主要目标是通过某种分析、建模及系统定义手段将现实世界的业务过程转化成某种能够被计算机处理的形式化表示。这种形式化表示,我们就称之为过程定义(也称过程模型、过程模板、过程元数据等)。过程定义中一般都包含有对业务过程中的各个活动步骤的描述、同这些活动相关的各种计算机或人工操作、以及在各活动之间进行切换的各种控制规则。过程定义所定义的,实际上就是控制工作流过程执行的各种参数。
运行时实例控制功能
主要进行在某个计算环境中工作流过程的管理及各活动步骤之间的状态转换。运行时控制系统将解释过程定义,完成过程的可操作实例的创建及控制,调度过程中各活动步骤,为所涉及到的用户生成待其处理的任务,并在合适的时机调用有关的应用程序资源,等等。这些服务我们一般就称之为“工作流执行服务”,有些系统可能是通过一个工作流引擎提供这些服务,而在另外一些系统则可能会用到多个协作的工作流引擎。工作流引擎是工作流运行时控制系统的核心部分,各种过程实例的执行都是由它负责完成的。
运行时同用户及应用的交互功能
主要完成对工作流实例执行过程中各种活动的处理。在过程实例的执行过程中,经常需要用户通过某种应用程序来完成过程定义所要求完成的处理或操作,例如填写一个表单,或使用某个应用程序(如字处理软件、绘图软件等)生成新的文档或处理其他活动传递过来的文档等。另外工作流执行服务也可能需要自动的调用有关的应用对数据进行处理,如将某些数据写入到某个数据库系统中、调用某个应用程序对数据进行某种转换等。在不同的WfMS中,工作流执行服务所能访问的应用或资源可能是不一样的,如有些WfMS可能不提供此种能力,有些可能只能访问本地的应用或资源,有些则可能通过某种远程调用机制(如RPC或对象代理等)去访问其他机器上的资源。所有这些构成了运行时交互功能的主要内容。
工作流管理系统的分类
1、结构化的与即席的
结构化工作流指的是在实际工作过程中会反复重复、严格按照某个固定的步骤进行的业务过程。定义此种工作流所需要的各种类型的信息可以通过对业务过程进行详细的分析而得到,从而得到完整的过程定义并在以后的应用过程中反复使用。大量的办公程序,如公文处理、审批等都属此类。即席工作流则是针对那些重复性不是很强或没有重复性的工作流程的,关于这类流程执行所需的有关参数(如参加者等)事先无法确定,而必须推迟到过程实例运行时才能确定,同时在执行过程中间还可能会发生一些意外的情况。这种动态多变的特点在提供更高灵活性的同时,也为过程的建模与执行带来更多的复杂性。
2、面向文档的与面向过程的
前者的侧着点在于将电子形式的文档、图像等在有关的人员之间进行分发,以便能够得到不同人的处理与审阅。现有的文档管理与映像管理系统均属此类。在面向过程的WfMS中,工作流被描述成一序列执行环节。与各环节相应都有待处理的数据对象。各环节的数据对象可以按不同的方式分发到其他环节中去,如可以将数据对象的值作为控制条件、或者依此数据对象组装成其他的数据对象等。高端的WfMS一般都属此类系统。
3、基于邮件和基于数据库
前者使用电子邮件来完成过程实例执行过程中消息的传递、数据的分发与事件的通知。低端的系统所使用的经常就是此种方法,它可以充分发挥电子邮件系统在广域环境下的数据分发功能,但整个系统将运行于一种松散耦合的模式下。在基于数据库的WfMS中,所有的数据都保存在某种类型的DBMS中,过程的执行实际上就是对这些数据的查询与处理。高端的大规模系统所使用的一般都是此种方法。
4、任务推动的与目标拉动的
前者指的是从过程的开始逐步地一个环节一个环节的执行,当某个活动实例被处理完之后,后续的有关活动将被创建并被激活,由此直至整个工作流程的完成。这是目前大多数面向过程的WfMS所使用的执行方式。而在目标拉动的WfMS中,一个业务流程被看成是一个目标。过程实例执行时,该目标将被分解得到多个相互之间按一定约束条件的关联起来的可执行的多个环节,其中各环节还可以当成是子目标而进一步进行分解。在各环节均执行完毕之后,整个过程也就完成了。目标拉动是一种全新的执行方式,下一代的WfMS将具有此种特征。应该说明的是:上述分类只是从不同的角度入手的。一般来说,后面那些特点将给WfMS带来更好的灵活性,同时也将成为那些能够支持跨机构的大规模复杂工作流管理、面向关键任务的WfMS不可缺少的特征。
分享到:
相关推荐
在本文中,我们将深入探讨工作流引擎的开发、工作流概念、参考资料及其在实际应用中的重要性。 首先,理解工作流(Workflow)的基本概念至关重要。工作流是指一个组织内或跨组织的业务过程,由一系列相互关联的任务...
这部分内容重点介绍了几种常用的工作流模型,如基于Petri网的工作流模型。通过这些模型,可以对工作流进行形式化的描述,便于进一步的分析和优化。例如,过程结构建模和组织资源建模都是重要的工作流建模方法。 ###...
在本文中,我们将深入探讨Web工作流设计工具的关键概念、应用及其与VML(Vector Markup Language)的关系,以及如何利用这些工具提升工作效率。 首先,我们需要理解什么是Web工作流。Web工作流是指基于Web技术实现...
- **工作流应用程序声明**: 描述了工作流应用程序的特性及其与工作流引擎的交互方式。 - **工作流相关的数据**: 包括了工作流执行过程中产生的数据和信息。 - **系统&环境数据**: 描述了执行工作流所需的系统配置和...
- **工作流引擎**:负责执行工作流定义,并根据预设的规则管理任务的流转。 - **集群管理**:支持多台服务器之间的负载均衡,确保系统的稳定运行。 - **组织管理**:提供用户和组织结构的管理功能。 - **流程设计...
- BPMN(Business Process Model and Notation)是常用的工作流建模语言,Java设计中经常使用它来可视化流程,并与工作流引擎交互。 - 工作流模型包括开始事件、结束事件、任务、网关、事件等多种元素,通过这些...
**6.1 工作流常用接口与方法简介** 这部分介绍了EMSFLOW中一些常用的工作流接口和方法,为开发者提供了深入探索的入口。 - **6.1.1 com.emsflow.server.webflow.manage.WebflowServer**:介绍了如何使用该接口来...
理解工作流引擎的工作原理、流程定义语言及相关的API是开发高质量工作流应用的关键。 **jBPM前世今生** jBPM(Java Business Process Model)是Red Hat公司旗下的一款开源工作流引擎,经历了多个版本的迭代,从最初...
Activiti 是一个开源的工作流和业务自动化引擎,它基于模型驱动的设计理念,提供了一套强大的工具来帮助开发者实现复杂的业务流程。Eclipse 的 Activiti 插件是这个引擎的一个集成开发环境(IDE)扩展,使得在 ...
再者,"常用工作流场景"意味着这个实例覆盖了日常业务中常见的流程需求,如请假审批、报销申请、合同审批等。这些场景的实现可以帮助开发者快速理解和掌握如何在特定业务环境中运用Activity。 关于标签"activit ...
jbpm工作流是一款开源的工作流程管理系统,主要用于设计、执行和管理业务流程。它与SSH(Struts、Spring、Hibernate...学习和掌握jbpm工作流及其与SSH框架的集成,对于提升Java开发者的业务流程管理能力具有重要意义。
JBPM工作流演示系统,作为一个专注于JBPM技术的初级开发实例,旨在帮助新手快速理解JBPM的工作原理及其在实际项目中的应用方式。该系统通过一个具体的场景——请假流程管理,来展示工作流引擎在企业级应用中的集成与...
驰骋工作流引擎是一款强大的工作流管理工具,用于自动化企业中的业务流程,如审批、协作等。本查询大全.sql 文件提供了关键的数据查询语句,帮助管理员或用户了解和跟踪流程的状态,以及个人参与的流程详情。以下是...
1. fireworkflow核心库:包含工作流引擎的核心组件,如流程解析、任务调度、状态管理等,是实现工作流功能的基础。 2. 数据库驱动:为了与数据库交互,fireworkflow可能需要特定版本的JDBC驱动,例如MySQL、Oracle...
接下来的部分详细列出了多个常用的工作流代码块,这些代码块可以被直接复制和使用,大大简化了开发人员的工作。 **3.1 Startup** 这一节介绍了如何启动一个工作流实例,并设置初始参数。 **3.2 Notification** ...