如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
工作流模型分析作者:胡长城(银狐999)Email:james-fly@vip.sina.com创作时间:2003年11月早就想写篇有关工作流模型方面的文档。一直以来,网上只发现一些英文文档,有关工作流的中文文档实在太少,有关工作流模型的更是稀少。就不罗嗦了,直接进入正题吧。接下了及后续的篇幅,我会为大家介绍以下几方面内容:起点模型,激活模型,运转模型,流程组合嵌套模型,流程整合模型等。其中,第三节的运转模型,理所当然的是本篇的重中之重了,说的也比较细致。请参看下面的目录结构。目录=============================================================================一、流程的起点模型1.1单起点(SingleStartNode)1.2多起点多起点方式一多起点方式二多起点方式三二、流程的激活模型2.1人工激活2.2定时或限时激活2.3外界消息激活三、流程的运转模型3.1基本运转模型串行(Sequence)自循环3.2发散运转模型并行(Parallel)独占式选择(ExclusiveChoice)鉴别式选择(DiscriminatorChoice)抄送模型发散模型3.3聚合运转模型同步聚合(synchronizemerge)简单聚合(SimpleMerge)多重聚合(MultipleMerge)鉴别式聚合(DiscriminatorMerge)四、流程组合嵌套模型4.1内嵌P?主流程等待方式主流程也运行方式4.2外嵌模型五、流程整合模型=================================================================================有关“什么是工作流”和工作流的概念,就不在这里介绍了。大家有兴趣的可以到WFMC上看看。这里先说说个人的看法:一个工作流包括一组任务(Task)及它们的相互顺序关系,还包括流程及任务的启动和终止条件,以及对每个任务的描述。其实这是摘自http://www.simflow.net/workflow/workflow.htm上一段话有关工作流的描述。只是原文叫“活动”,我改为任务(Task),可能更好理解一些。其实,现在已经跳出了单工作流的圈子,越来越倾向于多工作流之间的嵌套或整合,在本文后面的第4、5节会简要的介绍。在进入各个模型说明前,需要说明一些有关本篇文章中,出现的一些图形含义。既然然流程图,就免不了用图形表示,用图标代替一些流程节点的含义。如下图所示:StartTaskEndAndORDiscAndXORXORDisc流程起点任务流程结束点并行发散器独占发散器鉴别发散器同步聚合器简单聚合器多重聚合器鉴别聚合器有关器各个图标的含义,在后续会说明。一、流程的起点模型任何事物都有由头有尾,一个流程也不例外,那么现在我们就从流程的“头”——流程起点说起。首先,需要说明的是,起点也是一种任务节点(TaskNode)。1.1单起点(SingleStartNode)单起点估计大家都比较容易理解,现实中工作流应用的也是最为普遍。如下图(1-1)所示,其就是单起点的模型。在接下来的所有图像中,一个绿色方框代表一个起点。StartTaskBTaskA图(1-1)1.2多起点多起点的工作流,在现实应用多不是太多。其主要表达的是,在同一流程中,存在多个起点。说到这里,有必要重新申明一下:起点也是一种任务节点,也就说起点不是独立于工作流任务的,在流程启动的时候,其也需要完成某种特定的任务,以激活整个工作流的运转。多起点的工作流模型,基本上有如下三种方式。多起点方式一请参考图(1-2)起点A和起点B,,它们都可以激活流程的运行,而且激活后,流程都会共同指向TaskA。所以,对于TaskB来说,其不关心流程是如何激活的,其只关系从TaskA是否正确的传递来正确的流程数据。StartATaskAStartBTaskB图(1-2)多起点方式二在方式二(如下图(1-3))中,起点A激活工作流后,导致流程沿着TaskA——TaskB——TaskC方向流转。而从起点B激活工作流后,TaskA则被跳过。这种方式,在现实中是极为少见的。如果将StartB——TaskB这条流程段与StartA——TaskB这条流程段,分开来看。则可以近似看作的两个“子流程”的选择性汇总(两选一,或多选一)的情况。StartBStartATaskBTaskATaskC图(1-3)多起点方式三方式三(如下图(1-4),虽然也存在多个起点,但是基本是按照一个统一流程方向运行的。这是与方)式二最大的区别所在。在此,须要再此申明:一个起点(StartNode)同时