DMN 1.1 XML:使用Drools 7.0从建模到自动化

我是一名自由顾问,但今天我是一名博士生。 本文的全球背景是企业架构(EA),它需要对企业进行建模。 由于EA的一个方面是业务流程建模,所以我使用BPMN已有数年之久,但是这种表示方式并不十分适合表示决策标准:一叠嵌套的网关很快变得难以理解,然后进行修改。 因此,当OMG在2014年(在本文开始时)发布DMN规范的第一个1.0 Beta版时,我发现DMN是模型决策的一个非常有趣的符号。 我通过使用Sirius插件(用于Eclipse)成功开发了基于DMN元模型的DMN建模工具。 但实际上,即使是下一个DMN规范的“最终”版本1.0也不是很完善。

DMN的最新版本1.1(于2016年6月发布)相当不错。 同时,软件编辑器(至少二十个)已经启动了良好的建模工具,如本文所使用的Signavio Decision Manager(免费供学者使用)。 这个Signavio工具已经能够生成特定的DRL文件,以便在BRMS Drools当前版本6上运行DMN模型。除了图形,一些编辑器最近还添加了将DMN模型(图表和决策表)导出到“ DMN 1.1 XML”的功能。 ”文件,该文件符合DMN规范。 现在,好消息是像Drools这样的BRMS(未来版本7,已经在Beta版本中提供)能够运行这些DMN文件来自动进行决策(调用这些高级DMN模型需要几行Java代码) )。

直接处理“ DMN 1.1 XML”交换模型的这种新方法更适合于工具独立性和模型可移植性。 这是使用工具Signavio Decision Manager(最新版本10.13.0)在以前的经典但特定的解决方案与这个新的通用解决方案之间的简短比较。 MDA(模型驱动的体系结构)及其三种模型CIM,PIM和PSM为我们提供了适合此比较的阅读网格:

3个MDA模型
描述
经典特定DMN解决方案
来自Signavio Decision Manager
到BRMS Drools
CIM(计算
独立模型)
业务表示模型,
独立于计算机考虑因素
DRD(决策需求图)
+决策表
PIM(平台
独立模型)
计算设计模型
独立于执行平台
û
PSM(平台
具体型号)
计算设计模型
特定于执行平台
DRL(Drools规则语言)
+ DMN公式Java8-1.0-SNAPSHOT.jar

因此,在经典但特定的DMN解决方案中,Signavio Decision Manager能够从业务DMN模型(DRD图和决策表)直接为Drools规则引擎导出DRL文件。 因此,该解决方案跳过了中间PIM级别,该级别与MDA概念不太兼容。 请注意,此DRL文件需要具有DMN公式的特定Signavio的jar库。

3个MDA模型
描述
新的通用DMN解决方案
来自Signavio Decision Manager(或其他工具)
到BRMS Drools(或其他BRMS)
CIM(计算
独立模型)
业务表示模型,
独立于计算机考虑因素
DRD(决策需求图)
+决策表
PIM(平台
独立模型)
计算设计模型
独立于执行平台
DMN 1.1 XML(交换模型)
包含FEEL表达式
PSM(平台
具体型号)
计算设计模型
特定于执行平台
û

借助新的通用DMN解决方案,Signavio Decision Manager现在能够从相同的业务DMN模型(DRD图和决策表)导出“ DMN 1.1 XML”交换模型,该模型是PIM,独立于执行平台。 由于将来的Drools 7.0.0版本将能够直接解释“ DMN 1.1 XML”格式,因此特定于执行平台的最后一级PSM不再有用。

新的通用DMN解决方案在不跳过PIM级别的情况下,听起来绝对比特定解决方案要好,并且是自动化决策的良好基础。 正如Signavio所说,另一个优势是,这种使用“ DMN 1.1 XML”的新方法减少了供应商的锁定。

翻译自: https://www.javacodegeeks.com/2017/03/dmn-1-1-xml-modeling-automation-drools-7-0.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql安装模块解释_MySQL的模块不能安装的解决方法_MySQL

我们最常用的 DBD::mysql 模块,我发现是难住很多人的地方.因为安装老是失败,下面我介绍一下解决方法,比如我使用 cpanm 安装,有时就出 /home/nue2501j/work/DBD-mysql-4.010/blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: DBIc_TRACE_LEVEL at /usr/lib/perl5/5.8.5/i…

nginx访问目录是没加/的重定向控制

static 模块提供了root与alias功能;发现目标是目录时;但URI末尾未加/时;会返回301重定向;重定向后会加/ 指令 Syntax: server_name_in_redirect on | off;# 控制返回那个域名 Default: server_name_in_redirect off; Context: ht…

oracle mysql 字段_Oracle和MySQL修改字段

一、修改字段名:Oracle:ALTER TABLE tableName RENAME COLUMN oldColumnName TO newColumnName;eg: ALTER TABLE web RENAME COLUMN wen_name TO web_name;MySQL:ALTER TABLE tableName CHANGE oldColumnName newColumnName newColumnDataTyp…

Kafka REST Proxy for MapR Streams入门

介绍 MapR生态系统软件包2.0(MEP)随附了一些与MapR流有关的新功能: MapR Streams的Kafka REST代理为MapR Streams和Kafka集群提供RESTful接口,以使用和生成消息并执行管理操作。 Kafka Connect for MapR Streams是一个实用程序&…

