[发明专利]一种基于Groovy的规则引擎系统有效
申请号: | 201610654148.6 | 申请日: | 2016-08-11 |
公开(公告)号: | CN106325854B | 公开(公告)日: | 2019-12-03 |
发明(设计)人: | 马自谦;范桢 | 申请(专利权)人: | 上海浦东发展银行股份有限公司信用卡中心 |
主分类号: | G06F8/30 | 分类号: | G06F8/30 |
代理公司: | 31225 上海科盛知识产权代理有限公司 | 代理人: | 翁惠瑜<国际申请>=<国际公布>=<进入 |
地址: | 200122 上海市浦东新区中*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 规则设置界面 规则引擎系统 用户交互 规则发布模块 配置数据存储 计算模块 计算请求 配置数据 用户反馈 用户设置 资源消耗 时响应 上线 存储 场景 灵活 发布 | ||
本发明涉及一种基于Groovy的规则引擎系统,该规则引擎系统基于ApacheGroovy实现,包括:规则设置界面,用于与用户交互,供所述用户设置针对某个场景的规则及相应配置数据,并将获取的所述规则及相应配置数据存储于Redis中;规则发布模块,用于将所述规则设置界面获取的规则发布上线;规则池,用于存储有规则列表;规则计算模块,用于与用户交互,在收到所述用户的计算请求时响应,根据所述规则池内的规则列表进行计算,向用户反馈计算结果。与现有技术相比,本发明具有灵活高效、减少资源消耗等优点。
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种基于Groovy的规则引擎系统。
背景技术
Apache Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零),无缝集成所有已经存在的Java对象和类库,可直接编译成Java字节码,这样可以在任何使用Java的地方使用Groovy。
目前的规则引擎系统,主要是基于配置化、Expression框架来实现的,配置的过程会随着业务的复杂度和系统的复杂度变得越来越繁琐、臃肿,不便于维护,性能上也无法很好地做到实时计算。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种灵活高效、减少资源消耗的基于Groovy的规则引擎系统。
本发明的目的可以通过以下技术方案来实现:
一种基于Groovy的规则引擎系统,该规则引擎系统基于Apache Groovy实现,包括:
规则设置界面,用于与用户交互,供所述用户设置针对某个场景的规则及相应配置数据,并将获取的所述规则及相应配置数据存储于Redis中;
规则发布模块,用于将所述规则设置界面获取的规则发布上线;
规则池,用于存储有规则列表;
规则计算模块,用于与用户交互,在收到所述用户的计算请求时响应,根据所述规则池内的规则列表进行计算,向用户反馈计算结果。
所述规则计算模块包括:
变量初始化单元,用于加载当前计算所需的所有变量信息,并将所述变量信息封装为一规则上下文对象;
计算单元,用于获取规则池中的规则列表,并根据所述规则上下文对象实现规则与规则间的变量传送与数据共享,完成所述规则列表中所有规则的计算。
所述计算单元基于流式计算完成所有规则的计算。
还包括:
规则池更新模块,在规则计算模块执行前响应,用于读取所述Redis中的配置数据,更新规则池。
所述规则池更新模块进行规则池更新的具体过程为:
根据读取规则的配置数据与规则池内已有的规则列表进行比较,判断是否有新的规则或是否存在规则更新,若是,则对规则池进行实时动态编译。
与现有技术相比,本发明具有以下优点:
1)本发明可通过规则设置界面实现与用户的互动,具有可编程性,相比手工配置化的规则引擎,更加灵活高效。
2)本发明可通过规则池更新模块对规则进行动态编译,降低了反复编译计算的性能损耗,减少了资源的消耗。
3)本发明基于流式计算,实现了实时计算的高并发业务需求。
附图说明
图1为本发明的结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海浦东发展银行股份有限公司信用卡中心,未经上海浦东发展银行股份有限公司信用卡中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610654148.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种支付界面的显示方法及移动终端
- 下一篇:显示光盘安装类型的方法