`
ww2
  • 浏览: 415621 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

工作流模型分析(3)——流程发散聚合模型(总算上传上图了)

阅读更多

 <!----><o:p></o:p>

流程模型分析(3<o:p></o:p>

              ——流程发散聚合模型

 <o:p></o:p>

 <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>

 <o:p></o:p>

三、流程的运转模型

这里将是本文最为核心的地方了,什么是工作流,也将在其运转模型中体现。

任何事物都是循序渐进的,由简单到复杂。我们先来看看最为基本的集中运转模型

 <o:p></o:p>

3.1 基本运转模型

 <o:p></o:p>

串行(Sequence

串行,是最为简单,也最为容易理解的模型。按照预定的任务列表(Task A,Task B,Task C),有序的执行,如下图(3-1)所示。

<!----><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:connecttype="rect" o:extrusionok="f"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape type="#_x0000_t75" id="_x0000_i1025" style="WIDTH: 285pt; HEIGHT: 55.5pt"></v:shape>

图(3-1<o:p></o:p>

自循环

自循环的模型,主要用于表示:同一个任务节点,重复的执行多次。

 <o:p></o:p>

<v:shape type="#_x0000_t75" id="_x0000_i1026" style="WIDTH: 324.75pt; HEIGHT: 72.75pt"></v:shape>

图(3-2<o:p></o:p>

 <o:p></o:p>

如图中所显示。“模式2”比“模式1”多了一个鉴别节点(Discriminator Node)。这两种模式,在现实中应用的都较为广泛,其中“模式1”更多的偏向人为的选择,也就是说,在任务执行后,由人为的决定是否继续重复的执行这次任务;而“模式2”则更多的倾向于一个既定的规则,按照原有的规则,决定是否重复执行。

 <o:p></o:p>

3.2 发散运转模型

 <o:p></o:p>

并行(Parallel

并行,就涉及到流程的分支概念。就是说在流程运行过程中,因为不同的条件或情况,或者处理的业务需要多部门(多任务)分开处理,而产生了流程分支。如下图所示

<v:shape type="#_x0000_t75" id="_x0000_i1027" style="WIDTH: 4in; HEIGHT: 93pt"></v:shape>

图(3-3<o:p></o:p>

 <o:p></o:p>

流程在执行完任务A后,因为需要,产生了两个并发执行的分支(A——BA——C)。这两个分支之间是对等的,也是并行执行的。

有关上面的流程图,可能在以后的一些文章/文档中,大家会看到下面类似的图形

<v:shape type="#_x0000_t75" id="_x0000_i1028" style="WIDTH: 312.75pt; HEIGHT: 92.25pt"></v:shape>

图(3-4<o:p></o:p>

 <o:p></o:p>

虽然比上图多了一个And选择器,但实际上,两图,表示的是同一个含义或模型。所以大家在应用或读书的时候,可以长个心眼哦,自己学会实质性的分析。

 <o:p></o:p>

 <o:p></o:p>

独占式选择(Exclusive Choice

当一个任务处理完后,发现其后面可允许走多个分支流程,但只允许选择其中某一个分支运行。这个选择是人为决策的,预先没有设点选择的规则。

 <o:p></o:p>

<v:shape type="#_x0000_t75" id="_x0000_i1029" style="WIDTH: 308.25pt; HEIGHT: 88.5pt"></v:shape>

图(3-5<o:p></o:p>

 <o:p></o:p>

鉴别式选择(Discriminator Choice

这同前面的“独占式选择”很相似,唯一不同点,就是多了一个鉴别器(Discriminator)。当任务达到这个鉴别器的时候,鉴别器会根据当前流程所处的状态,对比预先设定的一些选择规则,自动判别接下来流程的流向,也就是自动根据条件,选择一个满足条件的分支运行。

<v:shape type="#_x0000_t75" id="_x0000_i1030" style="WIDTH: 281.25pt; HEIGHT: 80.25pt"></v:shape>

图(3-6<o:p></o:p>

 <o:p></o:p>

鉴别器模式(有的可能叫选择器等等名字,表达的意思基本相同),在现实应用中较为广泛。比如在订单申请流程中,设定一个依据数额判别流向的鉴别器,如果数额大于等于5000就走分支流程A,如果数额小于5000就走分支流程B

 <o:p></o:p>

抄送模型

抄送模型,本身不是一个标准的工作流运转模型,但是在现实应用中,比比皆是。

它表达的意思是(请参考下图),存在主流程(A——C),在一个任务(A)执行完毕后,会继续执行主流程上下一个预定任务(C),但是同时也会激活另一任务(B)(或另外的流程)的执行,但是任务B以及任务B的后续流程,不会对主流程运转造成影响。

请注意图中的 A——B流程沿线,用的是灰色虚线表示,而且任务B也同样采用灰色表示。

<v:shape type="#_x0000_t75" id="_x0000_i1031" style="WIDTH: 311.25pt; HEIGHT: 93pt"></v:shape>

图(3-7<o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

       来个举个电子办公系统中,经常遇到得例子说明一下:比如一个发文,在交司局会签的时候,可能会抄送一份给另外的司局备案,这个过程就或额外的激活一个不影响主会签流程的“抄送任务”,比如图中Task B

 <o:p></o:p>

发散模型

说到这里,大家可再回过头参看一下并行模型(3.2.1节)。发散和并行最大的区别就是,各个分支(branch)的流程状态(或流程数据):

在并行模型中,分支状态(A-B)与分支状态(A-C)是大多数情况下是不相等的。由任务A执行后的状态进行一定条件下的“拆分”,形成了两个分支(或多个分支)流程。这多个分支流程,在最终需要重新聚合成一个主流程,以确保流程信息的完整性(当然,实际运行中,可能存在因为超时等特定原因而最终抛弃某个子流程)。

而在发散模型中,分支状态(A-B)与分支状态(A-C)是绝对相等的。因发散而产生的多个分支流程,在最终未必聚合(可能因为种种原因,聚合的时候会抛弃一个和多个分支流程)。

这里面说到了“聚合”概念,在后续的介绍上,将加以详细叙述

 <o:p></o:p>

<v:shape type="#_x0000_t75" id="_x0000_i1032" style="WIDTH: 350.25pt; HEIGHT: 126pt"></v:shape>

图(3-8<o:p></o:p>

 <o:p></o:p>

3.3 聚合运转模型

下面我们就将进入聚合模型的介绍。因为有了“发散”,在一个流程的后续运转中,才会出现“聚合”这个问题。所以在后续讨论聚合模型的时候,大多情况下都会结合上面的发散运转模型。

同步聚合(synchronize merge

由必要说明一下,同步聚合,可不是“同时聚合”噢。

<v:shape type="#_x0000_t75" id="_x0000_i1033" style="WIDTH: 405pt; HEIGHT: 138pt"></v:shape>

图(3-9<o:p></o:p>

 <o:p></o:p>

简单聚合(Simple Merge

虽然名为简单聚合,不过在现实应用中,其理解度和应用度,都基本上比上面的“同步聚合”要难。多分支在聚合的时候,采用类似于“先进先出”法则,哪一个分支先达到,则最先激活流程的运行。后续的分支则到此就会终止。

 <o:p></o:p>

<v:shape type="#_x0000_t75" id="_x0000_i1034" style="WIDTH: 320.25pt; HEIGHT: 105pt"></v:shape>

图(3-10<o:p></o:p>

 <o:p></o:p>

多重聚合(Multiple Merge

多重聚合,与上面的简单聚合有些相似。但是比起Simple Merge可就复杂多了。到目前为止,在现实中,我还没有碰到过这样的流程实施。

       多分支在聚合的时候,采用类似于“先进先出”法则,但是不同于简单聚合的是,任何一个分支,在到达这个聚会点的时候,均会激活后续流程的运转。

              这就涉及到一个问题了,如果一个后续流程实例刚刚被激活,又一个分支到达,那么这个分支是否激活后续流程实例呢?在不同的工作流引擎中(workflow enginner)中会有不同的解决方案,有的选择立即激活,有的选择等待延迟激活。就这一点来说,不是本文的讨论主题,有兴趣的朋友,可以在自己的引擎中实现不同的方式。

<v:shape type="#_x0000_t75" id="_x0000_i1035" style="WIDTH: 311.25pt; HEIGHT: 102pt"></v:shape>

图(3-11<o:p></o:p>

 <o:p></o:p>

鉴别式聚合(Discriminator Merge

这个是较为容易理解的,显示应用中也常常碰到,但是在应用的实施难度较大,因为一般与其配合的都会存在一个“规则引擎”,来定义/处理聚合规则

      

 <o:p></o:p>

<v:shape type="#_x0000_t75" id="_x0000_i1036" style="WIDTH: 320.25pt; HEIGHT: 105pt"></v:shape>

图(3-12<o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

 <o:p></o:p>

---------------------------

作者:胡长城 (银狐999 james999

Emailjames-fly@vip.sina.com

 

分享到:
评论

相关推荐

    工作流模型分析工作流模型分析

    在分析工作流模型时,我们需要关注多个方面,包括流程的起点、激活方式、运转模式以及流程的组合和嵌套。 1. **流程的起点模型**: - **单起点(Single Start Node)**是最常见的模型,只有一个起点开始流程,所有...

    工作流模型分析.pptx

    本文件"工作流模型分析.pptx"详细介绍了多种常见工作流模型及其特点,包括任务与活动、流程起点、流程激活和流程运转模型。 首先,活动(Activity)是工作流模型中最基础的元素,代表流程中的一个逻辑步骤。它可以...

    工作流模型分析 适合用到工作流的人

    根据给定文件的信息,我们可以深入探讨工作流模型的相关知识点,特别是关于任务(Task)与活动(Activity)的区别、工作流的不同模型及其应用场景。 ### 任务与活动 在工作流领域,活动(Activity)是WFMC(Workflow ...

    工作流引擎

    运转模型描述了工作流中任务的执行模式,分为基本运转模型、发散运转模型和聚合运转模型: #### 基本运转模型 - **串行**:任务按顺序执行,一个任务完成后才能开始下一个。 - **自循环**:任务可以在一定条件下...

    工作流系统文档设计书

    **WfMC工作流模式**提供了几种常见工作流模型,包括任务与活动、流程起点模型、流程激活模型和流程运转模型等。 1. **任务与活动**:在WfMC标准模型中,“活动”(Activity)描述了一个逻辑步骤,是流程运转的最小...

    创新思维训练第三四讲——发散思维.ppt

    创新思维训练第三四讲——发散思维.ppt

    解决ukf在模型不匹配时出现的发散或者不稳定

    标题中的“解决ukf在模型不匹配时出现的发散或者不稳定”指的是在使用Unscented Kalman Filter(UKF)算法时遇到的问题。UKF是一种非线性滤波方法,广泛应用于导航、控制、估计等领域,尤其适用于处理非线性系统。...

    工作流模式

    通过以上分析可以看出,工作流模式的设计非常灵活多样,可以根据实际需求定制出符合企业业务特点的工作流模型。这不仅有助于提高工作效率,还能确保业务过程的准确性和合规性。在未来的发展中,随着技术的进步和应用...

    成信工作流引擎体系架构与介绍

    综上所述,成信工作流引擎是一款功能强大、易于使用的工作流管理工具,能够帮助企业有效提升流程管理能力和工作效率。 **6.2 公司联系方式** 广州成信软件科技有限公司 网址:http://www.chxsoft.com 地址:广州市...

    教师资格考试、教师招聘考试资料——发散思维训练的方法.pdf

    教师资格考试、教师招聘考试资料——发散思维训练的方法.pdf

    大一下期中数学分析梳理——级数部分

    【数学分析——级数部分知识点】 数学分析中的级数部分是微积分理论的重要组成部分,主要研究无穷级数的收敛性和性质。以下是对这部分内容的详细梳理: 1. **级数的敛散性** - 柯西收敛准则:一个级数如果满足...

    工作流系统功能列表

    工作流系统作为一种重要的业务自动化工具,其核心价值在于优化企业内部流程,提高工作效率与响应速度。根据提供的“工作流系统功能列表”文档,我们可以深入探讨其中的关键知识点,这些功能不仅体现了工作流系统的...

    蛛网模型在数学分析中的应用

    ### 蛛网模型在数学分析中的应用 #### 一、蛛网模型概述及其在经济学中的定义 蛛网模型作为一种重要的动态经济模型,在现实生活中有着广泛的应用。它主要用于分析那些生产周期较长的商品市场中价格与产量的变化...

    CFD计算过程发散诸多原因分析

    元计算技术人员为大家介绍CFD计算过程发散诸多原因分析

    simulink模型7.8,simulink模型加密,matlab

    综上所述,这些知识点涉及了Simulink模型的设计、加密、MATLAB编程、自适应滤波算法(特别是FxLMS及其变种)、以及系统模块化的最佳实践。这些内容对于在信号处理、控制系统设计和嵌入式系统开发等领域工作的工程师...

    财务分析——概述.pptx

    首先,财务分析的作用在于帮助求职者理解公司财务状况,以便在寻找工作时做出明智的选择。此外,随着新行业的发展,例如担保业,财务分析成为识别和评估行业风险的关键技能。分析过程中,思维方式的发散性至关重要,...

Global site tag (gtag.js) - Google Analytics