知识卡片
工作流范式与驳斥XML过时论:为何BPMN是更成熟的选择
内容
判断一门流程建模语言是否足够成熟、能否覆盖所需场景,可以对照Workflow Patterns给出的范式清单——它系统定义了工作流语言/业务建模语言在控制流、数据、资源、异常处理等方向上应支持的各种模式,本身不涉及具体实现,可用来检查某个工作流语言或系统的能力边界。BPMN实现了其中大多数范式,而像AWS Step Function所用的Amazon State Language这类语言只实现了其中一部分。一个反复出现的现象是:自定义流程建模语言常以”比BPMN更简单”为卖点,但这种”简单”往往意味着缺失重要范式,随着这些工具逐渐补全范式,语言复杂度几乎不可避免地趋近BPMN,只不过是各家专有、互不通用的复杂度——这引出一个根本问题:既然已有BPMN这样成熟且开放的标准,为什么还要造一门专有语言。选型时另一个常见的直觉式反对理由是”BPMN序列化成XML太老了”,以及”XML文件难以diff和merge”,但这两点经不起推敲:很少有两个人会同时修改流程模型中的同一个元素,只要遵循”不触碰不想改的元素、没必要就不重新排版”这条和处理普通源码相同的规则,XML作为文本文件依然容易做差异对比与合并——选择流程建模语言时真正该审视的是它支持哪些行为(决定成熟度和建模能力上限)以及图形化相对表格/文本能带来什么价值,而不是凭”XML显得旧”这类主观印象做判断。
参考来源
- 位置:《流程自动化实战:系统架构和软件开发视角》第5章《选择工作流引擎和BPMN》"5.2 流程建模语言""5.2.1 工作流范式"(源文件:_epub-src/EPUB/xhtml/Section0001_0008.xhtml)
- 结论依据:原文说明Workflow Patterns作为范式清单的检验作用、自定义语言"简单卖点"背后复杂度趋同BPMN的现象,并逐条驳斥"XML过时"与"diff/merge困难"两个常见反对理由,直接支撑本卡片结论。
- 原始内容:Workflow Patterns只是定义了范式,而不是任何类型的实现。BPMN实现了其中大多数的范式……总的来说,反对XML的两个观点(它太古老,并且很难合并)经不起推敲。