1、工作流基本概念简介pjj文档简介 本文档主要涉及到工作流和工作流模型的一些基本概念和结构,以及对Petri网的一些简单介绍,配有一定的图形表格加以说明 详细参见“The Application of Petri Nets to Workflow Management.pdf”“工作流模型分析”工作流的起源 起源于:生产组织和办公自动化领域 目的:将工作分解,按照一定的规则和过程来执行并监控,提高效率,降低成本 并行工程和敏捷制造的提出工作流基本概念 wfmc定义:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递与执行。工作流是一种反
2、映业务流程的计算机化的模型,实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型基本元素:任务,任务之间的关系工作流的基本特征 工作流是面向业务过程的技术,这与传统的面向功能的管理技术不同 工作流反映了业务过程的自动化,描述的是可由计算机系统支持运行的业务过程 工作流根据业务规则将系统中的各种资源相互关联,并协调完成整个业务过程实际情况中的工作流 广义:凡是由计算机软件系统控制其执行的过程都可以看做工作流 用途:通常用于过程自动化,将文档信息任务按照定义好的规则进行传递,最终将经营目标完成工作流技术的优点 是实现BPR(核心经营过程)的一个较好方法,对BPR进行建模、评价分
3、析和实施 实现应用逻辑和过程逻辑分离,可以在不修改具体功能实现方式的情况下重组模型描述企业的经营过程 应该主要说明:1、要做什么,即目的或目标(整个工作流模型)2、如何完成的,经过那些任务(活动)和步骤(执行活动和活动间连接)3、参与者,有哪些部门,哪些人4、采用了哪些方式或手段来完成(应用程序)计算机销售过程的工作流描述1、用户发出订单,描述计算机配置和台数2、公司收到订单1)满足客户要求,继续2)不满足客户要求,拒绝3、检查订单(3个任务并发执行)1)计算价格2)检查库存部件是否满足要求3)进行配置检查,满足订单要求4、决策1)通过检查,继续进行2)未通过检查,则向用户解释原因5、等待接收
4、确认,并要求付款6、发出通知7、装配计算机8、送货图例银行取款过程的工作流描述1、客户填写取款单2、银行出纳接收取款单和客户存折3、检查客户信息:1)余额不足,要求重写取款单,返回步骤12)余额足够,继续进行4、客户输入密码:1)密码正确,继续进行2)密码错误,重新输入;3次错误,退出执行5、出纳取出相应现金,并在存折上记录6、将现金和存折交给客户图例工作流管理系统 WfMC定义:它是一个软件系统,完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行 指运行在一个或多个工作流引擎的软件上用于定义、实现和管理工作流运行的一套软件,人机交互,推进工作流实例的执行,并监
5、控其工作状态 工作流管理系统可称为企业的业务操作系统工作流管理系统的功能一、建立阶段功能主要是工作流过程和相关活动的定义和建模功能二、运行阶段的控制功能在一定运行环境下,执行工作流过程,并完成每个过程中活动的排序和调度三、运行时的人机交互执行过程中用户和应用工具之间的交互过程建模 主要解决:根据目标和系统约束条件,将系统中的活动组织为适当的经营过程的问题 作用:1)描述企业的经营过程,供流程分析和优化使用2)在不同组织和信息系统间共享信息,实现一个共同的标准和企业动态联盟3)用于企业CIMS实施,使系统能够按照过程横向集成,而不是按照部门结构纵向集成4)研究开发新的经营过程,满足不同需求和结构
6、演化工作流运行控制 核心:工作流管理软件(工作流引擎)创建、删除活动的执行和控制过程模型与现实实际过程连接通过工作流执行服务、应用软件和操作人员交互来完成工作流中的人机交互 一、模型定义创建、修改、发布业务过程模型由企业管理人员完成 二、人机交互按照工作流任务管理器提供的任务,完成具体的业务处理由企业业务人员完成 三、系统运行状态监控检查、监视系统的运行状况,对意外情况进行紧急处理,如终止恢复某个实例的运行,改变某个活动的状态,以使系统继续正常运行由高级系统管理员完成工作流管理系统分类 按照重复性分:1)周期重复的:流程完全固定,如申请贷款,入学注册2)重复但无规律:目的几乎相同,但是由于任务
7、内容不同导致处理过程不同,如用户对产品质量的投诉和处理3)唯一特定的任务:仅在特定的情况下发生一次,如新建筑,桥梁的设计等 按照结构化程度分1)完全结构化的:执行逻辑事先可以完全确定2)半结构化的:只能实现确定一部分,有一部分要根据实际来具体确定3)非结构化的:活动顺序无法实现确定,如产品销售趋势分析业务流程9类过程分类工作流管理系统分类根据实现的业务过程分:1)管理型2)设定型3)协作型4)生产型根据底层实现技术分:1)以通信为中心:以电子邮件为底层通讯机制,适合协作型工作流和不确定工作流2)以文档为中心:基于文档路由,与外界交互能力有限。适合基于表的管理型工作流3)以过程为中心:建立在数据
8、库之上,有自己的专用通信机制,并有外界交互接口。适合于生产型工作流根据任务项传递机制,市场上的工作流产品分为:1)基于文件的工作流系统:以共享文件方式来传递2)基于消息的工作流系统:通过电子邮件系统传递3)基于基于web的工作流系统的工作流系统:通过www来实现任务协作4)群件与套件系统工作流管理系统的实施(一)1、模型建立:将企业实际经营过程转化为工作流模型2、实例化阶段:为每个过程设定运行参数,并分配资源(生产资源,人力,应用)3、模型执行阶段:完成人机交互和应用的执行,并对执行情况进行监控跟踪工作流管理系统的循环(二)工作流管理系统的体系结构几种数据工作流控制数据:标识每个过程和活动实例
9、的状态,由工作流机直接控制。工作流相关数据:标识过程实例状态转换条件,工作流管理系统根据它来选择下一个活动。可以被工作流应用程序访问和修改。工作流应用数据:由应用程序操作,是企业完成具体业务功能所需要的数据工作流参考模型工作流模型与建模工具 工作流模型包含了能够满足工作流管理系统执行的过程的描述,该描述包含了所有需要的信息。如:开始结束条件、活动、规则、用户需完成的任务、被调应用、涉及角色等 WfMC制定了一个公共元模型,定义了一套API(接口1)过程元模型接口1工作流执行服务与工作流机 工作流执行服务由1个或多个工作流机组成,提供过程实例的运行环境,功能有1、实例化及执行过程模型:根据初始条
10、件和运行参数实例化,运行并管理实例2、为过程和活动的执行进行导航:启动和终止实例,根据条件决定串行或并行执行后续活动,给用户提供相关信息,启动相应应用程序3、与外部资源交互完成各种活动:客户应用接口:任务列表管理器向用户提供任务列表供用户选择,并记录工作项的完成情况。由用户完成选择的相应的任务,必要的时候调用相应的工具来完成。完成后,用户修改任务项的状态。如:在完成对产品招标标书评审后,业务员向供应商发出竞标成功通知,并签订合同直接调用应用接口:由工作流机直接调用相应的应用,应用将执行情况反馈给工作流机4、维护工作流控制数据和工作流相关数据:维护内部信息,协调恢复各种检查数据和恢复重起数据,向
11、用户提供相关信息工作流引擎 它是工作流执行服务的核心,主要完成:1、对过程定义进行解释2、控制过程实例的创建,激活,挂起,终止等3、控制实例跳转,包括串行、并行操作,工作流相关数据的解释4、提供支持用户操作的接口5、维护工作流控制数据和相关数据,在应用和用户之间传递工作流相关数据6、提供激活外部应用程序和访问工作流相关数据的接口7、提供控制、管理和监督工作流实例执行情况的功能过程实例状态转换几种状态:1、起始:过程实例生成,但还没满足执行条件2、准备运行:过程实例已经可以执行,还不满足开始执行第一个活动并生成一个任务项的条件3、运行中:一个或多个活动已经开始执行4、挂起:过程实例正在运行,但处
12、于静止状态,除非有一个“重启”命令或外部事件促使该过程实例回到准备状态,否则所有活动都不会运行5、结束:过程实例已经完成,并满足结束该过程实例的条件,系统将执行结束后操作,并删除该过程实例6、终止:过程实例正常结束前被迫停止(错误或异常),系统将执行补救并删除该过程实例活动实例运行状态1、未开始:活动实例已经生成但没有激活2、运行中:活动实例已被激活,并运行中3、挂起:出现异常或错误,活动实例被暂时挂起,活动处于静止状态4、结束:活动实例已经执行完毕,系统执行活动结束后的导航工作,激活下一个符合启动条件的活动实例客户端功能客户端功能是指用户操作工作流管理系统分配的任务或者活动的功能由工作流任务
13、表管理器和用户操作共同完成4种通过任务表实现客户与引擎之间的通讯方式:1、基于主机方式模型:适合集中情况,客户端应用程序,任务表管理器,任务表,和工作流机都在中央服务器上,用户通过终端获得任务表2、共享的文件库模型:客户应用程序和任务表管理器在用户端,工作流机在服务器上。任务表位于客户应用和工作流机都能访问的共享文件系统中3、电子邮件模型:客户应用程序和任务表管理器在用户端,工作流机在服务器上。所有通讯使用电子邮件。任务表一般位于客户端4、过程调用或消息传递模型:客户应用程序和任务表管理器在用户端,任务表和工作流机在服务器。用户通过RPC或者其他机制来活动任务表激活应用时的信息提供 在激活某些
14、应用时,必须提供一些相关信息:如应用的名称,地址1、可以直接存放在工作流任务列表中2、可以通过工作流机和工作流任务表管理器之间提供的交互接口来传递(客户应用可以通过编制一个接口函数通过直接调用的应用来获得必要信息)直接启动应用与应用代理 模型定义为应用启动提供了足够的信息,如应用程序类型,地址等,因此工作流机可以激活该程序并执行相应动作。但由于分别性和异构性,在启动应用的时候需要用到应用代理,以提高系统柔性和适应性系统管理和监控工具 能对工作流在整个组织内的流动状况进行监视,并提供一系列的管理功能,实现安全性、过程控制和授权操作等方面的管理1、建立、设置和优化组成工作流管理系统的各个软件2、对
15、过程模型进行实例化3、将过程模型中的角色实例化4、将过程实例、活动实例和数据分发到各个工作流机中5、启动、挂起、恢复和终止过程实例6、管理系统管理和监控接口结构图WAPI 目的:实现不同工作流产品间协同工作 WAPI是一组工作流应用编程接口函数及其相应的数据交换格式1)API调用:完成连接建立、过程控制、活动管理等功能建立连接操作工作流模型及其对象过程控制过程监控过程状态检测活动管理数据处理工作流任务表和任务项处理操作用户管理角色管理监控管理资源控制2)数据交换函数:数据交换格式的定义与转换函数,满足过程数据传递和工作相关数据传递的需要WAPI的5类接口接口1:工作流服务和工作流建模工具间接口
16、,包括工作流模型的读写和解释操作接口2:工作流服务和客户应用之间的接口,约定所有客户方应用与工作流服务之间的功能操作方式接口3:工作流机和直接调用的应用程序之间的直接接口接口4:工作流管理系统之间的相互操作接口接口5:工作流服务和工作流管理工具之间接口WAPI接口1:过程定义输入输出接口 在不同物理或电子介质之间传递过程定义的信息提供了交互的形式和API函数实现建模环境和运行环境的分离使多个工作流产品可以协同工作功能:1)通信建立:各个参与系统的通讯建立与断开2)工作流模型操作:过程模型名称检索,对过程模型的读写操作等3)工作流模型对象操作:在建模工具中创建、检索和删除对象;创建、删除、设置对
17、象的属性WAPI接口2:客户端函数接口通讯建立:各个参与系统的通讯建立与断开工作流定义操作:对过程模型的名称和属性的查询和检索功能过程实例管理功能:创建、开始、结束一个过程实例;挂起、重新激活一个过程实例;强行改变过程实例或活动实例的状态;对过程实例或活动实例的状态查询过程状态管理功能:设置过滤条件,打开、关闭对一个过程实例或活动实例的查询;设置过滤条件,获得部分过程实例或活动实例所需的详细信息;任务项列表/任务项处理功能:设置可选的过滤条件,打开、关闭一个任务项列表查询;获得任务项列表中的条目;对任务项选择、重新分配、完成等消息的通知;设置和查询一个任务项属性数据处理过程:查询、返回工作流相
18、关数据、工作流应用数据过程监控功能:改变一个过程模型和现存的实例的状态;改变某种特定类型的过程实例或活动实例的状态和属性;结束所有的过程实例管理功能应用程序激活WAPI接口3:激活应用程序接口 通信建立:与应用程序的通信建立、断开 活动管理功能:活动开始;挂起、重新激活、退出活动;活动结束通知;查询活动属性;消息事件 数据处理功能:提供工作流相关数据(活动执行前提供数据,活动结束后从应用程序获得数据);提供工作流应用数据或提供数据地址WAPI接口4:工作流执行服务之间的互操作接口 功能:连接建立对工作流模型和其中对象的操作过程实例控制和状态函数活动管理函数数据处理函数 WfMC4种互操作模型:
19、链式嵌套子过程端对端并行同步WAPI接口5:系统管理与监控接口 资源控制:设置、取消、修改过程或活动实例的并发层次 角色管理:定义、删除和修改角色参与者的关系;修改角色属性 用户管理:对用户或工作组的权限的建立、删除、暂停和修改 过程实例的管理:对过程模型进行实例化;修改过程实例或活动实例的状态;终止过程实例 状态管理:查询过程或活动实例的状态 审核管理:查询、打印、删除、启动新的统计过程轨迹或日志工作流模型建模方法 基于活动网络的过程模型FlowMark 事件驱动的过程链模型EPC 基于语言行为理论的工作流模型ActionWorkflow 基于Petri网的工作流模型WFnetPetri网简
20、介 一种图形化和数学化的建模工具,六年代德国学者C.A.Petri提出 库所代表条件,变迁代表事件,库所中的token代表可以使用的资源或数据一个变迁有一定数量的输入和输出库所,分别代表事件的前置条件和后置条件四季交替的Petri网模型Petri网的优点 兼顾了严格模型语义与图形语言两个方面 是一种基于状态的建模方法1)严格区分了活动的使能与活动的执行2)具有更丰富的表达能力3)具有更多的柔性特征 具有强有力的分析技术与手段经典Petri 经典Petri网是一个连接分别叫做库所(place)和变迁(transition)两种节点的有向表。同种节点之间的连接是不允许的。库所以圆表示,变迁以长方形
21、表示经典Petri定义 Petri是一个三元组(P,T,F):P库所的一个有限集T变迁的一个有限集(P和T交集为空)F(P X T)U(T X P)边的有限集工作流网WFnet的定义 一个Petri网PN(P,T,F)被称为工作流网,当且仅当:(1)PN有两个特殊库所i和o。i是一个起始库所,即*i=;o是一个终止库所,即*o=.(2)如果在PN中加入一个新的变迁t,使t连接库所o与i,即*t=o,t*=I,这时得到的PN是强连接的Petri网状态变化规则 Petri网运行时,token数可以发生变化 Transition是Petri网的活动组件,按照下列规则改变Petri网的状态:1)当变迁
22、t的库所p至少有1个token时,t是enable的.2)一个使能的变迁t可以发生.当t发生时,消耗t的每一个输入库所的1个token,并为每个输出库所产生1个token高级Petri网 经典Petri网允许状态模型,事件模型,同步模型,并发模型,循环等.然而,Petri网描述的往往是一个复杂的大型的过程.经典Petri网不支持Date和Time模型.3种高级Petri网扩展:1)Extention with Coler to model data2)Extention with time3)Extention with hierarchy(层次)to structure large mode
23、lsWFnet的基本组件(一)串行组件 定义一系列按固定顺序串行执行的活动,由一条不分支的通路构成WFnet的基本组件(二)并行组件 定义没有严格执行顺序的,可同时进行的分支活动。需要用到“与分支”(And-split)“与连接”(And-join)WFnet的基本组件(三)条件选择组件 用来定义彼此之间具有相互制约或排斥关系的分支活动,根据具体情况来“多选一”或“多选多”。需要用到“或分支”(OR-split)和“或连接”(OR-join)WFnet的基本组件(四)循环组件 用来定义需要重复执行多次的活动触发机制触发机制可以理解为一种使被使能的活动进入执行状态的外部条件1)自动触发:活动被使
24、能的同时就被触发2)人工触发:活动通过用户从工作流任务管理器提供的工作流任务列表中选择工作项来触发3)消息触发:由来自于系统外部的消息事件来触发活动执行。如电话,email或传真到达4)时间触发:由控制时间的定时器来触发一个例子Petri网与其他模型的比较在模型的构成上增加模型组成元素1)与活动网络图相比,Petri网实际上是把过程的状态通过库所中的token显式的表达,而活动网络图只能隐式的表达过程的状态2)Petri网的一个活动要由一个库所,一个变迁以及一条连接弧组成,造成模型复杂化3)在Petri网中无法体现数据流。它能够对过程逻辑进行精确的定义,但数据流就只能和控制流完全混合。当数据流
25、逻辑与控制流逻辑不一致时,Petri网无法体现4)一个工作流网上可以运行多个工作流实例。当某一库所中的token数量较多的时候,则该库所使能的活动对整个过程的处理能力是一个瓶颈,需要进行改造以增加过程的吞吐量工作流的事务模型 基本概念:事务指一组物理的或者抽象的应用状态的操作组成的集合事务处理系统通常指一个完整的系统,包括应用生成器、操作工具、数据库、外设、网络和操作系统。事务的四个特性:1)原子性:所有关于一个事务的操作必须当成一个原子单元,即所有的操作都成功执行,或者一个都没执行2)一致性:事务操作得到的结果必须保证是一致的3)分离性:不受其他并行的操作执行的任何影响4)持久性:事务提交后,对数据的操作结果将永久保留几种工作流事务模型 嵌套事务模型:把一个事务分解成若干个子事务 Sagas:解决长事件事务问题。允许事务在完成前释放某些占用的资源 分支/汇合事务模型:针对“末端开发(open-ended)”活动 ACTA:综合性事务框架,柔性实现对多种扩展事务模型属性的形式化描述与推理 ConTracts:解决数据库中长时间计算事务