规则引擎简介

1、规则引擎简介
​ 规则引擎是一种嵌套在应用程序中的组件,实现将业务规则从应用程序代码中分离出来。规则引擎使用特定的语法编写业务规则。

引入规则引擎后端带来的好处:

(1)实现业务逻辑与业务规则的分离,实现业务规则的集中管理。

(2)可以动态修改业务规则,从而快速响应需求变更。

(3)使业务分析人员可以参与编辑、维护系统的业务规则。

(4)使用规则引擎提供的规则编辑工具,使复杂的业务规则实现变得简单。

2、规则引擎选型比较:
目前的规则引擎系统中,使用较多的开源规则引擎是Drools,另外还有商用的规则管理系统BRMS是ILOG JRules。这两款规则引擎设计和实现都比较复杂,学习成本高,适用于大型应用系统。当然还有还有付费版的URule这样优秀的规则引擎。

1.Drools:
Drools 是用 Java 语言编写的开放源码规则引擎,基于Apache协议,基于RETE算法,于2005年被JBoss收购。Drools就是为了解决业务代码和业务规则分离的引擎。Drools 规则是在 Java 应用程序上运行的,其要执行的步骤顺序由代码确定,为了实现这一点,Drools 规则引擎将业务规则转换成执行树。drools优点:

1、简化系统架构,优化应用。
    2、提高系统的可维护性和维护成本。
    3、方便系统的整合。
    4、减少编写“硬代码”业务规则的成本和风险。

drools官网:https://www.drools.org/

droolsgithub:https://github.com/kiegroup/drools

​ Drools是一个业务逻辑集成平台(BLip)。它是用Java编写。它是由JBoss和红帽公司扩展支持,并实现Rete模式匹配算法的一个开源项目。

通俗地说,Drools是一种工具,使我们能够分离内部业务流程,找到逻辑和数据的集合。我们需要注意的两个重要关键词是逻辑和数据。Drools的被分成两个主要部分:编写和运行系统。

制作: 制作过程涉及创建规则文件(.DRL文件)。

运行时: 它涉及到创建工作存储器和处理活化。

优点:1.策略规则和执行逻辑解耦方便维护。

缺点:

​ 1.规则规模变大以后也会变得不好维护,相对硬编码的优势便不复存在。

​ 2.规则的语法仅适合扁平的规则,对于嵌套条件语义(then里嵌套when…then子句)的规则只能将条件进行笛卡尔积组合以后进行配置,不利于维护。

​ 由于Drools本身不提供可视化界面,所以需要集成到项目后需要再次开发动态配置页面及其功能,drools规则是文本的,可以先读取再加载执行,比如存储到数据库,每次加载规则都是从数据库中读取。而规则则可以通过其他方式写入数据库。

​ 由于Drools本身不提供可视化界面,所以调用方式可以分为以下两种:

创建好服务后提供api直接调用

二次开发。与前端配合(通过蚂蚁G6组件实现规则编辑,传递json格式的drl脚本),后端解析json并集成quartz或akka任务调度,使用spring kafka组件接收来自集群的数据流。

2.Ilog JRules:
IBM WebSphere ILOG JRules 是目前业界领先的业务规则管理平台。与传统的由 IT 人员用硬代码来维护规则的做法不同,ILOG JRules 让业务用户能够在不依赖或者有限依赖于 IT 人员的情况下,快速创建、修改、测试和部署业务规则,以满足经常变化的业务需求。ILOG JRules 提供了一整套的工具,帮助开发人员和业务人员进行规则的全生命周期管理。

主要组件:
    1、Rule Studio(RS) 面向开发人员使用的开发环境,用于规则的建模和编写。
    2、Rule Scenario Manager 规则测试工具。
    3、Rule Team Server(RTS) 基于Web的管理环境,面向业务人员使用,用于规则发布、管理、存储。
    4、Rule Execution Server(RES) 面向运维人员使用,用于规则执行、监控。

​ JRules 规则引擎提供了 RetePlus、Sequential 和 FastPath 三种运行模式,以适应不同的应用需求,获得最优性能。在基于业务规则引擎的应用中,需要根据不同应用的特点,合理地组织和编排业务规则,选择合适的运行模式,有助于更好的发挥规则引擎的效能,但同时复杂度较高。

3.Easy Rules:
Easy Rules 是一款 Java 规则引擎,它的诞生启发自有Martin Fowler 一篇名为 “Should I use a Rules Engine?” 文章。Easy Rules 提供了规则抽象来创建带有条件和操作的规则,以及运行一组规则来评估条件和执行操作的RulesEngine API。

特性:
    1、轻量级框架和易于学习的API。
    2、基于POJO的开发。
    3、通过高效的抽象来定义业务规则并轻松应用它们。
    4、支持创建复合规则。
    5、使用表达式语言定义规则的能力。

官方wiki文档https://github.com/j-easy/easy-rules/wiki

4.Visual Rules:
VisualRules是由国家科技部和财政部的创新基金支持,专门针对国内规则引擎市场空白的情况,结合国内项目的特点而开发的一款业务规则管理系统(BRMS)产品。

Visual Rules是在规则引擎基础上发展出来的一款产品,其秉承了规则引擎可以使业务逻辑的变化可以独立于程序之外的特点,同时结合国内软件项目的特点,为数据库层和界面层也提供了独立于程序之外配置的特点,因此本产品不光是一个业务规则管理系统,还是一个基于规则引擎的web快速开发平台。

​官方网址 https://www.flagleader.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值