工作流模型及其形式化描述
工作流模型
业务节点提交-动作预演
动作预演前,需要传递正常参数,但该参数不 会被保存,而是放在参数池里。因此动作需要 绑定一个参数池,参数池有两种:持久化参数 池,内存参数池。 动作预演需要调用Preview方法。系统自动返 回流转类型、目标节点列表以及每一个节点的 目标用户列表。
业务节点提交-动作的参数
Activity
LeaveActivity(ActivityInstance):离开节点实 例。
UserActivity
UserSelector:人员选择器。 CreateInstance:创建用户节点实例。用户节点实例下有工作项, 每一个工作项对应一个用户。 工作项可以并行全部处理,并行X/100处理,可以顺序处理,可 以单一处理。 并行全部处理:完成数量必须等于输入数量。 并行X/100处理:完成数量/输入数量 >=X/100。 顺序处理:完成数量必须等于输入数量。 单一处理:完成数量为1。 因此,UserActivity必须有CreatedWorkItemCount(创建工作数 量),CompletedWorkItemCount(完成工作数量), OverflowWorkItemCount(溢出工作数量)。
目标节点实例进入
目标节点实例指向指定的目标节点,同时也既 定了用户选择方式。 不同类型的目标节点,Enter方法的处理是不 一样的。 目标节点实例关联一组选择的用户。这些用户 可能采取:分工处理、竞争处理等不同方式处 理业务。工作流不管人员分工,
目标节点实例进入
业务节点实例:Enter方法仅设置节点状态为“等待处 理”。 分流节点实例:Enter方法将立即调用分流节点的提交 动作(分流节点内置两个动作:提交动作、回退动 作)。 合流节点实例:每一个合流前的分支在调用合流节点 的Enter方法时,都只是增加计数。当计数达到分支数 量时,将自动执行合流节点的提交动作(合流节点内 置两个动作:提交动作、回退动作)。
工作流参考模型(WFMC)
Workflow Management Coalition Workflow Reference Model________________________________________________________________________________ ____________Copyright ã 1995 The Workflow Management Coalition - 1 -翻译人:张敬波(网名:踏冰) OICQ:42508298Email:say4ever2u@ MSN:tabingfly@翻译人:韩伟(网名:浆糊) OICQ:3413384Email:java_cn@ MSN:Java_cn@欢迎访问我们的网站: 工作流管理联盟规范WFMC ——工作流参考模型文档编号 TC00-100395年1月19 日版权ã2002WFMCPDF created with FinePrint pdfFactory trial version Workflow Management Coalition Workflow Reference Model________________________________________________________________________________ ____________Copyright ã 1995 The Workflow Management Coalition - 2 -目录目录.................................................................................................................................. - 2 -1.简介.............................................................................................................................................. - 4 -1.1. 背景.................................................................................................................................... - 4 -1.2. 目的.................................................................................................................................... - 4 -1.3. 范围.................................................................................................................................... - 4 -1.4. 对象.................................................................................................................................... - 5 -1.5. 如何阅读............................................................................................................................. - 5 -1.6. 参考.................................................................................................................................... - 5 -1.7. 修订历史............................................................................................................................. - 5 -2.工作流系统简介........................................................................................................................... - 6 -2.1. 什么是工作流(workflow).............................................................................................. - 6 -2.1.1. 建立时期功能.......................................................................................................... - 7 -2.1.2. 运行时期过程控制功能........................................................................................... - 8 -2.1.3. 运行时期活动交互.................................................................................................. - 8 -2.1.4. 分配与系统接口...................................................................................................... - 8 -2.2. 工作流的发展..................................................................................................................... - 9 -2.3. 产品实现模型..................................................................................................................... - 9 -2.4. 可选择的实现方式(Alternative Implementation Scenarios)....................................... - 14 - 2.5. 对标准化的需要(The Need for Standardization)........................................................ - 17 - 3.工作流参考模型(Workflow Reference Model)..................................................................... - 18 -3.1. 简介.................................................................................................................................. - 18 -3.2. 工作流模型(The Workflow Model)............................................................................ - 18 -3.3. 工作流执行服务器(Workflow Enactment Services)................................................... - 19 - 3.3.1. 什么是工作流执行服务器?................................................................................. - 19 -3.3.2. 工作流机(The Workflow Engine)..................................................................... - 20 -3.3.3. 同种和异种的工作流执行服务器(Homogeneous & Heterogeneous Workflow Enactment Services)........................................................................................................ - 21 -3.3.4. 工作流应用编程接口与数据交换(Workflow Application programming Interface & Interchange)................................................................................................................... - 23 -PDF created with FinePrint pdfFactory trial version Workflow Management Coalition Workflow Reference Model____________________________________________________________________________________________Copyright ã 1995 The Workflow Management Coalition - 3 -3.3.5. 工作流控制,工作流相关数据和工作流应用数据............................................. - 23 -3.3.6. 数据交换(Data Interchange)............................................................................. - 24 -3.4. 过程定义(Process Definition)...................................................................................... - 25 -3.4.1. 过程定义工具(Process Definition Tools)......................................................... - 25 -3.4.2. 工作流定义转换(接口1).................................................................................. - 26 -3.5. 工作流客户端功能(Workflow Client Functions)........................................................ - 29 - 3.5.1. 工作流客户端应用程序(Workflow Client Applications)................................ - 29 -3.5.2. 工作流客户端应用程序接口(接口2).............................................................. - 30 -3.6. 应用程序调用功能(Invoked Application Functions).................................................. - 32 - 3.6.1. 应用程序调用(Invoked Applications).............................................................. - 32 -3.6.2. 应用程序调用接口(接口3).............................................................................. - 33 -3.7. 工作流协同工作流能力(Workflow Interoperability)................................................. - 35 - 3.7.1. 异种工作流执行服务器......................................................................................... - 35 -3.7.2 模型1 ——链锁式(Chained)......................................................................... - 35 -3.7.3. 模型2 ——子过程嵌套(Nested Subprocesses)............................................ - 36 -3.7.4. 模型3 ——P2P (Peer-to-Peer)....................................................................... - 37 -3.7.5. 模型 4 ——相似同步(Parallel Synchronised)............................................... - 38 -3.7.6. WAPI 协调工作功能(接口4)........................................................................... - 38 -3.8. 系统管理(Systems Administration)............................................................................. - 41 -3.8.1 管理和监视工具(Administration & Monitoring Tools).................................... - 41 -3.8.2. 管理和监视接口(接口5).................................................................................. - 41 -4. WAPI 结构、协议和一致性....................................................................................................... - 44 -4.1. WAPI——API功能简介................................................................................................... - 44 -4.2. WAPI协议......................................................................................................................... - 45 -4.3. 一直性原则....................................................................................................................... - 45 -4.3.1. 一致性的意义........................................................................................................ - 46 -4.4. 协同工作能力分类和一致性级别.................................................................................... - 46 -4.4.1 定义工具、工作流执行软件.................................................................................. - 46 -4.4.2 可户端应用程与工作流执行服务器序协同工作.................................................. - 46 -4.4.3. 应用程序和工具集成............................................................................................ - 47 -4.4.4. 工作流执行服务器协同工作................................................................................. - 47 -4.4.5. 公共工作流管理.................................................................................................... - 47 -PDF created with FinePrint pdfFactory trial version Workflow Management Coalition Workflow Reference Model________________________________________________________________________________ ____________Copyright ã 1995 The Workflow Management Coalition - 4 -1.简介1.1. 背景工作流管理系统一项快速发展的技术,各种行业渐渐的采用工作流技术。
系统分析辅导:工作流模型设计
系统分析辅导:工作流模型设计摘要:工作流模型是组织机构经营过程的模型表示,但由于工作流建模理论研究的相对滞后,现行工作流管理系统中普通存在语义不够丰富、柔性不好、表示不直观等问题。
为此作者在开发UniFlow工组流管理系统时,设计了一套基于有向图理论的工作流模型,该模型有效的解决了这些问题。
本文主要从工作流模型理论出发向读者介绍了本模型的设计思想。
文章首先详细介绍了工作流模型的定义和组成关系,然后详细介绍了基于有向图理论的工作流模型的主要功能和设计思想。
关键词:工作流工作流模型有向图过程1 引言工作流模型是对组织机构业务过程的抽象表示。
工作流模型是整个工作流管理系统的基础,它的确定性保证了系统内各组成部分之间交互的一致性,也决定了一个工作流管理系统从设计开发到运行实施的诸多环节。
不同的工作流模型也就形成了不同的工作流管理系统。
相对工作流产品的实现技术和发展而言,工作流建模理论的研究相对滞后,在建模方法上还没有形成比较系统化的理论体系。
目前已有的建模方法主要有:基于活动网络的建模方法、基于Petri网的建模方法、基于语言行为理论的建模方法、基于活动与状态图的建模方法和基于扩展事务模型的建模方法等。
但这些工作流模型普遍都存在以下问题:(1)模型语义不够丰富,表示复杂问题的能力不足;(2)模型的柔性不好,不容易处理在执行过程中出现的不确定性问题;(3)表示方法不够直观等。
在信息管理自动化的环境下,工作流模型必须采用简单、直观、又具有较强描述能力的面向组织用户的模型。
因此,作者设计UniFlow工作流管理系统时,在参照工作流管理联盟(Workflow Manangement Coalition 简称:WfMC)工作流理论的基础上,博采众长,建立了基于有向图理论的UniFlow工作流管理系统工作流模型,该模型有效的解决了工作流模型中普通存在的问题。
下文主要向读者详细介绍这一模型的相关理论与设计思想。
2 工作流模型概要企业、政府机关等组织机构是一个复杂的系统,用过程的观点来看待这些组织机构,组织机构的组成元素就是过程,过程的组成元素就是活动;工作流模型就是对这些业务过程的抽象表示。
工作流详细设计范文
工作流详细设计范文工作流是指将一系列相互关联的任务组织起来并按照一定的逻辑顺序进行处理的一种管理方法。
它可以帮助组织将复杂的业务流程合理化、规范化,并提高工作效率和质量。
下面,将对工作流的详细设计进行阐述。
1.工作流模型设计:在进行工作流详细设计之前,需要根据具体的业务需求对工作流模型进行设计。
工作流模型主要包括:业务流程图、流程节点、流程路径和任务职责等。
业务流程图是对工作流程的可视化展示,通过它可以清晰地描述整个流程的执行过程。
流程节点是指流程中的每一个环节,它包括开始节点、中间节点和结束节点。
流程路径是指流程节点之间的逻辑关系,它描述了任务的流向和先后顺序。
任务职责是指每个节点对应的具体工作内容和执行者。
2.工作流引擎选择:工作流引擎是实现工作流的核心技术,它负责流程的调度和执行。
根据具体的业务需求和技术要求,可以选择合适的工作流引擎,如Activiti、JBPM等。
在选择引擎时,需要考虑其对标准工作流规范的支持程度、性能、扩展性和稳定性等因素。
3.工作流活动设计:根据业务需求和流程模型,对每个流程节点进行详细的设计。
具体包括:任务类型、任务输入和输出、工作表单、任务流转条件等。
任务类型可以分为人工任务和系统任务,人工任务需要人员参与,系统任务由系统自动执行。
任务输入和输出是描述任务的输入参数和输出结果。
工作表单是任务执行过程中需要填写的表单,可以采用HTML、XML或其它格式。
任务流转条件是指任务流向下一个节点的触发条件,可以根据业务规则设置。
4.工作流路由设计:工作流的路由决定了任务的流向和流转顺序。
可以采用条件路由、并行路由、顺序路由等方式进行设计。
条件路由是根据条件判断来选择下一个节点,例如根据一些字段的值来判断流向的下一个节点。
并行路由是指任务在多个节点间同时进行,例如多个审批人同时进行审批。
顺序路由是指任务按照一定的顺序进行,例如按照先后顺序依次执行。
5.工作流异常处理设计:工作流执行过程中可能会出现各种异常情况,需要进行异常处理。
工作流模式——精选推荐
⼯作流模式1编程模型从消化系统讲起,⼝腔、肠道、胃…等消化器官组成了消化系统,每个器官⼜是由更微观的物质构成,⽐如细胞。
细胞⼜可以细分。
细胞可以分类,⽩细胞,红细胞等等。
这⾥细胞可以认为是消化系统的基本组成元素。
这种组成结构⾮常像⾯向对象的思维,因为它们都要解决同⼀个问题:现实世界复杂性。
类可以认为是最基本的组成元素,类可以组成组件(构件),构件组成服务。
知道了消化系统的组成,我们来看如何实现吃这个功能,吃的功能完成需要⾷物通过各种消化器官,使⽤消化器官的功能完成。
这个过程是⾯向过程的,是⼀个流程。
再看我们程序的实现,Staitc Main是程序的⼊⼝,C#中功能的实现也是通过调⽤相互关联的类中的⽅法实现的。
C#本⾝就提供了丰富的控制结构(if else,while等等)。
分析:从最简单的语句到类到组件,到⼦系统。
代码结构的最优化组织⽅式采⽤⾯向对象,可以更好复⽤,使⽤设计模式后可以更好控制变化。
但是运⾏时逻辑往往是⾯向过程的。
⽐如Main{}中的逻辑。
就象细胞构成嘴、肠胃,这些器官⼜构成了消化系统,但是吃饭这个功能的完成是利⽤各个器官的功能,按照某种控制流程完成的。
结论:程序的⽬标之⼀是功能实现,其中实现⽅式是基于过程的,组织结构是⾯向对象的。
1.1过程控制模型常见的过程控制模型有:1、C#语句控制流;2、XAML;3、数据库表;4、DSL(领域描述语⾔),图形(专⽤的图形⼯具)。
数据库表中可以存储过程的调度逻辑,领域模式语⾔这⼏年也⾮常流⾏。
过程的描述可以⽤任何⼀种⽅法实现。
1.2C#控制流程的问题看⼀看交互式过程:在流转的过程中需要外部消息的响应的过程。
可能某个处理会等待⼏天甚⾄⼏周。
如果使⽤C#控制流实现,应该怎么实现。
⼀般的做法是新建⼀个线程异布执⾏某个流程,⽽主线程持续运⾏(类似Windows服务),如果流程停滞,线程会被阻塞,如果阻塞的线程⼀多,整个系统的性能就会有很⼤影响,毕竟线程池等系统资源有限。
工作流模式-工作流数据模式40种
⼯作流模式-⼯作流数据模式40种正如语⾔是⼈与⼈之间的沟通⽅式⼀样,数据是IT系统之间的沟通⽅式,语⾔之间的沟通总是有效,数据交互却未必,因为除了让计算机理解之外,数据还需要让⼈理解,IT系统是对现实⽣活的映射,也正因为如此,现在数据之间的沟通也在向语⾔靠拢即语义化(REST/语义⽹)。
在WfMC的⼯作流模型⾥,⼯作流数据被分为了3类,如图C-1所⽰。
图C-1 WfMC的⼯作流数据分类1. ⼯作流控制数据:⼯作流系统管理的内部控制数据,这些数据包括了与流程实例和活动实例相关的执⾏数据和状态数据,例如流程实例的状态、执⾏时间、⼯作项的执⾏者、执⾏时间、状态、紧急程度等。
2. ⼯作流相关数据:⼯作流系统使⽤⼯作流相关数据确定流程实例的流转条件,并选择下⼀个将执⾏的活动,这些数据由业务系统访问并修改。
例如报销流程中的“报销⾦额”,这个数据会决定该流程的审批路径;再例如为活动设置的超时时间,这个数据会触发活动的取消。
这些数据是⼯作流系统需要依赖进⾏流程流转的业务应⽤数据。
3. ⼯作流应⽤数据:业务系统管理的业务数据,⼯作流系统不能访问。
我们遵循WfMC的⼯作流数据分类,区别是将⼯作流相关数据根据应⽤场景进⼀步细化为3 类并重新定义,如图C-2所⽰。
图C-2 ⼯作流数据分类我们将⼯作流相关数据泛化为为⼯作流系统能够访问并使⽤的业务应⽤数据,分为3类:1. 连接业务系统的关联数据:⼯作流系统与业务系统进⾏关联的数据,例如特定于Web系统,⼯作流系统会在每个流程/活动实例⾥保持有导航⾄对应业务表单的URL。
2. 传递作⽤的业务应⽤数据:当流程跨越多个业务模块时,需要在模块间传递数据,此时会利⽤⼯作流系统进⾏传递,在⼯作流系统⾥暂时存储或转换这些业务数据。
在⾯向服务的软件架构中(SOA),⼯作流系统作为重要的中间件负责服务之间的调⽤编排,业务应⽤数据被封装为SDO通过⼯作流系统在不同Web服务(业务系统)间传递。
工作流程优化模型模板
工作流程优化模型模板工作流程优化是指通过对现有工作流程进行改进和优化,以提高工作效率和质量的方法。
在实际操作中,人们需要使用一种模型来指导和规范工作流程优化的过程。
本文将介绍一个工作流程优化模型模板,以帮助组织和个人在优化工作流程时更加系统、高效地进行操作。
1. 背景描述首先,需要在文章中对需要优化的工作流程进行背景描述。
包括该工作流程的目的、参与者、使用的工具和资源等内容。
这部分内容可以直接进行段落描述,也可以借助图表等方式进行展示。
2. 现状分析接下来,对现有的工作流程进行分析。
可以从工作流程中存在的问题,如流程冗余、工作重复、信息传递不畅等方面进行阐述。
同时,也可以对现有工作流程的优点进行描述。
在这一部分中,可以采用列表、表格等形式对问题和优点进行整理和展示。
3. 目标设定在对现状进行分析后,接下来需要明确要达到的优化目标。
可以具体说明要提高的工作效率、减少的工作时间、提升的产品质量等方面的内容,同时要确保这些目标是可量化的,便于后续的评估。
4. 方案设计在明确目标后,需要进行方案的设计。
可以使用流程图、框图等形式来描述工作流程的变化。
同时,可以对各个环节进行详细的描述,包括使用的工具、资源、人员协作等方面的内容。
这部分可以结合具体案例或者实证研究进行描述。
5. 实施与评估在设计好方案后,需要进行实施。
可以将实施过程分为若干个阶段,并记录每个阶段的具体做法和效果。
同时,在实施过程中需要持续进行评估和反馈,以确保目标的实现,并及时对方案进行调整和改进。
6. 结果总结在实施和评估完成后,需要对优化结果进行总结。
可以对优化过程中的成本、收益进行对比分析,评估优化的效果和影响。
同时,也可以对优化后的工作流程进行一定的展望,提出进一步改进的建议。
通过以上六个步骤,我们可以完成一个完整的工作流程优化模型。
在实际操作中,具体的模型可以根据实际情况进行调整和优化,但整体框架和步骤是相对固定的。
总结工作流程优化是组织和个人提高工作效率和质量的重要手段。
21种工作流模式介绍
Internal use only
10
4种高级分支同步模式
Pattern9 鉴别器(Discriminator)
定义描述:在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动; 与此同时,流程仍然要等待其余的分支完成并忽略完成。 注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的 例 子:“个人申请提交”后,并行提交给“第一导师审批”、“第二导师审批”、“第三导师审批”, 他们中只要有一个完成了,那么就可以提交给学院做“学院审批”, 但是学院要等这三个都完成之后才能够执行“学院审批”。 N-out-of-M 鉴别器模式 跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点到达后忽略掉这些节点。 另外这M-N个节点未完成前,新激活的后续节点一样无法被执行 JBPM中的支持情况:没有直接支持这种模式,但是如果通过自定义节点,应该是可以处理这种模式的 个人理解:对于里面的N-1个,如果会被忽略掉,会显得没有什么价值,浪费?
Internal use only
11
2种结构化模式
Pattern10 任意循环(Arbitrary Cycles)
定义描述:某一个或多个活动可以反复执行 例 子:用户“付款”,然后“拿到汽水”,然后中了“再来一瓶”,然后就重复做了一次“拿到汽水”动作 流 程 图:
Task1
Task2
Task3
2种结构化模式(Sturctural Patterns)
4种包含多实例的模式(Patterns involving Multiple Instances) 3种基于状态的模式(State-based Patterns)
乐观嵌套工作流事务模型的形式化描述
( c o lo m p t rS in e No t we tPoy e h i ie st Xia 1 07 S h o fCo u e e c , rh s lt c n cUnv riy, ’ n 7 0 2) c ( p rme to m p t rS inc , rh s ie st Xia 1 6 ) De a t n fC o u e e e No t we tUnv riy, ’ n 7 00 9 。 c
级回退的。
关键 词 乐观嵌套工作流事务模 型 , 工作流事务 , 形式化描述
A r lDe c i i n o Fo ma s rpto fOptmitc Ne td o k l w a a to o l i s i se W r fo Tr ns c i n M de
a e i t o u e d i h s p p r S me p o e t s s c s Hi r r h e n e i l a i t , r ic s e . Two c n l so s r r d c e n t i a e . o r p r i , u h a e a c is a d s rai b l y a e d s u s d n e z i o cu in b lw r lo p e e td:1 t i mo e c n e s r h a a i tg t b c u e ta s c in r e i l a l y a t a s c eo aeas rs n e )hs d l a n u e t e d t n e r y, e a s r n a t s a e s ra i b e b r n a — i o z t n s h d lr ) h s mo e d p s mu t d t e so O s o e i t r d it t t fd t c e s y t a s c i n, n i c e u e ;2 t i d l o t l — a a v r i n t t r n e me a e sa e o a a a c s e b r n a t o a i d o ad t e e o e ta s c in r c v r a c d ls . h r f r r n a t e o e y i c s a ee s o s Ke w r s Op i s i e td WO k lw r n a t n mo e 。 o k o t a s c i n F r q ld s rp in y od t mit n s e r f c o t a s c i d lW r f w r n a t , o n a e c i t o l o o
工作流描述
工作流描述工作流程是指在完成一个任务或实现一个目标时所需要经过的一系列操作或步骤。
它可以帮助组织或个人更加高效地完成工作,提高工作效率和质量。
在各个领域,工作流程都扮演着重要的角色,如生产制造、项目管理、软件开发等。
一个完善的工作流程需要经过以下几个关键步骤:定义、设计、执行、监控和优化。
首先,定义阶段是明确工作流程的目标、输入和输出,以及参与者和他们的职责。
在这个阶段,需要深入了解工作的本质和要求,理清各个环节之间的关联和依赖关系。
接下来,设计阶段是根据定义阶段的结果,制定出具体的工作流程方案。
在这个阶段,需要考虑到不同环节的顺序和执行方式,以及可能的异常情况和对应的处理措施。
设计一个合理、简洁、可行的工作流程方案是确保工作高效进行的基础。
一旦设计完成,就进入了执行阶段。
在这个阶段,各个环节按照工作流程方案进行操作,并及时记录和汇报工作进展。
执行阶段需要保证工作的准确性和及时性,遵循规定的流程和标准操作。
同时,也需要与其他环节的工作协同配合,确保整个工作流程的顺畅进行。
在执行阶段之后,监控阶段的任务是对工作流程进行实时监控和评估。
通过收集和分析各个环节的数据和指标,可以及时发现潜在的问题和改进的空间。
监控阶段的目标是保证工作流程的稳定性和可持续性,及时调整和优化工作流程,以适应不断变化的需求和环境。
优化阶段是对工作流程进行持续改进和优化。
通过分析和总结历次工作流程的经验和教训,可以找到瓶颈和潜在问题的根本原因,并提出相应的解决方案。
优化阶段的目标是进一步提高工作效率和质量,降低成本和风险,实现工作流程的持续优化和升级。
一个完善的工作流程需要经过定义、设计、执行、监控和优化等关键步骤。
只有在这个过程中,才能不断提高工作效率和质量,适应不断变化的需求和环境。
工作流程的设计和管理是组织和个人工作的重要一环,值得我们不断学习和探索。
通过科学合理地应用工作流程,我们可以更好地组织和安排工作,提高工作效率和质量,实现工作的最大化价值。
21种工作流模式的实现
21种工作流模式的实现工作流模式是对工作流程进行合理规划和设计的一种模式化表达方法,它将一项复杂的工作分解为多个环节,明确每个环节的责任和任务,提高工作效率和质量,降低出错率。
下面将介绍21种工作流模式的实现方法。
1.顺序工作流模式:按照一定的顺序依次进行各个环节的工作。
实现方法是明确每个环节的开始时间和结束时间,制定清晰的工作流程和责任分工。
2.并行工作流模式:多个环节同时进行,相互独立。
实现方法是将工作流程分解为多个独立的子流程,明确每个子流程的开始时间和结束时间。
3.分支工作流模式:根据不同情况采取不同的分支工作流。
实现方法是在工作流程中增加分支节点,根据条件判断进入不同分支工作流。
4.合并工作流模式:多个分支工作流合并为一个工作流。
实现方法是在每个分支工作流的结束节点设置等待节点,等待所有分支工作流都完成后再进入合并节点。
5.循环工作流模式:工作流程中的一些环节需要重复执行。
实现方法是在循环节点设置条件判断,当满足条件时继续执行循环体,直到不满足条件后跳出循环。
6.串行-并行-串行工作流模式:工作流程先串行进行一部分环节,然后并行进行多个独立的环节,最后再串行进行剩下的环节。
实现方法是将工作流程分解为两个子流程,在并行节点连接两个子流程。
7.串行-并行-并行-串行工作流模式:工作流程先串行进行一部分环节,然后并行进行两个独立的子流程,最后再串行进行剩下的环节。
实现方法是将工作流程分解为三个子流程,在并行节点连接两个子流程。
8.雁行工作流模式:工作流程先串行进行一部分环节,然后并行进行多个子环节,其中每个子环节又是一个串行工作流模式。
实现方法是在并行节点连接多个子流程。
9.交叉工作流模式:工作流程中的一些环节需要交替执行。
实现方法是在工作流程中增加交叉节点,在交叉节点根据条件判断选择不同的环节执行。
10.迭代工作流模式:工作流程中的一些环节需要重复执行,并且每次执行结果都会影响后续环节的执行。
简单易学工作流框架
简单易学工作流框架工作流框架是指一种用于管理和自动化各类业务流程的技术。
它可以将复杂的业务流程分解为一系列简单的任务,然后通过定义任务之间的依赖关系和执行顺序来实现自动化执行。
在现代企业中,工作流框架已经成为提高工作效率、降低成本的重要工具之一。
本文将介绍一种简单易学的工作流框架,帮助读者更好地理解和应用工作流技术。
一、工作流框架的基本概念1.1 任务(Task)任务是工作流框架的最基本单位,代表一个需要执行的工作单元。
每个任务都有自己的输入和输出,以及执行的操作。
任务可以是简单的操作,也可以是复杂的业务逻辑。
1.2 流程(Workflow)流程是由一系列任务组成的,代表一个完整的业务流程。
流程定义了任务之间的执行顺序和依赖关系。
在工作流框架中,流程可以被动态创建和修改,以适应不同的业务需求。
1.3 执行器(Executor)执行器是工作流框架的核心组件,负责执行任务的具体操作。
执行器可以是一个简单的脚本程序,也可以是一个复杂的分布式系统。
它根据任务的定义和依赖关系,自动调度和执行任务。
二、简单易学的工作流框架设计思路2.1 任务定义在设计工作流框架时,首先需要定义每个任务的输入、输出和执行操作。
任务的输入可以是其他任务的输出,也可以是外部数据。
任务的输出可以是结果数据,也可以是状态信息。
执行操作可以是简单的函数调用,也可以是复杂的业务逻辑。
2.2 任务调度任务调度是工作流框架的核心功能之一。
它负责根据任务的依赖关系和执行顺序,决定任务的执行顺序,并调用执行器执行任务。
任务调度可以采用不同的调度算法,如拓扑排序、深度优先搜索等。
2.3 任务状态管理任务状态管理是工作流框架的另一个重要功能。
它用于记录任务的执行状态,包括任务的开始时间、结束时间、执行结果等信息。
任务状态可以用数据库、日志文件等方式进行存储和管理。
2.4 异常处理在实际应用中,任务的执行可能会出现各种异常情况,如任务超时、执行失败等。
工作流模型
一:数据模型E_R图说明:1.1信息模型信息模型的核心是业务活动表(简称活动)ACTIVITY,其他相关的表结构主要有业务过程PROCESS、业务规则(活动流转规则)ROUTING_RULE、活动前依赖规则PRE_RULE、任务指派规则ASSGN_RULE、任务列表TO_DO_TASK_LIST以及已完成的任务列表HAVE_DONE_TASKS。
从图中可以看出,ACTIVITY与其他表之间都存在联系。
1.1.1活动类型每个业务过程由若干业务活动组成,不同的业务活动通过各不相同的ACT_ID来唯一标识,ACT_TYPE则指明相应活动的类型。
同一个业务活动在工作流运行时可能具有多个实例(instance)。
我们将活动的实例称为任务1,将属于同一业务过程的任务称为属于同一批次的任务。
有的业务活动可能针对具体的业务环节,即在前台(后台)对应实际的应用逻辑;有的业务活动则不针对具体的业务环节。
活动类型可以进行如下分类:●INITIAL,初始化活动,业务过程的第一个活动,不针对具体业务环节。
●INTERACTION,常规交互活动,INTERACTION活动对应实际的业务环节,在前台对应实际的应用逻辑,完成此活动需要实际人员的参与。
在所有活动类型中,只有INTERACTION活动才需要与实际人员交互。
●AUTOMATION,常规自动活动,同样对应实际的业务环节,但是实际的应用逻辑位于后台,由工作流引擎自动调用完成。
AUTO_EXECUTIVE指明相应应用逻辑的执行体。
●AND_BRANCH,与分支活动,不针对具体业务环节,此活动将同时派生出若干后继活动。
●AND_MERGE,与汇聚活动,是一同步活动,不针对具体业务环节,流经此处的任务将进行与汇聚同步。
此活动将进行活动的前依赖规则检查,只有所有的前依赖规则均被满足,才可流向后继活动。
●OR_MERGE,或汇聚活动,是一同步活动,不针对具体业务环节,流经此处的任务将进行或汇聚同步。
第四讲工作流过程模型
过程模型概述
为什么要研究过程模型
工作流过程模型是整个工作流管理系统的基础,是整个工 作流模型的核心部分。 工作流过程模型是区分一个工作流模型好坏的关键之所在, 模型描述能力的强弱决定了系统所支持应用的范围 及系统的灵活度。
过程模型概述
过程模型的组成——实体 实体 过程模型的组成 过程( 过程(Process):是对现实世界一个业务过程结构的抽象
路由到Petri网的映射 网的映射 路由到
基本结构表示方法
Petri网 网
工作流概念到Petri网的映射 网的映射 工作流概念到
路由到Petri网的映射 网的映射 路由到
循环路由:
Petri网 网
工作流概念到Petri网的映射 网的映射 工作流概念到
启动到Petri网的映射 网的映射 启动到
工作项是案例和准备被执行的任务的组合。 活动是一个工作项的实际执行 一旦某个工作项被执行,它就转化成活动。 一个任务可能对应着一个或者多个变迁,一个工作项对应 一个就绪的变迁,一(经典) 传统(经典)Petri网 网
一些局限性:
没有测试库所中零令牌的能力 模型容易变得很庞大 模型不能反映时间方面的内容 不支持构造大规模模型,如自顶向下或自底向上
Petri网 网
高级Petri网 网 高级
颜色扩展:
一个标记(token)通常代表具有各种属性的对象,颜色扩 展是使标记拥有值(颜色)代表由标记建模的对象的具体 特征。每个标记都有一个值,通过他能对标记进行区分。 变迁实施所产生的标记,取决于实施时被消耗的标记的值, 生产出的标记的值也可以依赖于那些消耗的标记的值。与 传统Petri网不同,生产的标记数目也是变化的,即生产的 标记数目由被消耗的标记的值决定,输出库所可能得不到 标记。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第26卷第11期2003年11月计算机学报CHINESE JOURNAL OF COMPUTERSVoI.26No.11Nov.2003工作流模型及其形式化描述李红臣1),2)史美林1)1)(清华大学计算机科学与技术系北京100084)2)(河南大学计算机科学学院开封475001)摘要工作流是一个业务过程的全部或部分自动执行.为了实现工作流管理功能,我们必须将业务过程从现实世界中抽象出来,并用一种形式化方法对其进行描述,其结果称为是工作流模型.该文主要讨论工作流模型及其形式化描述问题.基于对现实世界业务过程的分析,该文提出一个三维工作流模型,它包含3个子模型:组织模型、数据模型和过程模型,分别从不同的侧面描述工作流的各种属性.文中详细论述各个子模型及其相互关系,并给出三维工作流模型的形式化描述.关键词工作流管理系统;工作流模型;工作流元模型中图法分类号TP393Workflow Models and Their Formal DescriptionsLI Hong-Chen1),2)SHI Mei-Lin1)1)(Department of Computer Science and Technology,Tsinghua Uniuersity,Beijing100084)2)(School of Computer Science,Henan Uniuersity,Kaifeng475001)Abstract WorkfIow is the automation of a business process in whoIe or part.To achieve the function of workfIow management,the business process must be abstracted from the reaI worId and described by a kind of formaI method.The resuIt is workfIow modeI.This paper mainIy discusses workfIow modeIs and their formaI descriptions.Based on the anaIysis of business processes in the reaI worId,this paper propo-ses a three-dimensionaI workfIow modeI incIuding three sub-modeIs,i.e.,organization modeI,data mod-eI and process modeI,each of which describes some attributes of workfIows from different perspectives. These sub-modeIs and their reIationships are addressed in detaiI in this paper.Furthermore,the formaI description for the three-dimensionaI workfIow modeI proposed is aIso presented.Keywords workfIow management system;workfIow modeI;workfIow meta-modeI1 引言工作流管理系统(WorkfIow Management Sys-tems,WfMS)是一种在工作流逻辑形式化表示的驱动下,通过软件的执行从而实现完全地定义、管理和执行工作流的系统[1].一般认为,它主要由两个功能组件所组成:工作流建模组件和工作流执行组件.工作流建模组件主要为工作流建模人员提供一个建立时(buiId-time)环境,使得他们可以定义、分析和管理工作流模型;而工作流执行组件的主要功能是为工作流的创建、执行和管理提供一个运行时(run-time)环境.在工作流执行过程中,工作流执行组件可能与用户或者外部应用交互,从而完成工作流的执行.除此之外,工作流管理系统还包括其它一些功能,如工作流实例监控.工作流建模就是将现实世界中的业务过程抽象出来,并用一种形式化的、计算机可处理的方式来表示,这种形式化结果称为工作流模型[l].工作流模型包含了工作流执行所需要的各种信息,如活动、控制流、数据流、角色和执行者.尽管WfMC(WorkfIow Management CoaIition)和OMG(Object Management Group)一直致力于建立工作流管理系统的开发标准,但是目前还没有一个关于工作流模型的标准.工作流参考模型(WorkfIow Reference ModeI)[l]和工作流管理功能规范(WorkfIow Management FaciIity Specification)[2]只是定义了工作流管理系统的一般性框架和所提供的服务,而没有规定工作流建模的方法.WfMC颁布了工作流过程定义交换接口[3],其主要目的用于不同工作流管理系统之间能够交互过程定义信息.工作流模型是工作流执行的前提和基础,本文主要讨论工作流模型及其形式化描述问题.首先综述相关的研究状况;然后定义一些基本概念;接着本文提出一个三维工作流模型,随后详细地论述三维工作流模型的组成部分;继而讨论工作流模型的形式化描述问题;最后对文中所提出的三维工作流模型做一评价.!"相关研究在研究工作流管理系统的过程中,研究人员先后提出过不同的形式化方法来描述现实世界中的业务过程,建立工作流模型,本节对一些工作流模型及其形式化描述方法进行综述.Sadig和OrIowska使用图形符号语言来描述业务过程[4].这些符号分为两类:节点和变迁,节点又分为任务节点(用方框表示)和协作节点(用圆圈表示).任务节点继续分为活动节点、子过程节点、活动块节点和空节点,协作节点表示选择(choice)/合并(merge),也就是分别代表或分叉(or-spIit)与或合并(or-join).变迁为连接两个节点之间的有向边,表示节点之间的执行顺序和数据流动关系.使用这种方法可以将业务过程表示为一个有向无环图(Directed AcycIic Graph,DAG),它有一个开始节点和一个结束节点.EIIis和Nutt通过定义信息控制网ICN(Informa-tion ControI Net)来描述业务过程[5].在ICN中,变迁动之间的控制关系.AaIst通过定义工作流网(WorkfIow Net,WF-Net)来描述业务过程[6].WF-Net 是只有一个源位置(source pIace)和一个漏位置(sink pIace)的Petri网,其中标记(token)表示工作流的状态.使用WF-Net可以形式化地描述业务过程,而且可以证明WF-Net同样满足一般Petri网的某些特性,如有界性、活性.文献[7]比较全面地论述了基于Petri网的工作流模型.EndI等人使用扩展ECA(Event-Condition-Ac-tion)规则(即ECAA规则)来描述业务过程[8].一个ECAA规则表示一条业务规则,其含义是当事件(e-vent)发生时,如果条件(condition)为真,则执行某个动作(action),否则执行另一个动作(aIternative action).除此之外,使用ECAA规则还可以描述业务过程中的数据模型和执行者.DavuIcu等人使用并发事务逻辑CTR(Concur-rent TRansaction Iogic)描述并分析业务过程[9].CTR 是对经典谓词逻辑的扩展,其原子公式如同经典逻辑所定义,表示为p(tl,t2,…,tn),其中p为谓词符号,ti为函数项.除了V,八,,V,】之外,它还引入两个连接符:③表示串行合取,I表示并行合取;两个模态算子:令表示执行可能性,O表示隔离执行.假设!,"为两个公式,则!③"表示它们顺序执行;!I"表示它们并发执行;!八"表示它们在同一路径上执行;!V"表示它们其中的某个执行;!表示!永不被执行;令!表示!可能被执行;O!表示!被隔离执行.使用这些符号可以严格定义业务过程的逻辑结构.Haake和Wang使用超媒体(hypermedia)结构来描述工作流[l0].一个超媒体结构包括节点、链接、节点内容页以及其他媒体对象.活动空间用一个节点表示,其类型由它的根节点页类型所决定,每个节点有一个内容页.如果一个活动是子过程,那么这个节点指向另一个超媒体结构.一个超媒体页面除了节点和链接之外,还包含其它媒体类型,如文本、图形.业务过程和任务都可以用这种超媒体结构表示.Medina-Mora等人基于语言/行为理论对业务过程进行描述[ll].他们将业务过程分解为一系列的两人对话协作过程,一次对话表示为一个行为工作流环(action workfIow Ioop).一个业务过程是由多个行为工作流环组成,这些工作流环之间存在着某种依赖关系.754lll期李红臣等:工作流模型及其形式化描述方法[4]、状态-实体-活动模型(State-Entity-activity-ModeI,SEaM)[15]等等.这些方法在对业务过程的描述能力和模型本身的特性方面存在差异,有些方法侧重于工作流管理系统的实现,而有些侧重于对工作流语义的分析.而且,这些工作流模型主要是对业务过程结构的形式化描述,在工作流模型中说明活动所访问的数据和参与活动的执行者,缺少对数据资源和执行者组织结构的描述.因此,这些描述方法不适应大规模、动态变化的企业应用.Sanchez等人在开发WIDE(WorkfIow on InteIIi-gent Distributed database Environment)系统时提出WIDE工作流模型[16].一个完整的WIDE工作流模型包括三个子模型,其中组织模型描述工作流执行中的组织实体而非组织实体本身;信息模型描述工作流执行中的信息项;过程模型描述工作流的功能.它们同三维工作流模型相似,分别从三个方面描述一个业务过程,然而,WIDE工作流模型是从工作流系统实现的角度而提出的,缺少对工作流模型语义的分析;而且,其形式化描述没有与对象技术和数据库技术密切地关联起来.KradoIfer在文献[17]中提出一个工作流模型,它从功能/结构(function/structure)、信息(informa-tion)、行为(behaviour)和组织(organisation)4个方面描述一个业务过程,这4个方面分别描述一个业务过程的功能、组成、数据、执行和执行实体.然而,作者只是从概念上描述业务过程中的各种实体及其相互关系,没有给出其形式化描述方法.3 基本概念为了更加清楚地阐述本文内容,首先定义一些与工作流模型相关的基本概念.关于工作流管理的其它概念定义请参考文献[18].定义1.工作流元模型(workfIow meta-modeI).工作流元模型是为了定义某个应用域的工作流模型而定义的抽象模型,主要包括一些基本概念.定义2.工作流概念模型(workfIow conceptuaI modeI).工作流概念模型是使用工作流元模型中的基本概念,对某个应用域的业务过程抽象描述所得到的结果.定义3.工作流定义语言(workfIow definition Ianguage).定义4.工作流模型(workfIow modeI).工作流模型是使用工作流定义语言对某个应用域的业务过程形式化描述所得到的结果,它包含工作流执行所需要的信息.定义5.工作流(workfIow).工作流是工作流模型的一个实例,又称为工作流实例(workfIow instance),它表示业务过程的一次执行.这些概念之间的关系如图1,工作流模型是基于工作流元模型,而使用工作流定义语言所描述.对于一个工作流模型,可以生成多个工作流实例,每个工作流有一个ID,它唯一标识该工作流实例.4 工作流元模型4.1 业务过程分析与描述对于某个组织内或组织之间的业务过程,我们从四个角度加以考察:过程构成.一个业务过程是由一个或多个任务组成,这些任务之间存在着某种约束关系.业务过程处理实际上是其中的任务按照这种约束关系而先后执行.任务是构成业务过程的基本单位,任务之间由于约束关系和抽象层次而形成比较复杂的结构特性.过程执行.业务过程的一次执行是为了完成某个具体的业务目标,需要特定的数据和人力资源.一个业务过程可能是组织内业务过程,也可能是组织间业务过程的一部分.不同的业务过程是独立地在执行,它们之间可能没有直接的约束关系,但是可能通过共享资源而相互影响.访问数据.任务在执行过程中需要访问外部应用或数据,它们或者作为任务的输入流,或者作为任务的输出流.一个任务输出的数据也可能作为另一个任务的输入,任务之间由于所访问的数据而产生8541计算机学报2003年执行者.任务在执行中可能需要执行者(人或代理)的参与.这些执行者构成一个组织,他们之间存在着某种关系.对于这些执行者,有两种划分准则:一种是按照执行者的职能将其划分为不同的角色,如部门经理、会计;另一种是按照组织结构将其划分为不同的组织单元,如财务部、人事部.一个执行者属于某个组织单元,充当某个角色.基于上述对现实世界业务过程的分析,我们应该从三个方面来描述业务过程,即业务过程构成、数据模型和组织结构.因此,在建立工作流模型时,应使工作流模型包含这三个方面的信息;而且,为了支持大规模组织中的业务过程处理,应该对这三个方面分别进行描述.为此,我们提出一个三维工作流模型(three-dimensionaI workfIow modeI),它包括三个子模型:组织模型(organization modeI)、数据模型(data modeI)和过程模型(process modeI).组织模型描述了组织内部各个实体及其相互关系;数据模型描述了业务过程所访问的数据及其视图;过程模型描述了业务过程结构中的各种实体及其约束关系(包括控制流和数据流).一个业务过程实际上是由这三个模型中的若干个实体所构成,业务过程作为框架将过程模型、组织模型和数据模型中的各种实体关联起来.!."#组织模型组织模型是对一个组织内各种实体及其相互关系的描述,用实体-关系!(Entity-reIationship,E-r)表示,如图2所示.图2中实体及实体之间的关系说明如下.4.2.1 实体组织.是对现实世界中某个组织的抽象描述,属性包括组织名称、描述、性质、部门列表、负责人和地址等等.部门.是对组织内某个部门的抽象描述,属性包括部门名称、描述、角色列表、员工列表和部门领导等等.角色组.是由多个角色组成的集合,属性包括名称、描述和角色列表等等.功能组.是由具有某些相同功能的执行者或其本身组成的集合,属性包括名称、描述和成员列表等等.角色.是具有某种身份或权限的命名标识,属性执行者.是指参与活动执行的人或代理,属性包括名称、性别、地址、所在部门和充当的角色列表等等.能力.是对某个能力标识的描述,属性包括能力ID和描述等等.4.2.2 关系组成关系.连接两个实体,表示一个实体是另一个实体的组成部分.管理关系.连接执行者和功能组,表示某个执行者管理该功能组.替代关系.连接两个执行者,表示当一个执行者不在时,由另一个代替.充当关系.连接执行者和角色,表示一个执行者充当某个角色.一个执行者可以充当多个角色,一个角色也可以由多个执行者充当.954111期李红臣等:工作流模型及其形式化描述拥有关系.连接角色和能力,表示一个角色拥有这种能力.!."#数据模型数据模型是对工作流执行过程中所访问数据对象的描述.数据模型不像组织模型那样有清晰的模型定义.在企业应用当中,各种数据对象具有不同的类型定义,因此应该依照应用语义建立相应的数据模型.根据数据对象在工作流中的作用,将其分为三种类型:控制数据、应用数据和外部数据.4.3.l 控制数据控制数据是指被工作流管理系统所使用的内部数据.这些数据主要用来表示工作流实例或活动实例!的状态,它们不能被外部应用直接访问.在分布式执行环境中,这些数据可以在不同的工作流服务器之间交换;另外,有些控制数据可以提供给某些工具,如实例监控工具以获取工作流实例的状态.一般来说,控制数据使用变量来表示.变量是信息的基本单位,其属性包括类型、名称、初始值、描述、类别等等.类型有整型、布尔型、字符串型等.变量根据其可见范围分为私有变量和共享变量.私有变量只能被一个工作流中的所有活动访问,而共享变量可以被不同的工作流所访问.4.3.2 应用数据应用数据是工作流和外部应用都可以访问的、与应用领域相关的数据.应用数据既可以被工作流管理系统所使用,也可以被外部应用所使用.在分布式执行环境中,不同的工作流引擎之间可以交换应用数据.应用数据一般使用表单表示.表单是工作流系统可以访问和控制的数据域集合,因此表单是一个对象,它包括两部分:表单数据和表单模板.表单数据定义了表单对象的语义,也就是表单中的各个数据域;表单模板定义了表单对象的视图.一个表单模板可以被多个表单对象所使用,同样一个表单对象可以有多个表单模板.4.3.3 外部数据外部数据是指能被外部应用而不能被工作流管理系统所访问的数据.这些数据对象是由特定的外部应用所定义,在某些情况下,为了使不同的外部应用之间交换外部数据,需要将外部数据从一种格式转换为另一种格式.这种转换功能或者由工作流系统提供,或者通过定义某种标准格式(如XML)实现行参数和应用位置等信息.外部数据常常使用文档、文件或者对象表示,如一个图片、WORD文档.4.3.4 时间数据时间数据(temporaI data)是对与时间相关信息的描述,它分为三种类型:(l)时间常量,表示某个时间点,如某年某月某日.可以根据具体应用领域选择合适的时间精度,如年、月、日、小时、分钟、秒.(2)时间段,表示某个时间区间,它可以表示为开始时间和结束时间,也可以表示为开始时间和持续长度.(3)周期,表示时间频度,如每月的第一天.它由两部分组成,前者表示一个时间周期,后者表示时间单位.时间数据主要用于构造时间表达式,工作流管理系统根据时间数据设置时钟,当某个时间表达式为真时,就产生时间事件.时间事件主要用于异常处理和同步,例如,如果活动或工作流执行超过所规定的期限,就产生一个异常事件;有些活动或工作流的执行需要等待某个预定的时间段或周期,如果时间表达式为真,则产生时间事件.!.!#过程模型过程模型是对业务过程结构中各种实体及其约束关系的描述,过程模型使用实体-关系表示如图3.图3中的实体以及实体之间的关系说明如下.4.4.l 实体过程.是对现实世界一个业务过程结构的抽象描述,属性包括名称、时限、活动列表、开始活动、结束活动和优先级等等.活动.是对业务过程中一个执行步骤的抽象描064l计算机学报2003年述,是一个抽象实体,根据应用语义分为不同类型.原子活动.是由活动派生出来,直接被工作流系统所调度执行,属性包括名称、时限、描述、角色、开始条件、结束条件、外部应用、输入数据、输出数据和表单名称等等.子过程(sub-process ).是对另一过程模型的引用,属性包括名称、描述、开始条件、结束条件、输入数据、输出数据和过程模型名称等.外部应用.是指在活动执行过程中所调用的应用系统.属性包括应用名称、位置、输入参数和输出参数等.4.4.2 关 系组成关系.连接过程和活动,表示一个过程由多个活动所组成.先序关系.表示活动之间存在的约束关系.继承关系.活动是抽象实体,在建模时要具体化为原子活动或者子过程.引用关系.表示一个子过程在执行时引用另一个过程对象.调用关系.表示活动在执行时可能调用某个应用程序.同一抽象层次的活动之间存在着先序关系,这种关系定义了业务过程中的控制流和数据流.WfMC 定义了4种类型的控制结构,即顺序结构、并行结构、选择结构和重复结构,所有工作流可以由这4种基本控制结构组合而成[l ].4.4.3 子过程定义!. 父过程模型和子过程模型.如果一个过程模型中包含某个子过程,这个子过程引用另一个过程模型,则称前者为后者的父过程模型,而称后者为前者的子过程模型.父过程模型和子过程模型是相对的,一个过程模型可以有多个子过程模型,而一个子过程模型只能有唯一的父过程模型.因此,所有具有这种关系的过程模型构成一个具有层次的树状结构,如图4所示.引入子过程是工作流建模的需要,它为工作流建模和控制执行带来以下好处:(l )优化过程模型的结构.“层次抽象”是人们分析问题普遍所使用的方法,使用子过程可以隐藏某些非重要因素,便于工作流建模,而且使过程模型具有良好的结构.(2)提高过程模型的重用性.子过程也是过程建模中的基本单元,一个过程模型可以作为子过程被其它过程模型所重用.(3)便于工作流模型的分析.在分析一个工作流模型时,我们往往将其中某部分作为一个子过程以降低分析复杂度,而后再对这个子过程模型进行分析.(4)便于工作流的分布执行.在分布式工作流控制执行中,子过程往往作为一个基本单位在不同工作流引擎间分布调度.".#$子模型之间的相互关系过程模型、数据模型和组织模型实际上是从不同的侧面描述一个工作流,包含工作流执行所需要的相关信息.然而它们之间并不是孤立的,而是有机地相互关联.在三维工作流模型的3个子模型中,过程模型处于主要位置,它显式地描述一个业务过程,而组织模型和数据模型则处于隐式位置.对于一个工作流模型来说,这3个子模型通过某些实体相互关联起来,从而完整地表达工作流的语法和语义信息.图5表示这3个子模型之间的相互关系,通过角色和活动的执行关系将过程模型与组织模型关联起来,使得组织模型和过程模型的变化不会相互影响.通过活动和外部应用的调用关系以及活动和应用数据的存取关系将过程模型和数据模型关联起来.在工作流执行时,外部应用与工作流引擎之间存在某种交互接口,从而工作流引擎能够与外部应用交换数据.l64l ll 期李红臣等:工作流模型及其形式化描述!"工作流形式化描述我们在上节详细地讨论了三维工作流模型,定义了一些与工作流模型相关的基本概念,使用这些概念可以抽象地描述业务过程.然而,为了实现工作流管理,需要基于三维工作流模型,定义一个工作流定义语言,去描述工作流模型中的各种实体,这就是工作流模型的形式化描述.从前面的讨论看出,我们可以使用对象模型表示三维工作流模型中的实体,实体之间的约束关系通过对象属性隐含地表示.对于过程模型中的过程和活动实体,它们的类定义分别如图6(a)和6(b)所示.在过程类定义中,属性Activities为一个活动列表,其中的每个元素为活动对象.在活动类定义中,属性PreNode和NextNode为前一活动和后一活动的名称,表示活动之间的先序关系.为了有效地表示活动之间的先序关系,还要引入一些控制对象,用于表示过程模型中不同的控制结构,如或分叉(or-spiit)、或合并(or-join)、与分叉(and-spiit)、与合并(and-join)等[19].组织模型中的实体也使用对象来表示,如角色的类定义如图6(c),其属性Capabiiity表示该角色拥有的能力,UnitName表示角色所属的部门名称,Actors表示能充当该角色的执行者名称列表,这些属性定义使得角色关联到相应的对象.数据模型中的实体也使用对象来表示.由于应用数据有各自不同的类型定义,为了使得工作流引擎能够访问这些数据,我们使用对象模型描述应用数据,工作流管理系统提供对象模型到具体数据格式的映射,如从对象模型到数据库关系模型的映射.一般来说,工作流管理系统提供一些工具,建模人员使用这些工具可以建立工作流模型.当工作流模型被建立之后,它们被存储于数据库中.这样,工作流执行组件通过与模型库之间的接口访问这些对象.#"结"论工作流模型及其形式化描述是工作流技术中的一个重要研究方向.本文从分析现实世界业务过程入手,提出一个三维工作流模型,它包括3个子模型:组织模型、数据模型和过程模型,这3个子模型从不同的侧面描述一个业务过程.与其它工作流模型相比,三维工作流模型不但描述业务过程的组成结构,而且包含了对业务过程所访问的数据以及组织结构的描述.这3个子模型之间既相互关联,又相互独立,从而有效地描述组织内部以及组织之间的业务过程.表1给出了几种工作流元模型的比较.在三维工作流模型中,将组织模型与过程模型相分离有以下几点好处:(1)提高过程模型和组织模型的可重用性,一个过程模型可以被不同的组织所使用.表$"几种工作流元模型的比较工作流元模型形式语义组织模型描述数据模型描述过程模型描述特点图形符号一般无无有简单直观,便于用户使用Petri网严格无无有便于业务过程分析ECA规则一般无无有具有灵活性CTR逻辑严格无无有便于业务过程分析超媒体结构一般无无有便于表示层次结构的过程模型工作流环无无无有适用于交互型工作流管理系统2641计算机学报2003年。