美文网首页
开源规则引擎调研

开源规则引擎调研

作者: 周群力 | 来源:发表于2020-10-23 08:42 被阅读0次

市面上的产品

URules
Drools
easy-rules

一、Scene

1.1. func

1.1.1. 规则的数据模型

决策集

  • 向导式规则
  • 脚本式规则


    image.png

决策表


image.png

交叉决策表


image.png

决策树


image.png

评分卡


image.png

复杂评分卡

规则流


image.png

1.1.2. 数据从哪来

调用方拼好传进来(或者以塞进上下文的形式)

1.2. non-func

service/sdk计算

二、Service

https://zhuanlan.zhihu.com/p/51296996
https://martinfowler.com/bliki/RulesEngine.html

image.png
image.png
image.png
image.png
image.png

2.1. 原理

就是给一堆规则,一堆fact数据,匹配出符合条件的规则,冲突决策,然后执行。

2.2. 描述规则的方法

a. 结构化的java object
b. dsl
有的系统是把结构化的java object转成dsl字符串,再通过表达式引擎编译dsl、执行。表达式引擎编译dsl时其实也是编译成java object、构造出树或栈,所以这种方案多了编译字符串这步,多了冗余转换。
如果想用GUI配置,除了dsl字符串,还是要有结构化的java object
c. GUI

2.3. 匹配规则模块的算法

a. 暴力循环
问题是有很多冗余,规则、数据都很多的时候性能差;
尤其是执行规则后有级联影响、需要迭代计算的时候,即chaining功能

An important property of rule engines is chaining - where the action part of one rule changes the state of the system in such a way that it alters the value of the condition part of other rules. Chaining sounds appealing, since it supports more complex behaviors, but can easily end up being very hard to reason about and debug.

——https://martinfowler.com/bliki/RulesEngine.html
看描述easy-rules就是这么做的,不支持chaining

b. Rete
https://developer.ibm.com/zh/technologies/artificial-intelligence/articles/os-drools/

You can build a simple rules engine yourself. All you need is to create a bunch of objects with conditions and actions, store them in a collection, and run through them to evaluate the conditions and execute the actions. But mostly when people refer to "rules engine" they mean a product built specifically to help you build and run a rules engine. Techniques to specify rules can vary from an API for people to describe rules as Java objects, a DSL to express rules, or a GUI that allows people enter rules. More efficient execution engines help to quickly evaluate conditions on hundreds of rules using specialized algorithms (such as the Rete algorithm).

——https://martinfowler.com/bliki/RulesEngine.html

三、Storage

相关文章

  • 开源规则引擎调研

    市面上的产品 URules[https://www.bilibili.com/video/BV1Sx411d7Em...

  • 轻量级规则引擎调研

    我们基于Flink实现了云端的规则引擎,以flink on yarn方式在运行,依赖hadoop和zookeepe...

  • 阅读引擎开源项目调研总结

    农历腊月初二,也是冬至后的第四个九天,俗称“四九”。冬至这一天开始数九,这就是人们所说的“提冬数九”。数上9天是一...

  • 规则引擎调研(drools和qlexpress)

    1.问题分析 目前存在比较多的判断规则。而且分支逻辑过多,经常出现一些规则判断出现的数据问题。所以需要抽取一些规则...

  • 边缘侧eKuiper规则引擎调研

    背景 国内物联网行业用的比较多的接入平台非EMQ莫属了,其提供了整套的行业解决方案,包括:边缘侧的设备接入及边缘侧...

  • Openl Tables --- 安装和快速入门

    什么是Openl Tables Openl Tables 是一个开源的规则引擎,大部分规则都可以通过Excel编写...

  • Drools介绍(1)

    Drools简介 Drools是一款基于Java的开源规则引擎,将规则与业务代码解耦。规则以脚本的形式存储在一个文...

  • 谈一谈规则引擎在活动系统中的落地

    本文从 “为什么需要规则引擎” “规则引擎的定义” “规则引擎在营销活动系统中的落地” “规则引擎平台内部架构” ...

  • drools 6.4

    一. 简介 Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的...

  • Redis 生产架构选型解决方案

    在写开源项目的时候,想到了要支持多种redis部署方式,于是对于这块的生产环境的架构选型展开调研 一 、引擎版本 ...

网友评论

      本文标题:开源规则引擎调研

      本文链接:https://www.haomeiwen.com/subject/wijtpktx.html