zoukankan      html  css  js  c++  java
  • 工作流控制模式-多实例模式7种

    版权声明:工作流模式版权归 Workflow Patterns 组 织 ( http://www.workflowpatterns.com ) 所 有 。 经 Workflow Patterns授权,中文简体版由辛鹏和荣浩翻译。未经译者书面许可,不得将该中文简体版用于商业目的。

    在一个流程实例里,当一个活动存在多个工作项或活动实例时,我们称之为多实例。多实例 产生于3种情况:

    1. 活动在触发时产生多个工作项;
    2. 活动在流程实例中被触发多次,产生了多个活动实例(循环、多实例合并);
    3. 两个或多个活动具有相同的工作内容,这些内容重复的活动被抽 离成块活动或子流程多次执行。

    多实例模式共有7种,如图A-25所示。

    图A-25 多实例模式

    1. 异步多实例:活动创建多个工作项,这些工作项彼此独立同时执行,不需要同步。
    2. 定义期确定数目的同步多实例:活动创建多个工作项,创建数目在定义期建模时确定, 这些工作项彼此独立同时执行,当它们都执行完毕后才触发后续活动的执行。
    3. 运行期确定数目的同步多实例:与定义期确定数目的同步多实例区别:创建工作项的数 目在运行期、活动创建工作项前确定。
    4. 运行期不确定数目的同步多实例:活动创建多个工作项,创建数目依赖于运行时的一系 列因素,这些因素包括流程实例状态、可用的资源、外部环境等,在最后一个工作项执 行完成前都有可能产生新的工作项,这些工作项彼此独立同时执行,所有工作项都执行 完毕后才触发后续活动的执行。
    5. 多实例的静态部分合并:扩展运行期确定数目的同步多实例模式。创建工作项的数目M 在活动创建前确定,同时确定的还有必须完成的实例数目N,N < M。当N个工作项完成 后即触发后续活动的执行,剩余的工作项继续执行,但是被忽略。
    6. 多实例的取消部分合并:与多实例的静态部分合并区别:当第N个工作项完成触发后续活 动后,剩余工作项被取消不再执行。
    7. 多实例的动态部分合并:扩展运行期不确定数目的同步多实例模式,增加活动的完成条 件,只要满足条件就触发后续活动,剩余的工作项继续执行,但被忽略。

    异步多实例(WCP_12: Multiple Instances without Synchronization)

    描述

    在一个流程实例里,一个活动创建多个工作项,这些工作项彼此独立同时执行,不需要同步。 活动创建工作项的数目在定义期确定,是一个固定值。
    如图A-26所示, 某单位的发文流程,拟稿后需要局长和副局长审批,然后下发到各科室负 责人进行传阅,传阅这个行为不影响流程实例本身的执行,触发传阅活动后即触发发文活动。

    图A-26 异步多实例

    我们在活动定义期确定活动产生工作项的数目,如图A-27所示,下属有4个科室,所以我们 设置启动数量为4,为每位科室负责人生成一个工作项;工作项的循环顺序为并行,表明这些工作项并行执行;流转条件是None,表明生成完工作项后就触发后续活动。

    图A-27 定义期确定活动产生工作项的数目、异步执行

    定义期确定数目的同步多实例(WCP_13: Multiple Instances with a Priori Design- Time Knowledge)

    描述

    在一个流程实例里,一个活动创建多个工作项,创建数目在定义期建模时确定,这些工作项 彼此独立同时执行,当这些工作项都执行完毕后才触发后续活动的执行。
    如图A-28所示,某单位的发文流程,拟稿后需要局长和副局长审批,必须都审批通过后才能 下发到各科室负责人进行传阅。

    图A-28 定义期确定数目的同步多实例

    我们在活动定义期确定活动产生工作项的数目,如图A-29所示,有2个领导,所以我们设置 启动数量为2,为每位领导生成一个工作项;工作项的循环顺序为并行,表明这些工作项并行执 行;流转条件是All,表明所有工作项都执行完成后才能触发后续活动。

    图 A-29 定义期确定活动产生工作项的数目

    运行期确定数目的同步多实例 (WCP_14: Multiple Instances with a Priori Run-Time Knowledge)

    描述

    在一个流程实例里,一个活动创建多个工作项,创建数目在运行期确定,这些工作项彼此独 立同时执行,当这些工作项都执行完毕后才触发后续活动的执行。
    如图A-30所示。传阅的名单由局长、副局长在审批时指定。

    图A-30 运行时确定数目的同步多实例

    运行期不确定数目的同步多实例(WCP_15: Multiple Instances without a Priori Run-Time Knowledge)

    描述

    在一个流程实例里,一个活动创建多个工作项,创建数目依赖于运行期的一系列因素,这些因素包括流程实例状态、可用的资源、外部环境变化等,在最后一个工作项执行完成前都有可能 产生新的工作项,这些工作项彼此独立同时执行,所有工作项都执行完毕后才触发后续活动的执 行,如图A-31所示。

    图A-31 运行期不确定数目的同步多实例

    多实例的静态部分合并(WCP_34: Static Partial Join for Multiple Instances)

    描述

    在一个流程实例里,一个活动创建多个工作项,创建数目M在运行期确定,同时确定的还有 必须完成的工作项数目N,N <= M,这些工作项彼此独立同时执行,当N个工作项完成后即触发 后续活动的执行,其余的工作项继续执行,但是被忽略,不影响流程的路由。

    如图A-32所示。传阅的名单由局长、副局长在审批时指定,只要有一半的人阅读了文件没有 意见就可以发文。

    图A-32 多实例的静态部分合并

    多实例的取消部分合并(WCP_35: Cancelling Partial Join for Multiple Instances)

    描述

    在一个流程实例里,一个活动创建多个工作项,创建数目M在运行期确定,同时确定的还有 必须完成的工作项数目N,N <= M,这些工作项彼此独立同时执行,当N个工作项完成后即触发 后续活动的执行,其余的工作项被取消。
    如图A-33所示。传阅的名单由局长、副局长在审批时指定,只要有一半的人阅读了文件没有 意见就可以发文,剩下的传阅工作被取消,直接阅读正式发文。

    图A-33 多实例的取消部分合并

    多实例的动态部分合并(WCP_36: Dynamic Partial Join for Multiple Instances)

    描述

    在一个流程实例里,一个活动创建多个工作项,创建数目依赖于运行期的一系列因素,这些 因素包括流程实例状态、可用的资源、外部环境变化等,在最后一个工作项执行完成前都有可能产 生新的工作项,这些工作项彼此独立同时执行,每个工作项完成时就对活动的完成条件进行验证, 如果满足该条件那么就触发后续的活动,剩余的工作项将继续执行但被忽略,不再产生新的工作项。
    如图A-34所示。传阅的名单由局长、副局长在审批时指定,阅读人在阅读过程中可以加入新 的人阅读文件,只要有名单总数一半的人阅读了文件没有意见就可以发文。

    图A-34 多实例的动态部分合并

    本文来源:http://www.cnblogs.com/x3d/,转载请注明。
  • 相关阅读:
    再谈TextField
    IOS-TextField知多少
    leftBarButtonItems
    LeftBarButtonItems,定制导航栏返回按钮
    Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法 Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法
    Unrecognized Selector Sent to Instance问题之诱敌深入关门打狗解决办法
    UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
    Present ViewController,模态详解
    UILABEL AUTOLAYOUT自动换行 版本区别
    iOS自动布局解决警告Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0
  • 原文地址:https://www.cnblogs.com/x3d/p/15376672.html
Copyright © 2011-2022 走看看