CN106325854A - 一种基于Groovy的规则引擎*** - Google Patents

一种基于Groovy的规则引擎*** Download PDF

Info

Publication number
CN106325854A
CN106325854A CN201610654148.6A CN201610654148A CN106325854A CN 106325854 A CN106325854 A CN 106325854A CN 201610654148 A CN201610654148 A CN 201610654148A CN 106325854 A CN106325854 A CN 106325854A
Authority
CN
China
Prior art keywords
rule
groovy
pond
engine system
rules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610654148.6A
Other languages
English (en)
Other versions
CN106325854B (zh
Inventor
马自谦
范桢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Pudong Development Bank Co Ltd Credit Card Center
Original Assignee
Shanghai Pudong Development Bank Co Ltd Credit Card Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Pudong Development Bank Co Ltd Credit Card Center filed Critical Shanghai Pudong Development Bank Co Ltd Credit Card Center
Priority to CN201610654148.6A priority Critical patent/CN106325854B/zh
Publication of CN106325854A publication Critical patent/CN106325854A/zh
Application granted granted Critical
Publication of CN106325854B publication Critical patent/CN106325854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明涉及一种基于Groovy的规则引擎***,该规则引擎***基于ApacheGroovy实现,包括:规则设置界面,用于与用户交互,供所述用户设置针对某个场景的规则及相应配置数据,并将获取的所述规则及相应配置数据存储于Redis中;规则发布模块,用于将所述规则设置界面获取的规则发布上线;规则池,用于存储有规则列表;规则计算模块,用于与用户交互,在收到所述用户的计算请求时响应,根据所述规则池内的规则列表进行计算,向用户反馈计算结果。与现有技术相比,本发明具有灵活高效、减少资源消耗等优点。

Description

一种基于Groovy的规则引擎***
技术领域
本发明涉及数据处理技术领域,尤其是涉及一种基于Groovy的规则引擎***。
背景技术
Apache Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零),无缝集成所有已经存在的Java对象和类库,可直接编译成Java字节码,这样可以在任何使用Java的地方使用Groovy。
目前的规则引擎***,主要是基于配置化、Expression框架来实现的,配置的过程会随着业务的复杂度和***的复杂度变得越来越繁琐、臃肿,不便于维护,性能上也无法很好地做到实时计算。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种灵活高效、减少资源消耗的基于Groovy的规则引擎***。
本发明的目的可以通过以下技术方案来实现:
一种基于Groovy的规则引擎***,该规则引擎***基于Apache Groovy实现,包括:
规则设置界面,用于与用户交互,供所述用户设置针对某个场景的规则及相应配置数据,并将获取的所述规则及相应配置数据存储于Redis中;
规则发布模块,用于将所述规则设置界面获取的规则发布上线;
规则池,用于存储有规则列表;
规则计算模块,用于与用户交互,在收到所述用户的计算请求时响应,根据所述规则池内的规则列表进行计算,向用户反馈计算结果。
所述规则计算模块包括:
变量初始化单元,用于加载当前计算所需的所有变量信息,并将所述变量信息封装为一规则上下文对象;
计算单元,用于获取规则池中的规则列表,并根据所述规则上下文对象实现规则与规则间的变量传送与数据共享,完成所述规则列表中所有规则的计算。
所述计算单元基于流式计算完成所有规则的计算。
还包括:
规则池更新模块,在规则计算模块执行前响应,用于读取所述Redis中的配置数据,更新规则池。
所述规则池更新模块进行规则池更新的具体过程为:
根据读取规则的配置数据与规则池内已有的规则列表进行比较,判断是否有新的规则或是否存在规则更新,若是,则对规则池进行实时动态编译。
与现有技术相比,本发明具有以下优点:
1)本发明可通过规则设置界面实现与用户的互动,具有可编程性,相比手工配置化的规则引擎,更加灵活高效。
2)本发明可通过规则池更新模块对规则进行动态编译,降低了反复编译计算的性能损耗,减少了资源的消耗。
3)本发明基于流式计算,实现了实时计算的高并发业务需求。
附图说明
图1为本发明的结构示意图;
图2为本发明的规则计算流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1和图2所示,本实施例提供一种基于Groovy的规则引擎***,该规则引擎***基于Apache Groovy实现,包括规则设置界面1、规则发布模块2、规则池3和规则计算模块4,其中,规则设置界面1用于与用户交互,供所述用户设置针对某个场景的规则及相应配置数据,并将获取的所述规则及相应配置数据存储于Redis中;规则发布模块2用于将所述规则设置界面1获取的规则发布上线,编写好的规则可以直接发布上线;规则池3用于存储有规则列表;规则计算模块4用于与用户交互,在收到所述用户的计算请求时响应,根据所述规则池3内的规则列表进行计算,向用户反馈计算结果。
规则计算模块4具体包括变量初始化单元41和计算单元42。变量初始化单元41用于加载当前计算所需的所有变量信息,并将所述变量信息封装为一规则上下文对象;计算单元42用于获取规则池中的规则列表,并根据所述规则上下文对象实现规则与规则间的变量传送与数据共享,完成所述规则列表中所有规则的计算,计算单元基于流式计算完成所有规则的计算。
为了使上述基于Groovy的规则引擎***可以实现动态编译,该规则引擎***还可包括规则池更新模块5,该规则池更新模块5在规则计算模块4执行前响应,用于读取所述Redis中的配置数据,更新规则池3,进行规则池更新的具体过程为:
根据读取规则的配置数据与规则池内已有的规则列表进行比较,判断是否有新的规则或是否存在规则更新,若是,则对规则池进行实时动态编译。

