阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

带你了解DMN

95次阅读
没有评论

共计 1491 个字符,预计需要花费 4 分钟才能阅读完成。

DMN 规范概述

在第 14 章,我们讲解了 Activiti 与规则引擎的整合使用,确切来说,是 Activiti 与 Drools 规则引擎的整合。在 Activiti6 版本发布后,Activiti 开始实现 DMN 规范,换言之,Activiti 正在实现自己的规则引擎,虽然尚未完成,但已具雏形。本章将讲述 DMN 规范以及初步实现的 Activit 规则引擎。

笔者成书时,Activiti 的规则引擎并没有正式发布,官方文档、API 中没有找到相关的资料,本章内容为笔者参考 Activiti 规则引擎模块的源代码编写而成,在以后的 Activiti 版本中,规则引擎的实现及发布的文档,有可能与本书所描述的内容有所冲突,望读者了解该情况。

DMN 的出现背景

DMN 是英文 Decision Model and Notation 的缩写,直译意为决策模型与图形。根据前章节可知,BPMN 是 OMG 公司发布的工作流规范,而 DMN 同样是 OMG 公司发布规范,该规范主要用于定义业务决策的模型和图形,1.0 版本发布于 2015 年,目前最新的是 1.1 版本,发布于 2016 年。

BPMN 主要用于规范业务流程,业务决策的逻辑由 PMML 等规范来定义,例如在某些业务流程中,需要由多个决策来决定流程走向,而每个决策都要根据自身的规则来决定,并且每个决策之间可能存在关联,此时在 BPMN 与 PMML 之间出现了空白,DMN 规范出现前,决策者无法参与到业务中。为了填补模型上的空白,新增了 DMN 规范,定义决策的规范以及图形,DMN 规范相当于业务流程模型与决策逻辑模型之间的桥梁。

虽然 DMN 只作为工作流与决策逻辑的桥梁,但实际上,规范中也包含决策逻辑部分,同时也兼容 PMML 规范所定义的表达式语言。换言之,实现 DMN 规范的框架,同时也会具有业务规则的处理能力。

Activiti 与 Drools

Activiti 作为一个工作流引擎,与规则引擎 Drools 本来没有可比之处,它们之间更像互补关系,但是目前 Activiti 正在实现 DMN 规范,Drools 则实现了 PMML 规范,这样就意味着,Activiti 的工作引擎完成后,也包含了规则引擎的功能,根据 DMN 规范可知,DMN 规范的实现者,也会对 PMML 提供支持。如此一来,Activiti 的规则引擎与 Drools 将产生竞争关系。

JBoss 旗下有工作流引擎 jBPM,有规则引擎 Drools,Activiti 本身就是工作流引擎,再加上此次更新所加入的规则引擎,估计在不久的将来,Activiti 在工作流引擎以及规则引擎领域,能与 JBoss 分庭抗礼。

DMN 的 XML 样例

DMN 主要定义决策模型,与 BPMN 规范类似,OMG 发布的 DMN 规范含有对应的 XML 约束。当前版本的 Activiti 实现了 decision 部分,因此本章只讲述 DMN 中的 decision 部分。DMN 的 XML 文档,一般情况下文件名后缀为 dmn。代码清单 15- 1 是一份简单的 DMN 文档。

代码清单 15-1:codes\15\15.1\sample.dmn

带你了解 DMN

代码清单 15- 1 中的 XML 文档,定义了一个 decision 节点,该节点中含有一个输入参数、一个输出结果和两个规则。注意代码清单的粗体字代码,使用了 startsWith 方法,定义了如果参数字符串以“Angus”开头,则触发第一个规则,如果参数字符以“Paris”开头,则触发第二个规则。关于 XML 文档中各个元素的描述,将在后面章节中讲述。

文章转载自 开源中国社区 [http://www.oschina.net]

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1491字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中