天天看点

bpmn定义之基于规则的决策的dmn

1、基于规则的决策的dmn

dmn是决策模型和表示法的缩写。像bpmn和cmmn一样,它由omg管理。dmn是这三个标准中最新的一个。版本1.0于2015年9月发布。截止到2016年6月,1.1版本已经被采用,也就是我们在本书中提到的版本。

dmn意义上的决策意味着根据定义的逻辑(决策逻辑)从给定的事实(输入)中获得结果(输出)。

与bpmn和cmmn不同,dmn与活动或过程无关。DMN以一种操作上类似的方式工作:决策可以由业务用户建模,然后由决策引擎执行。与bpmn和cmmn的另一个相似之处是,dmn标准规范既包含对表示法的书面描述,也包含基于xml的正式元模型。

dmn标准为决策建模提供了不同的方法。最流行的方法是决策表。在决策表中,您必须定义确定结果所需的特定条件。这个定义必须在技术层面上是可理解的和可实现的——bpmn用户将认识到它是如何与bpmn相对应的——这就是为什么我们使用一种叫做“足够友好的表达语言”(FEEL)的正式语言。feel是dmn标准的一部分,我们将在以后的文章中介绍它。

通常,复杂的决定是由相对简单的决定组成的。以后的文章中我们会描述的决策需求图(DRDs)帮助我们将复杂的决策分解为它们的组件,并使它们更清晰。

与bpmn和cmmn类似,当建模的决策由兼容的决策引擎执行时,dmn的值达到峰值。这有以下优点:

  • 透明度:每个人都可以很容易地了解决策是如何制定的。这些知识不再埋在某些员工的脑袋里,也不再埋在难以理解的应用程序源代码中。
  • 可跟踪性:决策引擎可以自动记录每个决策。可以追溯作出某些决定的原因。

灵活性:决策逻辑可以更容易地适应。它不需要伴随冗长的培训或文件而推出;它可以被部署。在这方面,dmn比bpmn稍好一些,因为更改流程引擎执行的bpmn图对于非程序员来说风险太大。(这可能很难理解——毕竟,添加、移动或删除几个符号有多难呢?没错,但技术流程只是整个应用程序体系结构的一部分,可能会受到小更改的意外后果的影响。dmn决策表也可能发生类似的情况,但结果更容易识别,而且与bpmn不同的是,符号背后没有需要维护的技术属性。因此,业务部门可以更容易地独立于it设计或调整软件解决方案。

活动和决策紧密地交织在业务流程中。BPMN 2.0版本在dmn的第一个版本之前四年就定义了业务规则任务。即使这样,也假定在完成流程时,规则将作为决策的一部分不断进行评估。然而,决策管理这个术语在当时并不常见;我们谈到的是业务规则管理,而业务规则管理解释了BPMN中对该任务类型的描述。cmmn版本1.1引入了决策任务的概念,它在含义和建模上等同于bpmn的业务规则任务。

在下篇文章中,我们将研究如何通过这些任务类型将bpmn和cmmn与dmn结合起来。

本文会持续更新,欢迎关注,技术支持:盘古BPM 

继续阅读