java规则引擎有哪些

1.Drools

Drools提供了核心业务规则引擎(BRE),Web UI和规则管理应用程序(Drools Workbench),对符合性级别3的决策模型和注释(DMN)模型的完整运行时支持,以及用于核心开发的Eclipse IDE插件及Idea插件。

Drools是一个基于Charles Forgy’s的RETE算法的,易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师人员或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。

2.Aviator

Aviator是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。Aviator的设计目标是轻量级和高性能,加上依赖包也才450K;当然,Aviator的语法是受限的,它不是一门完整的语言,而只是语言的一小部分集合。简单来说,Aviator的定位是介于Groovy这样的重量级脚本语言和IKExpression这样的轻量级表达式引擎之间。

3.EasyRule

EasyRule是轻量级的规则引擎API。它提供Rule抽象来创建带有条件和动作的规则,以及RulesEngine通过一组规则运行以测试条件和执行动作的API。EasyRule具有一些核心特点:轻量级规则引擎API;基于注释和POJO;支持复合规则构造;支持表达语言(如MVEL和SpEL)来定义规则。

4.RuleBook

RuleBook是基于java8 lambda 模式的规则引擎,提供轻量级和基于POJO的框架来定义业务。它可以通过使用复合模式从原始规则创建复杂规则。与最传统的规则引擎相比,此框架不使用XML文件或任何域特定语言文件来将规则与应用程序隔离。它使用基于注释的类和方法将业务逻辑注入应用程序。此外,Easy Rules可以方便开发人员使用与应用程序本身完全分离的业务逻辑来创建和维护应用程序。另一方面,由于此框架未实现JSR94标准,因此业务逻辑必须直接编码为Java代码。

5.OpenLTablets

OpenLTablets是一个业务规则管理系统和一个基于Excel决策表的业务规则引擎。由于此框架使用的表格格式对业务用户来说很熟悉,因此它弥合了业务用户和开发人员之间的差距。

延伸阅读

什么是规则引擎

规则引擎是根据一些算法执行规则的一些列软件系统。规则引擎整合了传入系统的Fact集合和规则集合,从而去触发一个或多个业务操作。在拥有大量规则和Fact对象的业务系统中,可能会出现多个Fact输入都会导致同样的输出,这种情况我们通常称作规则冲突。规则引擎可以采用不同的冲突解决方案来确定冲突规则的执行顺序。

在规则引擎中,通常有两种执行方式:

正向链接:这是一种基于“数据驱动”的形式,基于插入的Fact对象和Fact对象的更新,规则引擎利用可用的Fact推理规则来提取出更多的Fact对象,直到计算出最终目标,最终会有一个或多个规则被匹配,并计划执行。因此,规则引擎始于事实,始于结论。

反向链接:这是一种基于“目标驱动”或推理形式,与正向链接相反。反向链条从规则引擎假设的结论开始,如果不能够直接满足这些假设,则搜索可满足假设的子目标。规则引擎会循环执行这一过程,直到证明结论或没有更多可证明的子目标为止。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注