Claims (5)

1.一种基于Groovy的规则引擎***,其特征在于,该规则引擎***基于Apache Groovy实现,包括:
规则设置界面,用于与用户交互,供所述用户设置针对某个场景的规则及相应配置数据,并将获取的所述规则及相应配置数据存储于Redis中;
规则发布模块,用于将所述规则设置界面获取的规则发布上线;
规则池,用于存储有规则列表;
规则计算模块,用于与用户交互,在收到所述用户的计算请求时响应,根据所述规则池内的规则列表进行计算,向用户反馈计算结果。
2.根据权利要求1所述的基于Groovy的规则引擎***,其特征在于,所述规则计算模块包括:
变量初始化单元,用于加载当前计算所需的所有变量信息,并将所述变量信息封装为一规则上下文对象;
计算单元,用于获取规则池中的规则列表,并根据所述规则上下文对象实现规则与规则间的变量传送与数据共享,完成所述规则列表中所有规则的计算。
3.根据权利要求2所述的基于Groovy的规则引擎***,其特征在于,所述计算单元基于流式计算完成所有规则的计算。
4.根据权利要求1所述的基于Groovy的规则引擎***,其特征在于,还包括:
规则池更新模块,在规则计算模块执行前响应,用于读取所述Redis中的配置数据,更新规则池。
5.根据权利要求4所述的基于Groovy的规则引擎***,其特征在于,所述规则池更新模块进行规则池更新的具体过程为:
根据读取规则的配置数据与规则池内已有的规则列表进行比较,判断是否有新的规则或是否存在规则更新,若是,则对规则池进行实时动态编译。
CN201610654148.6A 2016-08-11 2016-08-11 一种基于Groovy的规则引擎*** Active CN106325854B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610654148.6A CN106325854B (zh) 2016-08-11 2016-08-11 一种基于Groovy的规则引擎***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610654148.6A CN106325854B (zh) 2016-08-11 2016-08-11 一种基于Groovy的规则引擎***

Publications (2)

Publication Number Publication Date
CN106325854A true CN106325854A (zh) 2017-01-11
CN106325854B CN106325854B (zh) 2019-12-03

Family

ID=57740099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610654148.6A Active CN106325854B (zh) 2016-08-11 2016-08-11 一种基于Groovy的规则引擎***

Country Status (1)

