规则引擎调研情况 URule Pro、VRS和ILOG ODM

发布时间:2023年12月21日

最近调研了三家公司的规则引擎产品,各有利弊,具体情况如下:

1.? URule? Pro

配置本地环境:?

Web端测试样例:

产品特点:?

编程语言

Java语言

是否有Python接口

核心算法

3.0及之前的版本 ?Rete算法

4.0之后版本 模式匹配算法(rete升级版)

支持的数据库

包括但不限于Oracle

规则操作

普通决策表、交叉决策表、决策树、决策流

操作环境

只有浏览器版

运行效率

16核+32G内存(普通)-> 2000tps ??可参考

优点:

  • 规则定义较灵活
  • 支持用Docker部署、私有云部署、热部署
  • 支持科学计算
  • 支持规则间的继承关系
  • 可设置规则执行的优先级
  • 支持高并发(多业务同时调用该规则引擎),具体性能需要测试

缺点:

(1)操作繁琐,比如:库文件需要频繁导入,变量不能复制,上移属性时每次只能移一位。

(2)优先级只在一个规则文件中写多条规则时有用;如果要决定多个规则文件的执行顺序,需要用决策流,但是决策流很难用。

(3)不支持HTTP接口交互和代码生成,只能通过Web端操作

?2.? Visual Rules Solution(VRS)

试用产品:?

?产品特点:

编程语言

Java语言(支持Java 8.0及以上版本)

是否有Python接口

核心算法

不涉及算法,根据语言逻辑直接生成代码执行

支持的数据库

包含但不限于Oracle、MongoDB、Redis

规则操作

关联决策表、交叉决策表、多维决策表、决策树、决策池、流程图、评分卡、表达式规则、表达式表格

操作环境

有单机版和网页版,单机版开发效率更高

优点:

(1)计算表格对象(多个集合遍历匹配时效率高)

(2)可调用外界的函数

缺点:

(1)规则定义的方式不灵活

(2)此产品不能检测规则间是否存在矛盾


3. ILOG ODM

产品特点:?

编程语言

Java语言

是否有Python接口

核心算法

Rete算法/顺序执行

支持的数据库

包括但不限于Oracle

规则操作

决策表、规则流

操作环境

Eclipse+插件/ Web端

运行效率

ms级

调用方式

Restful Api/Soap Api/Java Api

优点:

(1)使用的算法可以选择Rete算法、顺序执行(通过规则流体现)、快速路径(Rete算法的变种,执行效率更高)

(2)规则追踪(可以查某个规则的输入,执行结果)

(3)不同规则文件设置优先级,即可按照优先级的顺序执行(实际使用时,更推荐使用规则流的形式)

(4)决策表中录入重复数据时会有错误提示信息

(5)编译的接口和部署的接口都是开放的

(6)支持容器化部署

缺点:

(1)当两条业务规则有冲突时,系统检测不出来。如果两条规则输入相同,输出不同,系统会以最后一条为准。

以上的调研结果供大家参考~

感谢友友们的点赞和关注!!希望我写的内容可以帮助到您~

文章来源:https://blog.csdn.net/lft_happiness/article/details/135123938
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。