一、规则引擎定义
规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。
二、规则引擎使用场景
1、业务规则比较复杂,不适合和业务代码混合在一起。
2、业务规则经常变化,能够实现快速配置、立即上线,而不是通过代码开发支持。
3、业务人员应能直接管理IT系统中的规则,不需要程序开发人员参与。
三、常用规则引擎
Drools、Urule、iLog、VisualRules、Easy Rules、Rules Book、Oracle Rules SDK、Blaze、IBM Decision Manager等
四、urule规则引擎介绍
1、简介
URule Pro是一款由上海锐道信息技术有限公司自主研发的一款纯Java规则引擎,它可以运行在Windows、Linux、Unix等各种类型的操作系统之上; URule Pro的规则设计器采用业内首创的纯浏览器编辑模式,无须安装任何工具,打开浏览器即可完成复杂规则的设计与测试。
2、使用算法
urule使用Rete算法
Rete是拉丁文,对应英文是NET也就是网络的意思。
1974年由内基梅隆大学的 Charles L.Forgy 博士在他的论文《A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem》中提出,后来成为了产生式规则系统(Production Rule System)的大脑,该算法是一个快速的模式匹配算法,是一种在大量规则和大量对象之间进行规则匹配和比较的高效方法。
Rete算法是一种前向规则快速匹配算法,其匹配速度与规则数目无关,事实只有在满足本节点时才会继续向下沿网络传递,它通过形成一个Rete网络进行模式匹配,利用时间冗余性(Temporalredundancy)和结构相似性(structural similarity)这两个特性来提高系统模式匹配效率。
3、功能点
提供规则集、决策表、交叉决策表(决策矩阵)、决策树、评分卡、复杂评分卡、规则流等八种类型的业务规则设计工具,从各个角度满足复杂业务规则设计的需要。
在URule Pro当中提供了15大类,近40个小类的常用数学符号。
4、架构
4.1 系统架构图
4.2技术架构图
5、业务使用视角
业务人员可以通过对库、决策集、决策表、决策树、评分卡、决策流等的操作达到快速配置业务规则的目的。
通过类似自然语言的方式配置普通规则
通过可视化的方式配置评分卡。
6、程序员使用视角
程序员可以通过脚本设置规则
远程调用方法代码中调用:
配置restful接口,打开知识包管理页面,选中某一具体的知识包项目(知识包状态处于启用时可操作,停用状态的知识无法配置),点击目标知识包操作菜单中的“服务调用配置”菜单项,即可弹出配置窗口,如下图所示:
7、运行模式
运行模式有4种:
1、嵌入式模式
2、本地模式
3、分布式计算模式
4、独立服务模式。