Drools 7.67.0 + DMN 1.2 + SpringBoot3 构建规则引擎
背景:基于项目工作的需要,要建立一个规则引擎的应用集中式的管理业务中的规则流程等,所以先探索一个MVP
1.什么是规则引擎, 同类竟品?
规则引擎的主要思想是将应用程序中的业务决策部分分离出来,并使用预定义的语义模板编写业务决策(业务规则),由用户或开发者在需要时进行配置、管理。需要注意的的规则引擎并不是一个具体的技术框架,而是指的一类系统,即业务规则管理系统。规则引擎实现了将业务决策从应用程序代码中分离出来,接收数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎其实就是一个输入输出平台。
2.Drools规则引擎
2.1 规则引擎构成
Drools规则引擎由以下三部分构成
1.Working Memory(工作内存) 2.Rule Base(规则库) 3.Inference Engine(推理引擎)
其中Inference Engine(推理引擎)又包括
1.Pattern Matcher(匹配器) 2.Agenda(议程) 3.Execution Engine(执行引擎)
2.2 基于上图的各组件的说明
1.Working Memory:工作内存,Drools规则引擎会从Working Memory中获取数据并和规则文件中定义的规则进行模式匹配,
所以我们开发的应用程序只需要将我们的数据插入到Working Memory中即可。 2.Fact:事实,是指在Drools规则应用当中,将一个普通的javaBean插入到Working Memory后的对象就是Fact对象。
Fact对象是我们的应用和规则引擎进行交互的桥梁或通道。 3.Rule Base:规则库,我们在规则文件中定义的规则都会被加载到规则库中。 4.Pattern Matcher:匹配器,将Rule Base中的所有规则与Working Memory中的Fact对象进行模式匹配,匹配成功则被激活并放入Agenda中。 5.Agenda:议程,用于存放通过匹配器进行模式匹配后被激活的规则。 6.Execution Engine:执行引擎,执行Agenda中被激活的规则。
2.3 KIE介绍
在操作Drools时经常使用的API以及他们之间的关系如下图
通过上面的API可以发现,大部分类都是以Kie开头。Kie全称为Knowledge is Everything,即“只是就是一切”的缩写,是Jboss一系列项目的总称。如下图所示,Kie的主要模块有OptaPlanner、Drools、UberFire、jBPM。可以看到,Drools是整个KIE项目中的一个组件,Drools中还包括一个Drools-WB的模块,他是一个可视化的规则编辑器。
3.什么是DMN?
DMN全称Decision Model and Notation(决策模型和符号、决策模型和表示法),是一种用于表示业务决策和规则的规范,旨在帮助参与决策的人都能简单快速理解决策过程。DMN是由OMG(Object Management Group,对象管理组织)管理的一种规范,该组织下比较知名的还有UML等。
3.1 DMN的关键组件和DMN的规则表达式FEEL
可参红帽毛官方的指导文档
DMN编辑插件
4.SpringBoot3集成Drools
项目地址:https://github.com/showkawa/springb/tree/main/src/main/java/com/kawa/springb
5.DMN在AI领域的可发挥的作用?
在AI领域,DMN可以和机器学习、专家系统等技术结合使用。例如,一个复杂的AI系统可能会使用机器学习模型来处理大量的输入数据,并生成一些初步的结果。然后,
这些结果可以被输入到一个DMN决策模型中,以便应用更高级别的业务规则和逻辑。此外,DMN也可以用于解释AI决策。由于DMN模型可以被人类理解,因此它们可以用来解释
AI系统是如何根据输入数据做出决策的。这对于提高AI系统的透明度和可信度非常重要。然而,虽然DMN在某些情况下可以和AI技术结合使用,但它并不是AI技术本身。
DMN是一种决策建模工具,而AI是一种用于处理和理解数据的技术。 DMN(Decision Model and Notation)在AI领域的应用还可以包括以下几个方面: 1. 自动化决策制定:AI系统经常需要做出复杂的决策。通过使用DMN,我们可以创建详细、精确且可执行的业务规则模型来指导这些决策过程。这种方式不仅提高了效率,
也使得结果更加可预测和一致。3. 解释性AI (Explainable AI): DMN 可以作为一个工具帮助人们理解和信任 AI 决策过程。例如,在金融服务中,如果一个贷款申请被拒绝, 使用 DMN
的逻辑模型能够清晰地展示哪条规则或条件导致了该结果, 这样就增强了系统对用户而言的透明度. 2. 集成与协同工作: 在许多情景下, 机器学习算法生成预测值是第一步, 然后再结合业务规则进行最后决定输出(如风险评估、审批流程等). 这时候就需要把ML和
Rule Engine 结合起来共同工作. 3. 优化决策过程:在某些情况下,AI系统可能需要处理大量的决策变量和约束条件。DMN可以帮助建立一个清晰的决策模型,使得优化算法能够更有效地找到最优解。 4. 模拟和预测:DMN模型可以用于模拟不同的决策路径和结果,从而帮助预测未来的业务情况。这对于战略规划和风险管理非常有用。
Drools DMN15分钟简易教学:https://learn-dmn-in-15-minutes.com
Drools DMN教学:https://www.drools.org/learn/dmn.html