开张大吉

在Windows的天地中做了五年开发之后,又跑到了开源的Linux/Java世界遨游了五年,于最近半年,又重新回到M$阵营。这半年来,迫于项目进度的压力,较少与他人交流,项目中虽然采用了VS2003,但是运用的思…

mysql四种输入_mysql四种事务隔离级别

mysql事务并发问题ACID什么的就不啰嗦了。mysql多个事务并发的时候,可能会出现如下问题:1. 更新丢失即两个事务同时更新某一条数据,后执行的更新操作会覆盖先执行的更新操作,导致先执行的更新结果丢失。2. 脏读即一个事务会读到另…

apache hadoop_春天遇见Apache Hadoop

apache hadoopSpringSource 刚刚宣布了适用于Apache Hadoop的Spring的第一个GA版本 。 该项目的目的是简化基于Hadoop的应用程序的开发。 您可以下载该项目在这里 ,并检查了Maven的文物在这里 。 Apache Hadoop的Spring诞生是为了解决Hadoop应用程序构建不良的问题…

sinacloud webpy mysql_Mysqldb和webpy的安装

1.首先安装mysqlsudo apt-get install mysql-server2.然后安装libmysqld-dev和libmysqlclient-dev,否则在安装Mysqldb的时候会报找不到mysql_config文件sudo apt-get install libmysqld-devsudo apt-get install libmysqlclient-dev修改site.cfg中的mysql_config的配…

消费者驱动的Pact和Spring Boot测试

最近,我的一位同事偶然发现了Pact.io ,我们的当前应用程序已发展到50多种服务,并且我们开始出现一些集成测试失败和脆弱的开发/验收测试环境。 因此,我们决定研究尝试与此相关的方法。 我从阅读开始: https : //docs.…

python空格怎么加密_使用Python的RSA加密

如果您想使用python高效地编码RSA加密,我的github存储库肯定会理解和解释python中RSA的数学定义RSA密钥生成def keyGen(): Generate Keypair i_prandint(0,20)i_qrandint(0,20)# Instead of Asking the user for the prime Number which in case is not feasible,# …

MySQL中字符串函数详细介绍

MySQL字符串函数对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str)返回字符串str的 最左面字符的ASCII代码值。如果str是空字符串, 返回0。如果str是NULL,返回NULL。 mysql> select ASCII(2);-> 50mysql> select ASCII(2)…

java 转储快照分析_分析Java核心转储

java 转储快照分析在本文中,我将向您展示如何调试Java核心文件,以查看导致JVM崩溃的原因。 我将使用在上一篇文章: 生成Java Core Dump中生成的核心文件。 您可以通过以下几种方法来诊断JVM崩溃: hs_err_pid日志文件 当JVM中发生…

zbox mysql_20190213云服务器部署禅道

1.系统环境:腾讯云服务器;Centos 7.02.工具:禅道的压缩包(需要是tar.gz文件名的)、Xshell、Xftp;3.安全组规则的设置;4.端口号的设置以下为详细步骤:需要在空白的服务器上去进行操作。还需要再琢磨的。1、x…

Java编程语言的历史和未来

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用! 作为Internet上著名的编程语言 ,Java对人们如何浏览数字世界产生了深远的影响。 Java功能设置了用户对他们访问互联网的设备的性能期望的…

fmdb和mysql的区别_FMDB

什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,我们可以很方便的对数据库中的数据进行增、删、改、查操作数据库类型数据库可以分为2大种类关系型数据库(主流)关系型数据库(主流)对象型数据库常用关系型数据库PC端:Oracle、MySQL、SQL S…

RabbiqMQ快速入门

RabbitMQ 官网地址: https://www.rabbitmq.com/ 一个遵循AMQP协议,开源面向消息的中间件,支持多种编程语言。 Rabbitmq 能做什么? 逻辑解耦,异步的消息任务消息持久化,重启不影响削峰,大规模的消息处理主要的特点 可靠性&#xf…

Java命令行界面(第13部分):JArgs

JArgs 1.0的区别在于,这是我的第13篇文章的主题,该文章是关于Java命令行参数解析的。 JArgs是一个开放源代码( BSD许可证 )库,主要由Steve Purcell和Ewan Mellor等 不同的贡献者支持。 事实证明,这在第一次…

pthread vs openMP之我见

前两天看了些并行计算的文章,了解了一些并行计算的方法和原理。然后发现多线程实现里面还有个openMP,这个以前从来没见过(火星了),之前只是知道pthread线程库和微软也实现了一套线程。又看了看openMP的一些教程才知道它…

线程池默认多少个线程_我需要多少个线程?

线程池默认多少个线程这取决于您的应用程序。 但是,对于那些希望对如何从生产站点购买的所有昂贵内核中挤出大量资金的人,请多多包涵,我将阐明围绕多线程 Java应用程序的奥秘。 内容针对最典型的Java EE应用程序进行了“优化”,该…

mysql error writing_MySQL:Error writing file (Errcode: 28)解决方法

问题描述:在执行创建表语句时提示:mysql> CREATE TABLE cash_request (id int(11) NOT NULL auto_increment,dev_id int(11) NOT NULL,bank_account_info varchar(255) NOT NULL,money int(11) NOT NULL,status tinyint(1) NOT NULL default 1,is_fan…