一、“规则引擎”介绍
规则引擎是由推理引擎变化而来,并不特指某个技术框架,它可以是一个系统,也可以是一个软件的适配类组件,甚至是软件本身。规则引擎主要作用是管理和执行规则,将复杂化的执行过程通过简易的规则组合拆分,通过特定的规则组合,降低业务逻辑的复杂程度和后期维护成本,同时提高其可扩展性。
二、Drools规则引擎介绍
1.背景
Drools 是用 Java 语言编写的开源规则引擎,是KIE(知识就是一切)项目的一部分,基于Charles Forgy的RETE算法的规则引擎实现。其使用 ReteOO算法执行规则。支持使用自然语言表达业务逻辑,也可以使用 Java/Groovy/Python + XML 语法编写规则。 早期的版本一般由开发人员通过开发工具插件来定义规则,目前已有Drools Workbench通过web服务提供给业务人员维护规则。 Drools 还具有以下优点:
非常活跃的社区
生态不断的完善中
JSR 94 兼容(JSR 94 是 Java Rule Engine API)
免费
Drools规则引擎基于以下抽象组件实现:
- 规则(Rules):业务规则或DMN决策。所有规则必须至少包含触发该规则的条件以及对应的操作。
- 事实(Facts):输入到规则引擎的数据,用于规则的条件的匹配。
- 生产内存(Production memory):规则引擎中规则存储的地方
- 工作内存(Working memory):规则引擎中Fact对象存储的地方。
- 议程(Agenda):用于存储被激活的规则的分类和排序的地方。
当用户或系统在Drools中添加或更新规则相关的信息时,该信息会以一个或多个事实的形式插入Drools规则引擎的工作内存中。Drools规则引擎匹配事实和存储在

本文详细介绍了规则引擎的概念及其在Drools中的应用,包括Drools的背景、DRL文件的使用、规则结构、Maven依赖及实战示例。重点展示了如何使用Drools进行规则定义、编译和运行,以及在Java项目中的集成方法。


5147

被折叠的 条评论
为什么被折叠?



