知识卡片

BPMN的token机制:流程实例即在模型中流动的token

普通读书笔记卡

内容

BPMN(业务流程模型与标记法)是2004年创建、2011年重大改进、后被ISO收录(ISO/IEC 19510: 2013)的行业标准可执行流程建模语言,此后为保持标准化优势,标记刻意不再变动。一个BPMN流程同时是可视化图形和一份XML文档——这种源码与文档的二元性是它强大的原因:工作流引擎和建模工具需要的信息都在XML里,可视化定义本身又足以让非技术人员快速理解。理解BPMN流程的关键是token:按官方规范,token是”辅助定义正在执行中的流程行为的虚拟概念”,本质上token在BPMN里实现了控制流。可以把每个流程实例都想象成在流程模型里跑动的一个token——流程启动时在开始事件处生成token,每完成一步就沿路径流向下一个任务,遇到决策点就精确走某一条路径,到达结束事件时token被销毁、流程实例随之结束;由于每个流程实例启动都会生成一个token,同一模型上可能同时有多个token在流动,工作流引擎通常会保存token的状态,因为它精确描述了给定实例当前停留(等待)在流程中的哪个位置。作者用开车做类比:十字路口对应决策点,道路系统对应流程模型,车辆选择的具体路径对应流程实例——但这个比喻在讨论并行路径时会失效,因为现实里车不能瞬间分身同时直行又左转,而BPMN的token却可以轻松做到(并行网关会为此生成新token)。

参考来源

- 位置:《流程自动化实战:系统架构和软件开发视角》第3章《开发流程解决方案》"3.1 BPMN""3.1.1 开始事件和结束事件""3.1.2 token:控制流的实现"(源文件:_epub-src/EPUB/xhtml/Section0001_0006.xhtml) - 结论依据:原文说明BPMN既是XML源码又是可视化文档的二元性、给出BPMN官方对token的定义,并用开车类比说明token如何实现流程实例在模型中的流转及并行场景下类比的局限,直接支撑本卡片结论。 - 原始内容:BPMN模型是一个同时包含了源码和文档的制品……根据BPMN规范,token是"一个虚拟概念,用来辅助定义正在执行中的流程的行为"……你可以将每个流程实例当作在流程模型中运行的token。