<o:p></o:p>
流程模型分析(1)<o:p></o:p>
——开篇
<o:p></o:p>
<o:p></o:p>
早就想写篇有关工作流模型方面的文档。一直以来,网上只发现一些英文文档,有关工作流的中文文档实在太少,有关工作流模型中文介绍则更是稀少。
总算在三个星期前开始决定写了。本来空闲时间就不多,中途又小论“学习java的浮躁心态”,耽搁了不少时光,就这么零零碎碎的写,庆幸总算完成了。
就不罗嗦了,直接进入正题吧。接下了及后续的篇幅,我会为大家介绍以下几方面内容:
起点模型,激活模型,运转模型,流程组合嵌套模型,流程整合模型等。其中,第三节的运转模型,理所当然的是本篇的重中之重了,说的也比较细致。请参看下面的目录结构。
<o:p></o:p>
目录<o:p></o:p>
=============================================================================<o:p></o:p>
一、流程的起点模型<o:p></o:p>
1.1 单起点(Single Start Node)<o:p></o:p>
1.2 多起点<o:p></o:p>
多起点方式一<o:p></o:p>
多起点方式二<o:p></o:p>
多起点方式三<o:p></o:p>
二、流程的激活模型<o:p></o:p>
2.1 人工激活<o:p></o:p>
2.2 定时或限时激活<o:p></o:p>
2.3 外界消息激活<o:p></o:p>
三、流程的运转模型<o:p></o:p>
3.1 基本运转模型<o:p></o:p>
串行(Sequence)<o:p></o:p>
自循环<o:p></o:p>
3.2 发散运转模型<o:p></o:p>
并行(Parallel)<o:p></o:p>
独占式选择(Exclusive Choice)<o:p></o:p>
鉴别式选择(Discriminator Choice)<o:p></o:p>
抄送模型<o:p></o:p>
发散模型<o:p></o:p>
3.3 聚合运转模型<o:p></o:p>
同步聚合(synchronize merge)<o:p></o:p>
简单聚合(Simple Merge)<o:p></o:p>
多重聚合(Multiple Merge)<o:p></o:p>
鉴别式聚合(Discriminator Merge)<o:p></o:p>
四、流程组合嵌套模型<o:p></o:p>
4.1 内嵌模型<o:p></o:p>
主流程等待方式<o:p></o:p>
主流程也运行方式<o:p></o:p>
4.2 外嵌模型<o:p></o:p>
五、流程整合模型<o:p></o:p>
=================================================================================<o:p></o:p>
有关“什么是工作流”和工作流的概念,就不在这里介绍了。大家有兴趣的可以到WFMC上看看。这里先说说个人的看法:一个工作流包括一组任务(Task)及它们的相互顺序关系,还包括流程及任务的启动和终止条件,以及对每个任务的描述。其实这是摘自http://www.simflow.net/workflow/workflow.htm 上一段话有关工作流的描述。只是原文叫“活动”,我改为任务(Task),可能更好理解一些。<o:p></o:p>
其实,现在已经跳出了单工作流的圈子,越来越倾向于多工作流之间的嵌套或整合,在本文后面的第4、5节会简要的介绍。
<o:p></o:p>
在进入各个模型说明前,需要说明一些有关本篇文章中,出现的一些图形含义。既然然流程图,就免不了用图形表示,用图标代替一些流程节点的含义。如下图所示:
<o:p></o:p>
<v:shapetype o:spt="75" coordsize="21600,21600" stroked="f" id="_x0000_t75" filled="f" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path gradientshapeok="t" o:extrusionok="f" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape type="#_x0000_t75" id="_x0000_i1025" o:ole="" style="WIDTH: 175.5pt; HEIGHT: 329.25pt"></v:shape>
<o:p></o:p>
有关器各个图标的含义,在后续会说明。
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
---------------------------
作者:胡长城 (银狐999 , james999)
Email:james-fly@vip.sina.com