规则urule规则引擎

规则引擎  时间:2021-02-25  阅读:()

Table of Contents

1简介 1 12安装与配置 1 23库文件介绍 1 34规则集 145脚本式规则集 1 56决策表 1 67交叉决策表 1 78评分卡 1 89复杂评分卡 1 910决策树 1 101 1规则流 1 1 112内置动作定义 1 1213代码中调用规则 1 1314数据库中存储知识库 1 1415知识库权限配置 1 1516客户端服务器配置 1 1617与SpringBoot集成 1 1718调试信息输出 1 1819知识包测试 1 1920规则监控 120

1

1.产品简介

规则引擎是一种嵌入在应用程序中的组件它可以将业务规则从业务代码中剥离出来使用预先定义好的语义规范来实现这些剥离出来的业务规则规则引擎通过接受输入的数据进行业务规则的评估并做出业务决策。因为规则引擎将复杂的业务逻辑从业务代码中剥离出来所以可以显著降低业务逻辑实现难度 同时剥离的业务规则使用规则引擎实现这样可以使多变的业务规则变的可维护配合规则引擎提供的良好的业务规则设计器不用编码就可以快速实现复杂的业务规则 同样 即使是完全不懂编程的业务人员也可以轻松上手使用规则引擎来定义复杂的业务规则。

业务系统运行过程中难免会发生业务规则变化的情形有了规则引擎业务规则部分采用的是规则引擎实现这样在系统正常运行的情况就就可以利用规则引擎对业务规则进行修改从而实现业务规则的随需应便。

URule Pro是一款由上海锐道信息技术有限公司自主研发的一款纯Java规则引擎它可以运行在Windows、 Linux、Unix等各种类型的操作系统之上 URule Pro的规则设计器采用业内首创的纯浏览器编辑模式无须安装任何工具打开浏览器即可完成复杂规则的设计与测试 我们可以从以下几个方面来了解URule Pro。

强大的功能

在URule Pro当中提供规则集、决策表、交叉决策表决策矩阵 、决策树、评分卡、复杂评分卡、规则流等八种类型的业务规则设计工具从各个角度满足复杂业务规则设计的需要。

如果我们的业务给出的是零散的逻辑规则那么可以使用规则集来实现如果给出的是表格形式的业务规则那么可以直接使用对应的决策表或交叉决策表决策矩阵来实现如果需要对实体进行综合评分则可以使用评分卡或复杂评分卡来实现最后还可以通过规则流对一系列复杂的规则个体进行编排将这个规则流作为实际业务规则调用入口从而实现任意复杂的业务规则。

简单的使用方式

URule Pro中提供的所有的规则设计器及仿真测试工具全部基于浏览器实现所有的规则设计器皆为可视化、 图形化设计器通过鼠标点击即可实现复杂的业务规则定义 URule Pro中规则的多条件组合也是以图形方式展现这样即使没有任何编程经验的普通业务人员也可以轻松上手完成复杂业务规则的定义。

因为所有的业务规则设计器都是基于网页的且规则的定义都是通过鼠标点击的方式完成所以对于一个普通的使用者来说配合教学视频两到三天即可完全掌握URule Pro中各种设计器的使用结合业务需要定义出想要的业务规则。

优秀的性能

URule Pro后台采用纯Java实现运行时借鉴Rete了算法的优势再结合中式规则引擎的特点独创了一套自己的规则模式匹配算法这套算法可以从根本上保证规则运行的效率实现大量复杂业务规则计算时的毫秒级响应。完善的服务

锐道秉持“用户第一”的理念无论售前售后 URule Pro都配有专门的研发人员负责相应技术支持使用过程中遇到问题可以通过电话或其它方式第一时间联系到一线研发人员 以保证问题得以快速解决。

系统架构

2

系统架构图

从上图中可以看到使用者通过浏览器打开URule Pro规则设计器来定义业务规则完成后的业务规则文件会被存储在规则存储仓库中在URule Pro当中规则存储仓库既可以是文件系统中的某个目录也可以存储于数据库当中 。规则文件调用时引擎会从规则存储仓库里把指定的规则文件取出再通过规则构建引擎对规则进行解析、编译最后由规则执行引擎执行并返回结果。

运行模式

实际使用时有两种使用URule Pro的方式一种是嵌入式一种是独立服务模式。

嵌入式模式

所谓的嵌入式是指将URule Pro直接嵌入到我们的Java Web应用当中作为应用的一部分运行。这种模式的好处是配置起来比较简单而不好的地方在于因为将URule Pro直接嵌入到我们的应用当中如果我们有多个涉及到规则引擎的应用那么每个应用都需要嵌入一个URule Pro模块所以更多的时候我们使用的是独立服务模式。独立服务模式

3

独立服务模式是指将URule Pro部署为一个独立的Java Web应用在这个应用里定义各个业务系统所需要业务规则定义好后统一存储到一个规则存储仓库当中。业务系统要使用规则时只需要指定URule Pro Server的地址即可通过HTTP协议取到目标规则包然后解析并运行其运行模式图如下所示

在独立服务模式下一个URule Pro Server可以下挂多个需要用到规则引擎的业务系统但实际的业务规则在运行时还是发生在各个业务系统中而不是URule Pro Server上。

各个业务系统在运行业务规则时会首先检查要运行规则对应的规则包在本地缓存中是否存在如果存在则直接使用不存在则通过配置的URule Pro Server地址向Server发出使用对应规则包的请求 URule Pro Server收到请求后会将指定的规则包序列化成JSON通过HTTP协议传递给请求的业务系统。业务系统收到传递过来的规则包后会首先对其进行反序列化将JSON格式的规则包反序列化为Java对象并在本地缓存下来然后再使用这个规则包进行业务规则的计算。

