常见的规则引擎(Drools,RuleBook,Easy Rules等)对比
参考文章: https://www.jianshu.com/p/96cd60059aae
规则引擎调研 - 人在江湖之诗和远方 - 博客园
java开源规则引擎比较_常用规则引擎比较分析_学校砍了我的树的博客-CSDN博客
Drools等规则引擎技术对比分析 - xuzhujack - 博客园
常见开源规则引擎对比分析_大海梦想的博客-CSDN博客_开源规则引擎
不同规则引擎的对比_qq_44996414的博客-CSDN博客_java 开源规则引擎比较
一、规则引擎简介
1.开源规则引擎
- JBoss Drools
- Mandarax
- OpenRules
- JEOPS
- InfoSapient
- Roolie
- Apache Camel
Aviator
2.商业规则引擎
- ODM(ILOG)
- Oracle Business Rules
- 旗正规则引擎
- Jess(可研究,商用收费)
- TopRules
- 明策智能决策
- Blaze
- 益博睿决策引擎
3. 其它方面对比
(1) 常见开源规则引擎对比
规则引擎 | 访问地址 | 现状 | 是否开源 |
drools | https://github.com/kiegroup/drools/ | 活跃 | 是 |
OpenL Tablets | https://github.com/openl-tablets/openl-tablets | 活跃 | 是 |
RuleBook | https://github.com/deliveredtechnologies/rulebook | 2years未更新 | 是 |
Easy Rules | https://github.com/j-easy/easy-rules | 2years未更新 | 是 |
gengine |
https://github.com/rencalo770/gengine gengine |
国内, 2years未更新 | 是 |
urule | https://github.com/youseries/urule | 国内, 2 years 未更新 | 是 |
ice |
项目简介 | ice https://github.com/zjn-zjn/ice |
国内, 目前活跃 | 是 |
WebSphere ILog | 否 |
(2) WebSphere ILOG与CKRule对比
WebSphere ILOG | CKRule | |
定位 |
大型商用 |
敏捷轻量 |
部署 |
需要Web服务器支持 | 可以部署为服务,也可以直接DLL引用 |
语言 |
Java,.Net,C++等全面支持,Java最成熟。 |
只支持.Net |
编写 |
使用Eclipse编写基础脚本 |
使用CKRule自带编辑器 |
价格 |
像IBM的服务器一样 | 像神州的PC一样 |
学习 |
学习成本较高 |
对掌握C#的朋友,基本没成本 |
(3) easy-rules与Drools对比:
easy-rules | Drools | |
学习成本 | 低 | 高 |
维护成本 | 低 | 高 |
规则编排能力 | 较弱 | 强 |
执行效率 | 较低 | 高 |
是否开源 | 开源 | 开源 |
一、Drools
Drools 是用Java语言编写的开放源码规则引擎,基于Apache协议,基于RETE算法,于2005年被JBoss收购。
Drools是一个绝对重量级的规则引擎,很多像金融行业、电信行业的大公司都在使用它作为规则引擎。
Drools通过 事实、规则和模式相互组合来完成工作,drools在开源规则引擎中使用率最广,但是在国内企业使用偏少,保险、支付行业使用稍多。
Drools 是业务逻辑集成平台,被分为5个项目:
Drools Workbench (web UI )
Drools Expert (business rules engine)
Drools Fusion (complex event processing features)
jBPM (process/workflow integration for rule orchestration/flow)
OptaPlanner (automated planning)
Drools 可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。
优点:
- 最活跃的开源规则引擎, 非常活跃的社区支持
- 易用
- 快速的执行速度
- 在 Java 开发人员中流行
- 基于java的规则引擎, 与 Java Rule Engine API(JSR 94)兼容
- 易于访问企业策略、易于调整以及易于管理
- 符合业内标准,速度快、效率高
- 简化系统架构,优化应用。
- 提高系统的可维护性和维护成本。
- 方便系统的整合。
- 减少编写“硬代码”业务规则的成本和风险。
- 参考:https://github.com/kiegroup/drools&&https://www.drools.org/
- AgendaFilter筛选规则参考:https://blog.csdn.net/a294634473/article/details/89456645
缺点:
- 业务分析师无法独立完成规则配置:由于规则主体DSL是编程语言(支持Java, Groovy, Python),因此仍然需要开发工程师维护
- 规则规模变大以后也会变得不好维护,相对硬编码的优势便不复存在
- 规则的语法仅适合扁平的规则,对于嵌套条件语义(then里嵌套when…then子句)的规则只能将条件进行笛卡尔积组合以后进行配置,不利于维护。
- 使用复杂
二、Ilog JRules
最有名的商用BRMS。
Ilog JRules是完整的业务规则管理系统(BRMS),它提供了对整个企业业务规则进行建模、编写、测试、部署和维护所必需的所有工具。
IBM WebSphere ILOG JRules 是目前业界领先的业务规则管理平台。与传统的由 IT 人员用硬代码来维护规则的做法不同,ILOG JRules 让业务用户能够在不依赖或者有限依赖于 IT 人员的情况下,快速创建、修改、测试和部署业务规则,以满足经常变化的业务需求。ILOG JRules 提供了一整套的工具,帮助开发人员和业务人员进行规则的全生命周期管理。
基于Rete算法实现。
主要组件:
1、Rule Studio(RS) 面向开发人员使用的开发环境,用于规则的建模和编写。
2、Rule Scenario Manager 规则测试工具。
3、Rule Team Server(RTS) 基于Web的管理环境,面向业务人员使用,用于规则发布、管理、存储。
4、Rule Execution Server(RES) 面向运维人员使用,用于规则执行、监控。
三、Easy Rules
Easy Rules 是一款 Java 规则引擎,是轻量级的规则引擎API,它提供Rule抽象来创建带有条件和动作的规则,以及RulesEngine通过一组规则运行以测试条件和执行动作的API。
它的诞生启发自有Martin Fowler 一篇名为 “Should I use a Rules Engine?” 文章。
Easy Rules 提供了规则抽象来创建带有条件和操作的规则,以及运行一组规则来评估条件和执行操作的RulesEngine API。
特性:
- 轻量级框架和易于学习的API。
- 通过高效的抽象来定义业务规则并轻松应用它们。
- 支持创建复合规则。
- 使用表达式语言定义规则的能力。
- 轻量级框架,学习成本低,傻瓜式的基于pojo的规则引擎
- 使用简单,也比较强大,
- 支持bdd模式的规则处理,对于java 系统的集成很友好
- 支持基于文件的规则加载
- 接口可扩展,可自己添加基于db以及s3模式的处理,内置的Listener也是很不错的监控点,方便我们进行规则审计存储
- 几个主要的类或接口:Rule,RulesEngine,RuleListener,Facts
- 几个主要的注解:@Action,@Condition,@Fact,@Priority,@Rule
- 参考:https://github.com/j-easy/easy-rules
四、OpenL Tablets
OpenL Tablets(http://openl-tablets.org/)是基于Excel文档的业务规则管理系统和业务规则引擎。基于独特的概念,OpenL Tablets有助于将包含业务逻辑规范的业务文档视为可执行源代码。由于企业用户熟悉OpenL Tablets使用的表格式,因此OpenL Tablets弥补了企业用户和开发人员之间的鸿沟,从而减少了昂贵的企业软件开发错误,并大大缩短了软件开发周期。 简单来说,可以将OpenL Tablets视为表处理器,该处理器可从Excel文档中提取表并可以通过应用程序访问。
OpenL Tablets主要优点:
- OpenL Tablets消除了软件实施与业务文档,规则和策略之间的鸿沟。
- 业务规则对开发人员变得透明。
- OpenL Tablets验证所有项目文档数据中的语法和类型错误,从而提供方便且详细的错误报告。 OpenL Tablets可以直接指向Excel文档中的问题。
- OpenL Tablets提供了计算解释功能,可以通过指向原始文档中的源参数来扩展任何计算结果。
- OpenL Tablets使用户能够创建和维护测试,以确保所有规则的可靠工作。
- OpenL Tablets在所有项目文档中提供交叉索引和搜索功能。
- OpenL Tablets通过其业务规则管理应用程序提供完整的规则生命周期支持。
- OpenL Tablets支持.xls和.xlsx文件格式。
OpenL Tablets业务规则引擎(BRE)和业务规则管理系统(BRMS)。它包含以下主要组件:
Business Rules Engines(业务规则引擎)
WebStudio
Web services(web服务)
Rule repository(基于JCR的实现的规则库)
五、Jess
Jess是Java平台上的规则引擎,它是CLIPS程序设计语言的超集,由Sandia国家实验室的Ernest Friedman-Hill开发,商用收费。Jess提供适合自动化专家系统的逻辑编程,它常被称作“专家系统外壳”。近年来,智能代理系统也在相似的能力上发展起来。(资源少,学习成本高)。
基于Rete算法实现。
六、Aviator
Aviator是一个高性能、轻量级的java语言实现的表达式求值引擎,主要用于各种表达式的动态求值。
规则简单:qlexpress或者avaitor;规则复杂:drools
优点:足够轻量级,社区活跃度较好,最新jar包更新于22年4月
详见:Aviator学习笔记
特征:
- 支持大部分运算操作符,包括算术操作符、关系运算符、逻辑操作符、位运算符、正则匹配操作符(=~)、三元表达式?: ,并且支持操作符的优先级和括号强制优先级。
- 支持大整数和精度运算(2.3.0版本引入)
- 内置支持正则表达式匹配,类似Ruby、Perl的匹配语法,并且支持类Ruby的$digit指向匹配分组。
- 自动类型转换,当执行操作的时候,会自动判断操作数类型并做相应转换,无法转换即抛异常。
七、Visual Rules
商业版本。
旗正VisualRules是由国家科技部和财政部的创新基金支持,专门针对国内规则引擎市场空白的情况,结合国内项目的特点而开发的一款业务规则管理系统(BRMS)产品。(资源少,学习成本高)。
(旗正规则引擎)国内商业规则引擎品牌,可以认为是ILOG的本土版本。
基于Rete算法实现。
八、Mandarax
一个规则引擎的纯Java实现。基于反向推理(归纳法)。
基于Rete算法实现。
九、RuleBook
- 基于java8 lambda 模式的规则引擎,使用灵活
- 参考:https://github.com/deliveredtechnologies/rulebook
十、其它
JLisa
JLisa是一个利用java构建商业规则的强大框架。它实现了JSR94 Rule Engine API。
JLisa - A Rule Engine for Java
OpenRules
OpenRules基于java完全开放源代码的商业规则管理框架。它有效的利用了MS Excel, Eclipse IDE 和其它java开源类库去构造,维护,部署,执行不同的复杂商业逻辑的规则引擎。
http://openrules.com
JEOPS
JEOPS(The Java Embedded Object Production System)是一个基于Java的演绎法(Forward-Chaining)规则引擎.这个规则引擎被用于在Java 应用服务器,Java客户端程序,和Servlets中通过规则来提高它们的商业处理能力。
JEOPS - Java based Rule Engine download | SourceForge.net
InfoSapient
InfoSapient是一个开源的规则引擎.它设计用来表达,执行和维护在同一个公司中商业规则.InfoSapient基于纯Java开发,使用到MVC,Visitor,Strategy,Facade,Factory Method,Observer,Iterator等设计模式。
JRuleEngine
JRuleEngine基于JSR94规范的java规则引擎。
JRuleEngine - OpenSource Java Rule Engine
Roolie
Roolie是一个极其简单的Java规则引擎(Non-JSR94)它使用你在Java中创建的规则。 简单创建基本的规则,为每个规则实现单个"passes"方法,然后在一个XML文件中将它们链起来创建更复杂的规则。
参考:Aviator 规则引擎介绍_程序员黄小青的博客-CSDN博客_aviator规则引擎
常见的规则引擎(Drools,RuleBook,Easy Rules等)对比相关推荐
- 【转】什么是规则引擎(Drools、OpenL Tablets、Easy Rules、RuleBook)
什么是规则引擎(Drools.OpenL Tablets.Easy Rules.RuleBook) 发表于:2021年1月23日 分类:Drools, 规则引擎 标签:Drools, Easy-Rul ...
- 小明历险记:规则引擎drools教程一
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 小明的烦恼 活动规则是根据用户购买订单的金 ...
- 规则引擎drools【一】
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看. 一.小明的烦恼--线上活动规则频繁变更 活 ...
- java排班_使用java规则引擎Drools自动排班前言.doc
使用java规则引擎Drools自动排班前言 使用java规则引擎Drools自动排班前言本文以一个经简化的运输车队自动排班需求为例,详细讲解了如何使用java规则引擎Drools进行商业规则的形式语 ...
- 【Drools一】值得打工人学习的规则引擎Drools
本文主要对Drools的使用业务场景做简单介绍. 规则引擎 规则引擎:全称为业务规则管理系统,英文名为BRMS(即Business Rule Management System).规则引擎的主要思想是 ...
- 规则引擎drools系列(一)
规则引擎 Drools 1. 问题引出 现有一个在线申请信用卡的业务场景,用户需要录入个人信息,如下图所示: //此处为伪代码 //检查用户信息合法性,返回true表示检查通过,返回false表示 ...
- 规则引擎 Drools
规则引擎 Drools 文章目录 规则引擎 Drools 1. 问题引出 2. 规则引擎概述 2.1 什么是规则引擎 2.2 使用规则引擎的优势 2.3 规则引擎应用场景 2.4 Drools介绍 3 ...
- 别再说你不会,规则引擎Drools了
一.为什么要使用规则引擎 有一天运营想弄一个积分策略,计算额外积分金额 ,规则如下: 订单原价金额 100以下, 不加分: 100-500 加100分: 500-1000 加500分: 1000 以上 ...
- 规则引擎——Drools
Drools简介 Drools使用范例 语法介绍 名词解释 Drools简介 JBoss Rules 的前身是Codehaus的一个开源项目叫Drools.最近被纳入JBoss门下,更名为JBos ...
最新文章
- 开工了!三位大咖给你指路:未来 3~5 年内,哪个方向的机器学习人才最紧缺?
- 这个B站up主太硬核了!纯手工打造AI小电视:硬件自己焊接,驱动代码全手写...
- leetcode102 二叉树的层次遍历
- git add 之后因为没提交正确文件需要撤销
- 判断vc2005运行库是否以已安装
- linux批量备份服务器配置文件和目录的脚本
- Android Service介绍
- JavaScript 中 JSON.parse()和JSON.stringify()
- 新东方雅思词汇---6.1、oppose
- 小程序入门学习04--数据绑定、条件渲染、列表渲染
- 小程序云开发 免费版 云函数数量超过限制 怎么办
- MTK6737平台匹配设备节点的方法
- 【IDEA】IDEA修改项目名称
- 现在网络安全员工资一般多少(网络安全员平均工资)
- 异地多活 以阿里为例
- 509. 斐波那契数
- 4.26学习记录 AWS 和 DNS
- 几个离散混沌映射系统(混沌函数)
- 计算机如何连接网络扫描仪,Win7系统怎么连接扫描仪 win7连接扫描仪的方法
- 在线域名批量查询工具
热门文章
- android飞屏app下载地址,飞屏暴风安卓版下载-飞屏暴风影音 安卓版v7.1.07-PC6安卓网...
- 互联网创业的准备——后勤:电脑、邮箱、会议
- 中国电商早已做到的服务,美国电商如今才达成,中国互联网引领全球创新
- 【搜索技巧】去广告、限定文件类型等提高资料查找效率的技巧
- 无锡新区新洲生活广场
- 07.微软又一逆天可视化神器——Power BI
- 虚拟机不可恢复错误-vcpu0的解决办法
- SWUST OJ 699: Arbitrage
- 思科网络模拟器安装与使用
- “Ipad Mini 12月7日在国内上市时都需要摇号预订