规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。
规则引擎具体执行可以分为接受数据输入,解释业务规则,根据业务规则做出业务决策几个过程,使用规则引擎可以把复杂、
冗余的业务规则同整个支撑系统分离开,做到架构的可复用移植。
规则引擎的选型应用
相对于业务系统,规则引擎可以认为是一个独立于业务系统的模块,负责一些规则的计算等。
一般来说,规则引擎主要应用在下面的场景中:
风控模型配置,风控是规则引擎
用户积分等配置,如日常操作引起积分变化等
简单的离线计算,各类数据量比较小的统计等
目前的规则引擎系统中,使用较多的开源规则引擎是Drools,另外还有商用的规则管理系统BRMS是ILOG JRules。
Drools
Drools是一个基于Java的开源规则引擎,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。
目前版本是5.0.1,Drools从5.0后分为四个模块:
Drools Guvnor (BRMS/BPMS)
Drools Expert (rule engine)
Drools Flow (process/workflow)
Drools Fusion (cep/temporal reasoning)
Ilog JRules
Ilog Jrules是完整的业务规则管理系统(BRMS),它提供了对整个企业业务规则进行建模、编写、测试、部署和维护所必需的所有工具。
Ilog Jrules主要包括以下4个组件:
Rule Studio(RS) 面向开发人员使用的开发环境,用于规则的建模和编写
Rule Scenario Manager 规则测试工具
Rule Team Server(RTS) 基于Web的管理环境,面向业务人员使用,用于规则发布、管理、存储
Rule Execution Server(RES) 面向运维人员使用,用于规则执行、监控

