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

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

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)当两条业务规则有冲突时,系统检测不出来。如果两条规则输入相同,输出不同,系统会以最后一条为准。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/260462.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

应用 Strangler 模式将遗留系统分解为微服务

许多来源在一般情况下提供了微服务的解释,但缺乏特定领域的示例。新来者或不确定从哪里开始的人可能会发现掌握如何将遗留系统过渡到微服务架构具有挑战性。本指南主要面向那些正在努力启动迁移工作的个人,它提供了特定于业务的示例来帮助理解该过程。 …

还在用nvm?来试试更快的node版本管理工具——fnm

前言 📫 大家好,我是南木元元,热衷分享有趣实用的文章,希望大家多多支持,一起进步! 🍅 个人主页:南木元元 目录 什么是node版本管理 常见的node版本管理工具 fnm是什么 安装fnm …

IDEA 设置 SpringBoot logback 彩色日志(附配置文件)

1、背景说明 最开始使用 SpringBoot 时,控制台日志是带彩色的,让人眼前一亮😄 后来彩色莫名丢失,由于影响不大,一直没有处理。 2、配置彩色 最近找到了解决方法(其实是因为自定义 logback.xml&#xff0…

多媒体互动橱窗设计如何改变内容展示形式?

橱窗设计在展品展示中扮演着举足轻重的角色,它相较于传统展示形式,能更直观地呈现展品效果,而且优质的橱窗设计还能提升品牌的产品形象,正因此,也被广泛应用于企业、博物馆、店铺等场所。随着多媒体技术的蓬勃发展和行…

【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用

【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用 前言 跟往期sobol区别: 1.sobol计算依赖于验证集样本,无需定义变量上下限。 2.SW-ELM自带激活函数,计算具有phi(x)e^x激…

命令执行 [SWPUCTF 2021 新生赛]babyrce

打开题目 我们看到题目说cookie值admin等于1时,才能包含文件 bp修改一下得到 访问rasalghul.php,得到 题目说如果我们get传入一个url且不为空值,就将我们get姿势传入的url的值赋值给ip 然后用正则过滤了 / /,如果ip的值没有 / …

Maven将Jar包打入本地仓库

Maven将Jar包打入本地仓库 Maven将Jar包打入本地仓库嘚吧嘚下载Maven配置Maven新建MAVEN_HOME编辑Path验证Maven配置 Jar包打入Maven仓库 Maven将Jar包打入本地仓库 嘚吧嘚 最近项目用到一个Jar包,不能从远程仓库拉取,只有一个Jar包,所以需…

BSWM 模式管理(二)ESH

BSWM 模式管理 ESH 1 ECU State Handling (ESH)2 BSWM ESH 五大模式与六大通用状态机3 状态机对应的切换条件 conditions or rules4 默认主要的 ACTION 或者 ACTION LIST1 ECU State Handling (ESH) 与 ECUM 相关,整个 ECU 状态管理的状态机制 2 BSWM ESH 五大模式与六大通…

基于 Flink 的典型 ETL 场景实现方案

目录 1.实时数仓的相关概述 1.1 实时数仓产生背景 1.2 实时数仓架构 1.3 传统数仓 vs 实时数仓 2.基于 Flink 实现典型的 ETL 场景 2.1 维表 Join ■ 2.1.1 预加载维表 方案 1: 方案 2: ■ 2.1.2 热存储关联 ■ 2.1.3 广播维表 ■ 2.1.4 Tem…

福建省大数据集团数据应用开发大赛全面升级

更多精彩,请持续关注 点击链接直达大赛官网 福建省大数据集团数据应用开发大赛 (fjbdg.com.cn)

车辆违规开启远光灯检测系统:融合YOLO-MS改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着社会的不断发展和交通工具的普及,车辆违规行为成为了一个严重的问题。其中,车辆违规开启远光灯是一种常见的违规行为,给其…

DBeaver中使用外部格式化程序对进行sql格式化

本文介绍了如何在DBeaver中使用外部格式化程序对sql进行格式化。 一、pgFormatter 1.准备工作 下载地址:https://github.com/darold/pgFormatter/releases/ pgFormatter是perl脚本,所以需要perl运行环境支持。 perl下载地址:https://str…

【力扣100】543.二叉树的直径

添加链接描述 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def __init__(self):self.max 0def diamete…

实现linux与windows进行文件共享

目录 一.展现形式 二.场景需求 三.具体操作 1.windows访问sumba 2.Linux访问sumba 一.展现形式 支持以文件夹的形式可视化操作文件 二.场景需求 1.有一台Linux物理机 2.有一台window物理机 3.Linux已配置好sumba服务器 三.具体操作 1.windows访问sumba 首先按下winR…

PyTorch深度学习实战(26)——卷积自编码器(Convolutional Autoencoder)

PyTorch深度学习实战(26)——卷积自编码器 0. 前言1. 卷积自编码器2. 使用 t-SNE 对相似图像进行分组小结系列链接 0. 前言 我们已经学习了自编码器 (AutoEncoder) 的原理,并使用 PyTorch 搭建了全连接自编码器,但我们使用的数据…

【C++初阶】第一站:C++入门基础(下)

前言: 紧接着上两篇文章,c入门基础(上):C入门基础(上) c入门基础(中):C入门基础(中) 继续补充完c初阶入门基础的知识点,本章知识点包括: 引用和指针的区别、内联函数、auto关键字(C11)、基于范围的for循环…

企业在什么场景下使用Windows活动目录?

Windows活动目录是微软提供的一种集中式身份验证和访问控制服务,它具有许多功能和优势,因此在很多企业中被广泛使用。那么,企业在什么场景下会选择使用Windows活动目录呢? 首先,Windows活动目录适用于中大型企业或组织…

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。 它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网页增加…

【UML】第9篇 类图

目录 一、类图的概念 二、类图的主要作用 三、类图的构成 3.1 类的名称 3.2 抽象类(Abstract Class) 一、类图的概念 类图是UML模型中静态视图。它用来描述系统中的有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等。静态视…

spring boot集成mybatis和springsecurity实现权限控制功能

上一篇已经实现了登录认证功能,这一篇继续实现权限控制功能,文中代码只贴出来和上一篇不一样的修改的地方,完整代码可结合上一篇一起整理spring boot集成mybatis和springsecurity实现登录认证功能-CSDN博客 数据库建表 权限控制的意思就是根…