Country Link
CN (1) CN106325854B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107330604A (zh) * 2017-06-26 2017-11-07 携程旅游网络技术(上海)有限公司 机票风控规则的管理方法及***
CN107632842A (zh) * 2017-09-26 2018-01-26 携程旅游信息技术(上海)有限公司 规则配置和发布方法、***、设备及存储介质
CN108376064A (zh) * 2016-11-24 2018-08-07 阿里巴巴集团控股有限公司 规则引擎***及规则引擎的相关方法
CN109039751A (zh) * 2018-08-14 2018-12-18 深圳壹账通智能科技有限公司 配置路由的方法、装置、计算机设备和存储介质
CN111221550A (zh) * 2019-10-24 2020-06-02 支付宝(杭州)信息技术有限公司 用于流式计算的规则更新方法、装置及流式计算***
CN112910702A (zh) * 2021-02-01 2021-06-04 浪潮云信息技术股份公司 一种多形态网关融合方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103269347A (zh) * 2013-06-03 2013-08-28 北京奇虎科技有限公司 基于服务器端进行资源优化方法、服务器、客户端和***
CN103942228A (zh) * 2013-01-23 2014-07-23 纽海信息技术(上海)有限公司 规则引擎、计算方法、业务***及调用方法
CN105446799A (zh) * 2014-08-22 2016-03-30 阿里巴巴集团控股有限公司 一种计算机***中进行规则管理的方法及***
CN105701242A (zh) * 2016-02-26 2016-06-22 浪潮通信信息***有限公司 一种可扩展的智能移动终端动态规则检测引擎

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942228A (zh) * 2013-01-23 2014-07-23 纽海信息技术(上海)有限公司 规则引擎、计算方法、业务***及调用方法
CN103269347A (zh) * 2013-06-03 2013-08-28 北京奇虎科技有限公司 基于服务器端进行资源优化方法、服务器、客户端和***
CN105446799A (zh) * 2014-08-22 2016-03-30 阿里巴巴集团控股有限公司 一种计算机***中进行规则管理的方法及***
CN105701242A (zh) * 2016-02-26 2016-06-22 浪潮通信信息***有限公司 一种可扩展的智能移动终端动态规则检测引擎

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108376064A (zh) * 2016-11-24 2018-08-07 阿里巴巴集团控股有限公司 规则引擎***及规则引擎的相关方法
CN107330604A (zh) * 2017-06-26 2017-11-07 携程旅游网络技术(上海)有限公司 机票风控规则的管理方法及***
CN107632842A (zh) * 2017-09-26 2018-01-26 携程旅游信息技术(上海)有限公司 规则配置和发布方法、***、设备及存储介质
CN107632842B (zh) * 2017-09-26 2020-06-30 携程旅游信息技术(上海)有限公司 规则配置和发布方法、***、设备及存储介质
CN109039751A (zh) * 2018-08-14 2018-12-18 深圳壹账通智能科技有限公司 配置路由的方法、装置、计算机设备和存储介质
CN111221550A (zh) * 2019-10-24 2020-06-02 支付宝(杭州)信息技术有限公司 用于流式计算的规则更新方法、装置及流式计算***
CN111221550B (zh) * 2019-10-24 2022-09-06 支付宝(杭州)信息技术有限公司 用于流式计算的规则更新方法、装置及流式计算***
CN112910702A (zh) * 2021-02-01 2021-06-04 浪潮云信息技术股份公司 一种多形态网关融合方法

Also Published As

Publication number Publication date
CN106325854B (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
CN106325854A (zh) 一种基于Groovy的规则引擎***
CN110650347B (zh) 多媒体数据的处理方法及装置
CN110058883A (zh) 一种基于opu的cnn加速方法及***
CN106133696A (zh) 缩放云资源时动态标识目标容量
US10460513B2 (en) Combined world-space pipeline shader stages
CN103927187A (zh) 嵌入式***程序执行方法
CN108989885A (zh) 视频文件转码***、分割方法、转码方法及装置
JP6489760B2 (ja) ハードウェアコンポーネントのi/oチャネルのフレキシブルな分配方法
Danelutto et al. Introducing parallelism by using REPARA C++ 11 attributes
CN110334436A (zh) 一种数据处理方法以及设备
CN117495989B (zh) 数据处理方法、装置、设备及可读存储介质
CN106254491A (zh) 一种稳定快捷的ios客户端架构模型
TW201337749A (zh) Ret指令的即時指令追蹤壓縮技術
Haaß et al. Automatic custom instruction identification in memory streaming algorithms
US11526791B2 (en) Methods and systems for diverse instance generation in artificial intelligence planning
JP2016506001A5 (zh)
JP2007264965A5 (zh)
CN112651489A (zh) 操作处理方法、装置、用于操作处理的装置及存储介质
JP2016508636A5 (zh)
US20110238945A1 (en) Apparatus and method for generating code overlay
Schuler et al. XEngine: Optimal tensor rematerialization for neural networks in heterogeneous environments
CN105074667B (zh) 用于声明类型的方法以及实例化对象图的方法
Coplien et al. The data, context and interaction paradigm
US8694975B2 (en) Programming system in multi-core environment, and method and program of the same
Ho et al. Towards FPGA-assisted spark: An SVM training acceleration case study

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant