[发明专利]一种基于Drools的动态规则维护和生成的方法有效
| 申请号: | 201910413868.7 | 申请日: | 2019-05-17 |
| 公开(公告)号: | CN110297620B | 公开(公告)日: | 2022-11-25 |
| 发明(设计)人: | 张建美 | 申请(专利权)人: | 苏宁易购集团股份有限公司 |
| 主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/41;G06F9/54 |
| 代理公司: | 北京市万慧达律师事务所 11111 | 代理人: | 黄玉东 |
| 地址: | 210000 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 drools 动态 规则 维护 生成 方法 | ||
本发明公开了一种基于Drools的动态规则维护和生成的方法,所述方法包括:利用关系型数据库的二维表单对业务规则进行管理,将每一类的Drools的规则文件转换成一张张的二维表;调用统一的的规则生成引擎,把二维表翻译成Drools的规则文件,并存储到Redis缓存中;通过MQ异步消息实时通知规则消费方并发送规则变更的消息;规则消费方监听到规则变更的消息后,从Redis缓存中获取最新的规则文件,并对规则文件进行解析、编译成对应的JAVA CLASS文件,通过加载使得最新的规则生效。本发明解决了现有的web引擎的处理规则维护不便、生成效率不高的问题。
技术领域
本发明属于Web技术领域,涉及对业务支撑型系统的开发,具体涉及一种基于Drools的动态规则维护和生成的方法。
背景技术
在业务支撑型系统的开发过程中,系统一旦上线,架构上大的调整几乎微乎其微,变化最多的却是系统的业务规则。系统如何能有效地实现业务规则和整体架构的解耦,是开发过程中经常要去考虑和解决的一个问题。
规则引擎通常是一个比较理想的解决方案,我们把复杂的、多变的业务规则单独独立出来,使其与整体的应用架构分离,通过在应用中对其进行模块化的移植引用,进而达到即具较高的灵活性又能快速地响应业务需求。
Drools是JBoss推出的一款基于Java语言的规则引擎框架,其大致工作原理是:基于DRL等规则配置文件,通过规则解析器,把规则文件编译成Java的Class代码,在程序运行的时候,虚拟机加载这些规则对应的Class文件并运行,依据工作内存空间的规则和事实是否匹配来判断规则是否应该执行。
Drools是一款成熟的规则引擎框架,但是也存在一定的改进和优化空间,例如DRL语法的独特性,其语法与大家普遍熟悉的面向对象、SQL均不同,开发过程中如果需要采用Drools,研发人员需要一定的学习成本去掌握这些语法;Drools的规则基于文件管理,动态维护尤其是在运行时的动态维护较为困难,同时这些DRL语法的规则文件,可读性也不高,业务人员与研发人员较难在规则文件的理解上达成一致。
发明内容
基于现有技术的上述缺陷,本发明的目的是提供一种基于Drools的动态规则维护和生成的方法,以解决现有的web引擎的处理规则维护不便、生成效率不高的问题。
为解决上述技术问题,本发明提供了一种基于Drools的动态规则维护和生成的方法,该方法包括:
1、利用关系型数据库的二维表单对业务规则进行管理,将每一类的Drools的规则文件转换成一张张的二维表,系统提供UI界面以允许用户线上对业务规则进行管理和维护;
2、对Drools的DRL语法按照面向对象的方式做了高度的提炼和抽象,把整个规则文件抽象为一系列的规则类,这些类包含:Drools规则文件类(DroolsInfo.java)、Drools规则类(DroolsRuleInfo.java)、Drools规则IF判断类(DroolsRuleWhenInfo.java)、Drools规则IF判断事实属性匹配类(DroolsRuleFieldOperates.java);
3、通过对二维表的解析,生成DroolsInfo对象,即得到我们需要的Drools规则文件;
4、把生成的Drools规则文件存储到Redis中;
5、发送规则更新消息到MQ消息队列;
6、通过MQ的监听,实时触发应用从Redis中获取最新的Drools规则文件;
7、利用Zookeeper的监听模式处理分布式应用间的规则文件同步,实现集群间的规则一致性,完成分布式环境下的动态规则引擎解决方案。
与现有技术相比,本发明所公开的一种基于Drools的动态规则维护和生成的方法,具有如下技术效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏宁易购集团股份有限公司,未经苏宁易购集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910413868.7/2.html,转载请声明来源钻瓜专利网。





