以下是对BPMN、CMMN和DMN三大工作流引擎标准的深度对比分析,从设计哲学、核心能力、适用场景到技术实现进行系统性拆解,帮助您彻底理解“三剑客”的协同价值:
一、本质定位与设计哲学
维度 | BPMN | CMMN | DMN |
---|---|---|---|
核心目标 | 流程自动化(How) 预定义步骤的顺序执行 | 案例管理(What) 目标导向的适应性工作 | 决策逻辑(Why) 规则驱动的自动化推理 |
驱动力 | 预定义路径 + 流程状态 | 事件 + 数据 + 人工干预 | 输入数据 + 业务规则 |
哲学差异 | “铁轨模型”:轨道固定,列车按路线行驶 | “沙盘模型”:目标明确,路径动态调整 | “计算器模型”:输入→规则→输出 |
二、核心建模能力对比
1. BPMN:结构化流程的王者
- 核心元素:
- 顺序流(Sequence Flow)、网关(Gateway)、任务(Task)、事件(Event)、子流程(Subprocess)
- 支持并行(Parallel)、选择(Exclusive)、循环(Loop)等复杂逻辑
- 关键特性:
- 确定性路径:流程走向可预测(如:80%的订单流程按固定路径执行)
- 异常处理:通过边界事件(Boundary Event)捕获中断
- 事务性:支持事务子流程(Transaction Subprocess)实现ACID
2. CMMN:非结构化案例的解决方案
- 核心元素:
- 案例文件(Case File)、计划项(Plan Item)、阶段(Stage)、哨兵(Sentry)
- 事件监听器(Event Listener)、人工任务(Human Task)
- 关键特性:
- 动态响应:通过哨兵监听事件/数据变化触发新任务(如:收到客户邮件→自动创建处理任务)
- 任务生命周期:计划项可处于
Available
/Enabled
/Active
/Completed
等状态 - 回溯性:支持动态添加历史任务(Retroactive)
3. DMN:业务规则的终极抽象
- 核心元素:
- 决策表(Decision Table)、决策树(Decision Tree)
- 输入数据(Input Data)、业务知识模型(Business Knowledge Model)
- 关键特性:
- 可复用性:同一决策服务可被多个流程/案例调用
- 透明化规则:决策表可视化展示业务逻辑(如:信用评分=规则1+规则2)
- 测试驱动:支持独立单元测试验证规则正确性
三、运行时行为差异
场景 | BPMN | CMMN | DMN |
---|---|---|---|
新任务产生 | 由流程节点预定义 | 由事件/数据变化动态触发哨兵生成 | 不产生任务,仅返回决策结果 |
人工干预影响 | 需显式设计异常路径(如补偿处理器) | 用户可随时添加/跳过任务 | 规则执行无人工干预环节 |
状态回溯 | 不支持(需重启流程实例) | 支持动态添加历史任务 | 不涉及状态管理 |
执行效率 | 高(路径预编译) | 中(需实时监听事件) | 极高(纯规则计算) |
四、典型应用场景
BPMN 的主战场
✅ 适用场景:贷款审批、制造业流水线、电商订单处理
❌ 反模式:客户投诉处理(路径不可预测)
CMMN 的杀手锏
graph TB
C[医疗诊断案例] --> D[检查检验]
D --> E[影像学检查]
E --> F{发现肿瘤?}
F -->|"Yes"| G[病理活检]
F -->|"No"| H[结束]
G --> I[制定治疗方案(方案可能随时调整)] %% 方案可能随时调整
✅ 适用场景:保险理赔、法律案件、急诊分诊
❌ 反模式:工资计算(完全结构化)
DMN 的价值高地
|| 客户等级 || 订单金额 || 折扣率 ||
| 黄金 | >10000 | 15% |
| 白银 | >5000 | 10% |
| 普通 | * | 5% |
✅ 适用场景:保险费率计算、信用风险评估、促销策略
❌ 反模式:项目风险管理(需动态任务协作)
五、技术协同模式
1. BPMN + DMN:黄金组合
💡 将业务规则从流程中解耦,提升可维护性
2. CMMN + DMN:智能案例
💡 在动态案例中嵌入自动化决策点
3. 三引擎融合:终极解决方案
六、选型决策树
关键结论
- 拒绝“银弹思维”:
- 用BPMN做客户服务案例 → 流程频繁变更 ❌
- 用CMMN做工资计算 → 过度设计 ❌
- 协同价值 > 单引擎能力:
DMN为BPMN/CMMN提供“决策即服务”,三者形成完整自动化闭环 - 技术实现考量:
- Flowable/Camunda等引擎原生支持三标准
- 避免跨引擎数据孤岛(需统一上下文传递机制)
🔍 行动建议:从您的业务中识别一个典型场景(如供应链管理),尝试分别用BPMN、CMMN、DMN建模片段,体会差异。例如:
- 采购流程(BPMN)
- 供应商纠纷处理(CMMN)
- 采购折扣审批规则(DMN)