什么是规则引擎

规则引擎由推理引擎发展而来,主要实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策,接受数据输入,解释业务规则,并根据业务规则作出业务决策。

通俗的说,就是将代码中的if...else...逻辑提取到规则引擎的规则库中单独存储,规则的变化与修改也不在依赖应用程序的改变即可实现。

规则 引擎解决了哪些问题

  • 将业务规则与应用程序解耦,独立存储与部署。
  • 可以低成本的、快速的由业务人员直接更新业务规则,无需开发人员的参与。
  • 开发人员可以不必理解业务规则而进行开发,降低了开发成本与开发难度,提高开发效率,提升程序的扩展性与可维护性。

市面上比较有名的规则引擎

  • 开源的代表:Drools
  • 商业的代表:iLog、VisualRules

Drools介绍

KIE(Knowledge Is Everything)是jboos公司的一个综合项目,Drools是其中的一个项目。
Drools是一个业务规则管理系统,具有基于前向链和后向链推理的规则引擎,可以快速可靠地评估业务规则和复杂事件处理。
规则引擎也是创建专家系统的基本构建块,在人工智能中,专家系统是模拟人类专家决策能力的计算机系统。

官方文档地址

Drools中的重要库

  • Knowledge-api.jar:这提供了接口和工厂。它还有助于清楚地显示什么是用户 API,什么是引擎 API。
  • Knowledge-internal-api.jar:提供内部接口和工厂。
  • drools-core.jar:这是核心 Drools 引擎,运行时组件。包含 RETE 引擎和 LEAPS 引擎。如果您正在预编译规则(并通过 Package 或
    RuleBase 对象进行部署),则这是唯一的运行时依赖项。
  • drools-compiler.jar:这包含编译器/构建器组件以获取规则源,并构建可执行的规则库。这通常是您的应用程序的运行时依赖项,但如果您正在预编译规则,则不必如此。这取决于drools-core。
  • drools-jsr94.jar:这是符合 JSR-94 的实现,它本质上是在 drools-compiler 组件之上的一层。请注意,由于 JSR-94
    规范的性质,并非所有功能都可以通过此接口轻松公开。在某些情况下,直接使用 Drools API 会更容易,但在某些环境中,JSR-94 是强制性的。
  • drools-decisiontables.jar:这是决策表“编译器”组件,它使用 drools-compiler 组件。这支持 excel 和 CSV 输入格式。

Docker部署DroolsWorkBench与KieServer

链接地址

规则引擎drools语法整理

链接地址