开篇之作

(1) 描述

两条或更多的分支合并到单一的一条后续路径中,每一条使能进入分支都激活后续路径的一次执行线程。虽然多条分支在图形上是合并的,但是这个多路合并并不对这些分支激活的后续线程进行任何的同步。

(2) 抽象模型描述

多路合并的Flash动画

上图中,B和C是多路选择后的分支,这样的分支可以超过两个,假设还有E、F……,这样的分支在多路选择处不进行同步,每一个分支都会激活一次D的执行,即D(B)、D(C)、D(E)……,并且这些D的线程互不干扰。

(3) 业务场景举例

报销流程,假设分为三部分:住宿费、交通费、飞机票特殊报销。可能出现的情况有:住宿费+交通费;住宿费+交通费+飞机票特殊报销;交通费;交通费+飞机票特殊报销……

流程开始,首先填写报销申请(勾选报销的内容,三种费用中选择),之后流程根据勾选的内容激活后续的填写不同报销单的分支,最后每一张报销单都需要经过审批。

如果流程引擎没有实现多路合并我们可以变相的实现上面的功能。如下图:

但上述的实现有以下的不足:

a、 重复工作量,审批分明是同一个活动,非要分多个来画;

b、 无法进行统计,若要对审批这一活动的时间、数量等信息进行统计分析,那么分成了多个活动后就难于进行统计。

c、 资源的分配,假设审批是由一个岗位来负责,且任务压力应该在这个岗位上负载均衡,那么分成了多个活动后这个资源的分配也无从着手。

(4) 含义引申

多路合并的后续路径,是一些相同行为的执行线程,这就类似于另外一种模式——多实例模式。这些线程终有一个需要同步的时候,在业务场景中,这个同步就非常的复杂,如后续步骤为制证,这种业务可以分为以下情况,我们一一举例说明:

a、 强制一对一:一个审批后的单据生成一个财务凭证,那么这些多实例的线程暂时不同步,留到后续步骤。这种管理方式是比较常见的。

b、 强制多对一:同一个报销申请产生的报销单据,需要生成在一个财务凭证上。因此在制证前就需要同步。这种管理方式是比较常见的。

c、 任意多对多:在本场景中,这个不太可能发生,但在一般的物流业务中却非常常见。假设飞机票的审批比较严格,拖得时间比较长,另外两个报销单早批了,那么先将这两个生成同一个财务凭证。这种任意性的规则,一般都是通过人来判断的。

转载于:https://www.cnblogs.com/ipointer/archive/2008/03/24/1119962.html

高级工作流模式深入业务场景分析(1)——多路合并相关推荐

  1. 选型最佳实践|从业务场景分析直播SDK

    摘要 近两年即时通讯/直播产品炙手可热,市场上针对ToB的产品日益增多,企业该如何去选型呢?本文分享了笔者对于直播产品的思考,将从直播SDK实例功能特性.常见业务场景.注意事项及最佳实践等方面介绍如何 ...

  2. WebSocket聊天室业务场景分析

    1. 需求描述 假设需要建立一个Web聊天室,可以理解为QQ的Web版本.首先考虑最简单的需求,即实现用户A和用户B之间的聊天.而实现的技术采用WebSocket.业务场景如下图所示. 2. 场景分析 ...

  3. 【Java 并发编程】线程操作原子性问题 ( 问题业务场景分析 | 使用 synchronized 解决线程原子性问题 )

    文章目录 总结 一.原子性问题示例 二.线程操作原子性问题分析 三.使用 synchronized 解决线程原子性问题 总结 原子操作问题 : 线程中 , 对变量副本 count 进行自增操作 , 不 ...

  4. 微博关注与粉丝业务场景分析

  5. 【金猿产品展】诸葛用户数据分析平台(Insight)——聚焦业务场景数据应用价值挖掘,赋能精细化运营...

    诸葛io产品 本产品由诸葛io投递并参与"数据猿年度金猿策划活动--2020大数据产业创新服务产品榜单及奖项"评选. 大数据产业创新服务媒体 --聚焦数据 · 改变商业 诸葛用户数 ...

  6. 分布式服务架构的设计方案下—通过业务场景浅谈分布式设计思路

    文章目录 分布式业务场景分析 分布式系统提高承载量的基本手段 并发模型(多线程.异步) 缓存/缓冲 硬件故障 资源利用率优化 软件服务内容更新 数据统计 目录服务 消息队列服务(ActiveMQ.Ze ...

  7. 云时代运维转型必读:容器运维模式的五大场景

    来自:DBAplus社群 作者介绍 温峥峰,小鹏汽车互联网中心运维高级经理,专注于运维自动化.DevOps实践.运维服务体系建设与容器运维时代下的价值挖掘.知乎专栏:HiPhone运维之道 其实我挺早 ...

  8. 原型模式的应用场景_23中设计模式(上)

    学习主题:设计模式 学习目标: 对应视频: http://www.itbaizhan.cn/course/id/85.html 对应文档: 无 对应作业 1. 单例模式_应用场景_饿汉式_懒汉式(视频 ...

  9. 现身说法:实际业务出发分析百亿数据量下的多表查询优化

    今天给大家带来的讨论主题是通过实战经验来对百亿数据量下的多表数据查询进行优化,俗话说的好,一切脱离业务的架构都是耍流氓,接下来我就整理一下今天早上微信群里石头哥给大家分享的百亿数据量多表查询架构以及优 ...

最新文章

  1. 为 PHP 应用提速、提速、再提速
  2. Kataspace:用HTML5和WebGL创建基于浏览器的虚拟世界
  3. 网页页面设计如何做到极致舒适感?
  4. Hacker(25)----病毒攻防之认识病毒
  5. U3D临时文件GICache巨大
  6. 快速开发平台网格部件合并单元格。
  7. 哈希表(hashtable)的javascript简单实现
  8. css transtion不生效_CSS中transition属性不起作用的原因及解决方法
  9. Apollo进阶课程㉛丨Apollo ROS概述
  10. 互联网晚报 | 04月05日 星期二 |​ ​​​考研调剂系统明日开通;微软Edge浏览器宣布10天后退出历史舞台...
  11. Oracle触发器1-介绍
  12. HP-lefthand底层结构具体解释及存储灾难数据恢复
  13. jdk完全卸载(亲测jdk1.7.0_80在win7)
  14. aqara (737) -(a俩)_绿米与万科合作?Aqara线下服务商500家,合作有保障
  15. grub清除linux密码,忘了grub密码和root密码时的root密码更改和grub密码清除方法
  16. 中了Viking,抓到CONFIG.EXE,NTDLL32.dll,webpnt.exe等
  17. Python—基础知识之总结(6)
  18. 【图解数据结构】队列全面总结
  19. IT行业前景怎么样,你还有机会吗?
  20. 利用动态二进制加密实现新型一句话木马之Java篇(转) 冰蝎

热门文章

  1. CV Code | 计算机视觉开源周报 20190505期
  2. html5支持哪媒体,html5 支持哪些媒体元素
  3. html5网页制作图文混排,03第3章制作图文混排网页.docx
  4. 【TensorFlow】TensorFlow从浅入深系列之九 -- 教你认识图像识别中经典数据集
  5. CVPR 2021 | 超越卷积,自注意力模型HaloNet
  6. 论文 | 多传感器数据深度图的融合:最近基于深度学习的方法(上)
  7. 前沿 | NVIDIA PyTorch库让3D深度学习研究更简单!
  8. 深度学习与TensorFlow:VGG论文复现
  9. 记录下kaggle比赛经验
  10. Hybrid A*论文解析(1)