• 驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式


    1. 多重选择(Multiple Choice)

    在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。

    例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观光。

     

    ACTIVITI 中的支持情况:

    1.JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种进行,但是ACTIVITI.4之后支持一种叫foreach的节点,允许我们在运行时指定几种特定的任务,比如上面例子中的片区,我们可以在选定后再去循环。

    2.BPMN方式支持根据条件执行多个子分支。

     

    JFLOW中的支持情况:

    1.通过定义流程为异表单分合流来实现。

    a通过条件控制发起子线程数量。设置方向条件的时候,可以根据需要,选择不通的条件设置,比如:岗位条件、部门条件、表单条件等。

    b通过节点树形中设置手工选择方向控制,可以控制发起子线程的发起数量。

    2.通过父子流程也可以实现。

    1. 同步聚合(Synchronizing Merge)

    在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。

    这种模式的关键在于能够动态的根据分支的多少进行聚合。

     

    ACTIVITI 中的支持情况:

    可以通过设置ACTIVITI 的join节点属性multiplicity的值为某个变量,并在程序中动态的修改变量的值来制定分支的数量。

    JFLOW中的支持情况:

    分合流中合流操作。无论分支有多少,都可以进行汇总,并且可以对汇总的子线程进行删除操作、完成率控制等。

     

    JFLOW的多重选择与同步聚合实例图:

    结束为聚合点,中间的为分支。

     

    1. 多重聚合(Multiple Merge)

    在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例。

    例子:游客观光完N个片区之后,每个片区各自的系统可以对游客在自己片区的信息进行存储。

     

    ACTIVITI 与JFLOW的支持请参考 同步聚合。

    1. 鉴别器(Discriminator)

    在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动;与此同时,流程仍然要等待其余的分支完成并忽略完成。

    注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的。

    例子:个人申请提交后,并行提交给第一导师审批、第二导师审批、第三导师审批,他们中只要有一个完成了,那么就可以提交给学院审批。

    N-out-of-M鉴别器模式:

    跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点未完成前,新激活的后续节点一样无法被执行。

    ACTIVITI 中的支持情况:

    没有直接支持这种模式,但是通过自定义节点,应该是可以处理这种模式的。

    JFLOW中的支持情况:

    有两个属性的控制,可以实现功能,就是上面所说的子线程完成路和子线程删除规则。

    第1个:子线程完成率。 该规则可以决定是否可见

    第2个:子线程删除规则。该规则决定那些子线程可以被删除以及他们的删除方式。

     

  • 相关阅读:
    思路不够清晰
    深思不够
    [Android学习笔记]理解焦点处理原理的相关记录
    移动端自动化测试(二)之 Appium常用的API(python)函数介绍
    移动端自动化测试(一)之 Appium+Pyhton环境准备篇
    如何修改上线网站
    sublime如何自动保存
    自动化元素定位
    OC 字典 存储联系人信息 求大神优化代码
    我的第一个字典-Dictionary
  • 原文地址:https://www.cnblogs.com/mengjuan/p/10124284.html
Copyright © 2020-2023  润新知