可以看到在这个过程当中 URule Pro Server只负责业务规则的定义、编译与发布不负责具体的业务规则执行具体的规则执行还是发生在各个业务系统当中这是一种典型的分布式计算模式可以大大减轻URule Server的压力使得规则的计算可以分布到各个业务系统所在的服务器上从而可以根据需要对计算规则的服务器进行灵活的扩充。

规则更新

在独立服务模式下规则包的更新有两种方式一种是主动推送方式一种为定时更新的方式。

主动推送方式是指URule Pro Server在规则包更新后会主动将更新后的规则包通过HTTP协议推送到配置好的各种业务系统应用的缓存当中这样各个业务系统中的规则包就可以与Server中的规则包时刻保持一致但这种推送方式要求对应的各个业务系统应用必须是一个标准Java Web应用否则这种推送无法实现如果您的业务系统应用是一个Java应用而非一个标准的Java Web应用那么要更新规则包就不能采用这种推送方式而需要使用定时更新的方式。

定时更新方式是指具体调用规则的业务系统可以通过相应的参数配置周期性的检查URule Pro Server上当前业务系统用到的规则包是否有更新如果有则主动从Server上取下来并序列化成Java对应缓存到当前业务系统中备用如果没有更新则不做任何操作。

所以如果您的业务系统是一个非Java Web应用那么更新规则包可以采用定时更新的方式实现相反如果您的业务系统是一个标准的Java Web应用那么主动推送和定时更新两种方式都可以 当然主动推送的方式更为合适。

4

规则设计器

URule Pro当中提供了向导式规则集、脚本式规则集、决策表、交叉决策表决策矩阵 、决策树、评分卡、复杂评分卡、规则流八种类型的业务规则设计工具我们来看看这些设计器以及它们设计出来的规则的样子。向导式规则集

规则集也叫决策集是由一系列单个普通规则以及循环规则构成的规则集设计器采用全向导方式通过鼠标点击就可以完成规则配置。

5

定义好的普通规则如下图

7

定义好的循环规则如下图

脚本式规则集

如果使用URule Pro的是一名程序员那么在编写规则的时候可能会更倾向于使用脚本方式业定义业务规则。在URule Pro当中向导式规则集能实现的功能脚本式规则集全部可以实现反之亦然。

8

脚本式规则集编辑器是一个基于浏览器技术的脚本编辑器、提供了完善的关键字及BOM信息提示、脚本合法性的实时检测、语法错误提示、适合业务人员使用的中文关键字等功能。

在脚本式规则编辑器里既可以定义英文关键字脚本式规则也可以定义中文关键字的脚本式规则还可以定义中英文混合关键字的脚本式规则。

9

Vultr VPS韩国首尔机房速度和综合性能参数测试

Vultr 商家有新增韩国首尔机房,这个是继日本、新加坡之后的第三个亚洲机房。不过可以大概率知道肯定不是直连中国机房的,因为早期的日本机房有过直连后来取消的。今天准备体验看看VULTR VPS主机商的韩国首尔机房的云服务器的速度和性能。1、全球节点PING速度测试这里先通过PING测试工具看看全球几十个节点的PING速度。看到好像移动速度还不错。2、路由去程测试测试看看VULTR韩国首尔机房的节点...

HTTPS加密协议端口默认是多少且是否支持更换端口访问

看到群里网友们在讨论由于不清楚的原因,有同学的网站无法访问。他的网站是没有用HTTPS的,直接访问他的HTTP是无法访问的,通过PING测试可以看到解析地址已经比较乱,应该是所谓的DNS污染。其中有网友提到采用HTTPS加密证书试试。因为HTTP和HTTPS走的不是一个端口,之前有网友这样测试过是可以缓解这样的问题。这样通过将网站绑定设置HTTPS之后,是可以打开的,看来网站的80端口出现问题,而...

易探云2核2G5M仅330元/年起,国内挂机宝云服务器,独立ip

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出深圳或北京地区的适合挂机和建站的云服务器,国内挂机宝云服务器(可选深圳或北京地区),独立ip;2核2G5M挂机云服务器仅330元/年起!点击进入:易探云官方网站地址易探云国内挂机宝云服务器推荐:1、国内入门型挂机云服务器...

规则引擎为你推荐
手机游戏排行榜20152015有什么手机游戏好玩?雅虎社区福建晋江社区是什么?拂晓雅阁?英特尔和AMD有什么区别啊?eset最新用户名密码ESET4.0最新用户名和密码手机区号打电话怎么加区号?安卓应用平台有没有什么安卓游戏都能找到的应用商店或者游戏中心iphone越狱后怎么恢复苹果越狱后怎么恢复出厂设置lockdowndiphone4s 完美越狱5.1.1时出现Could not connect to lockdownd。求救啊!!网络虚拟机如何设置vmware虚拟机网络域名库想自己买一个域名,然后自己做一个网站,挂上去。请问基本流程是什么样的?
美国虚拟主机推荐 什么是域名 淘宝二级域名 justhost 国外主机 荷兰服务器 香港加速器 博客主机 网络星期一 账号泄露 godaddy域名转出 长沙服务器 panel1 河南移动邮件系统 南通服务器 福建铁通 hdd 优酷黄金会员账号共享 360云服务 空间首页登陆 更多