CN106990967A - 规则引擎的数据处理方法 - Google Patents

规则引擎的数据处理方法 Download PDF

Info

Publication number
CN106990967A
CN106990967A CN201710217532.4A CN201710217532A CN106990967A CN 106990967 A CN106990967 A CN 106990967A CN 201710217532 A CN201710217532 A CN 201710217532A CN 106990967 A CN106990967 A CN 106990967A
Authority
CN
China
Prior art keywords
rule
script
data processing
processing method
regulation engine
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
CN201710217532.4A
Other languages
English (en)
Other versions
CN106990967B (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.)
Bai Rong (beijing) Financial Information Service Ltd By Share Ltd
Original Assignee
Bai Rong (beijing) Financial Information Service Ltd By Share Ltd
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 Bai Rong (beijing) Financial Information Service Ltd By Share Ltd filed Critical Bai Rong (beijing) Financial Information Service Ltd By Share Ltd
Priority to CN201710217532.4A priority Critical patent/CN106990967B/zh
Publication of CN106990967A publication Critical patent/CN106990967A/zh
Application granted granted Critical
Publication of CN106990967B publication Critical patent/CN106990967B/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/313Logic programming, e.g. PROLOG programming language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

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)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种规则引擎的数据处理方法,包括:通过界面接收用户输入的规则参数;其中所述规则参数至少包括规则的唯一ID、规则的变量、规则的逻辑、规则权重、规则编码、规则名称;根据前端视图提交的规则参数,后台规则逻辑通过预先设置的脚本模板对所述规则参数生成规则脚本入库;利用预先存储的样例测试数据对规则脚本生成的规则进行正确性验证。

Description

规则引擎的数据处理方法
技术领域
本发明设计计算机软件的数据处理技术领域,尤其涉及一种规则引擎的数据处理方法。
背景技术
随着计算机技术的发展,计算机软件已经可以根据人工输入的各种规则完全独立的完成一些数据处理,不需对对应用重新发布上,且非技术人员可轻松操作,特别是规则逻辑经常变动且种类繁杂的领域具有人工无法比拟的优势。
以商场促销、信用权重调整、会员积分体系等零售业常见的数据集为例,这些业务都是基于预先确定的规则来进行数据处理的,传统技术中都需要将新规则或是调整的规则进行编码并添加到应用程序中,这样就导致每一次新增或调整规则时都需要对代码进行调整,导致费时费力。现有技术中出现了一种规则引擎,利于基于Java语言的Drools就是一种开源的规则引擎,依赖于DSL(Domain-SpecificLanguage)脚本语法来实现。Drools规则引擎的优点在于:
1、完整的实现了Rete算法。
2、提供了强大的Eclipse-Plugin开发支持。
3、通过使用内置的DSL(Domain-SpecificLanguage)脚本语法,可以实现用自然语言方式来描述业务规则,使得业务分析人员也可以看懂业务规则代码。
4、提供了基于WEB的BRMS——Guvnor,Guvnor提供了规则管理的知识库,通过它可以实现规则的版本控制,及规则的在线修改与编译,使得开发人员和***管理人员可以在线管理业务规则。
现有的Drools是业务逻辑集成平台,被分为4个项目:
1、Drools Guvnor(BRMS/BPMS):业务规则管理***。
2、Drools Expert(Rule Engine):这一部分是规则引擎,Drools的核心部分。
3、Drools Flow(process/workflow):工作流引擎。
4、Drools Fusion(cep/temporal reasoning):事件处理。
但是现有的Drools规则引擎也存在这明显的劣势,包括:其依赖于独有的脚本语言,导致使用者的学习成本增加;对于初学者来说,一旦脚本代码出错,很难调错;需要引用大量的依赖包,一旦中间某个环节出错,不好排查;其设计流程复杂,导致对于业务场景比较单一的应用来说过于臃肿。
发明内容
针对现有技术中用于对应用程序的规则继续增加/修改的规则引擎存在的上述问题,本发明实施例提出了一种规则引擎的数据处理方法。
为了解决上述问题,本发明实施例提出了一种规则引擎的数据处理方法,包括:
通过界面接收用户输入的规则参数;其中所述规则参数至少包括规则的唯一ID、规则的变量、规则的逻辑、规则权重、规则编码、规则名称。
根据前端视图提交的规则参数,后台规则逻辑通过预先设置的脚本模板对所述规则参数生成规则脚本入库。
利用预先存储的样例测试数据对根据规则脚本生成的规则进行正确性验证。
其中,所述规则脚本是基于以下的至少一种语言实现的:JavaScript、Scala、JRuby、Jython、Groovy。
其中,所述利用预先存储的样例测试数据对根据规则脚本生成的规则进行正确性验证,具体包括:
获取基于json格式的样例测试数据,并将样例测试数据赋值给基于规则脚本的变量。
通过浏览器的js debug模块对该html脚本中变量的逻辑有效性进行校验,如果校验通过则将变量对应的规则添加到规则库。
其中,所述规则参数还包括规则优先级,即同一组(group)规则,多个命中输出权重最高者。
其中,在规则库中检索到规则逻辑相互冲突时,根据所述规则分组及优先级确定生效的规则。
其中,所述方法还包括:
读取规则脚本内的规则,根据规则反推出的规则的唯一ID、规则的变量、规则的逻辑,通过所述界面进行显示。
其中,根据规则的唯一ID对规则进行删除和/或修改操作。
本发明的上述技术方案的有益效果如下:上述的技术方案提出了一种新的规则引擎的数据处理实现方法,能够根据用户通过界面输入的各种规则参数和逻辑,利用预设的模板生成预设语言的规则脚本。规则逻辑可以在浏览器js debug中调试,非常方便。利用jdk原生库,即可实现,无需引用依赖包。
附图说明
图1是本发明实施例的流程示意图;
图2是本发明实施例中规则集的示意图;
图3为界面的局部的示意图;
图4为界面的另一个局部的示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
如图1所示的,本发明实施例提出了一种规则引擎的数据处理方法,包括:
通过界面接收用户输入的规则参数;其中所述规则参数至少包括规则的唯一ID、规则的变量、规则的逻辑、规则权重、规则编码、规则名称。
根据前端视图提交的规则参数,后台规则逻辑通过预先设置的脚本模板对所述规则参数生成规则脚本入库。
利用预先存储的样例测试数据对根据规则脚本生成的规则进行正确性验证。
其中,所述规则脚本是基于以下的至少一种语言实现的:JavaScript、Scala、JRuby、Jython、Groovy。
其中,所述利用预先存储的样例测试数据对根据规则脚本生成的规则进行正确性验证,具体包括:
获取基于json格式的样例测试数据,并将样例测试数据赋值给基于规则脚本的变量。
通过浏览器的js debug模块对该html脚本中变量的逻辑有效性进行校验,如果校验通过则将变量对应的规则添加到规则库。
其中,所述规则参数还包括规则优先级,即同一组(group)规则,多个命中输出权重最高者。
其中,在规则库中检索到规则逻辑相互冲突时,根据所述规则分组及优先级确定生效的规则。
其中,所述方法还包括:
读取规则脚本内的规则,以将反推出的规则的唯一ID、规则的变量、规则的逻辑、规则权重、规则编码、规则名称通过所述界面进行显示。
本发明实施例是针对现行的规则引擎多是依赖drools实现导致使用者必须熟悉DSL脚本语法的问题,因此设计了一套通过模板和界面来实现友好制定规则的技术方案。在本发明实施例中,可以通过JS语言来撰写脚本,并通过界面接收到的规则的变量、规则的逻辑来撰写规则脚本,这样就可以利用更为通用的语言实现,且对规则进行任何更改后都不需要重启服务就可以生效。本方案的整体java+JavaScript实现,设计思路是JavaScript负责变量、规则的实现。在遵从JavaScript语法的基础上,设计自有的一套规则实现语法。当有规则变量需要添加或修改时,拿到样例测试数据(json格式),赋值到html脚本变量,通过浏览器js debug对变量逻辑有效性校验。一旦测试达到预期,即可通过页面把变量实现逻辑提交到对应变量保存,而引用其变量的规则即可自动实时生效。当规则逻辑有改变或新添加时,通过页面勾选即可修改相应规则(权重、名称、编码、逻辑),并对不同的变量作有效性校验。
其中,JS调试的代码为
var obj={"api_code":"100092","purchaseDatas":{"ApplyLoan":{"month1":{"cell":{"bank":{"allnumber":"5"}}}}}}
var i_m1_cell_bank_num=isKeyExists(‘ApplyLoan.d15.month1.cell.allnumber’,ApplyLoan)?ApplyLoan.d15.month1.cell.allnumber’:“tempVar”;
其中,变量实现的代码为
var i_m1_cell_bank_num=isKeyExists(‘ApplyLoan.d15.month1.cell.allnumber’,ApplyLoan)?ApplyLoan.d15.month1.cell.allnumber’:“tempVar”;
通过本发明实施例提出的技术方案,业务人员无需关注具体的实现逻辑,只需要通过上图的友好界面即可完成规则的设置,使得技术人员解脱出来。而具体到规则的实现上,只要有JavaScript、Java相关开发经验,再加以了解现有规则的设计实现原则,很容易上手,学习成本大大降低。也因为是JavaScript、java的实现,使得调试更加便利、得心应手。本发明实施例采用了JavaScript解释性语言,作为动态脚本语言。如果开发人员对于其他Scala、JRuby、Jython和Groovy等,可以作为JavaScript的替代语言。本发明实施例提出了全新的规则语法设计实现及储存格式设计,能够实现更为简单的规则语法的设计和逻辑实现。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种规则引擎的数据处理方法,其特征在于,包括
通过界面接收用户输入的规则参数;其中所述规则参数至少包括规则的唯一ID、规则的变量、规则的逻辑、规则权重、规则编码、规则名称;
根据前端视图提交的规则参数,后台规则逻辑通过预先设置的脚本模板对所述规则参数生成规则脚本入库;
利用预先存储的样例测试数据对根据规则脚本生成的规则进行正确性验证。
2.根据权利要求1所述的规则引擎的数据处理方法,其特征在于,所述规则脚本是基于以下的至少一种解释性语言实现的:JavaScript、Scala、JRuby、Jython、Groovy。
3.根据权利要求1所述的规则引擎的数据处理方法,其特征在于,所述利用预先存储的样例测试数据对根据规则脚本生成的规则进行正确性验证,具体包括:
获取基于json格式的样例测试数据,并将样例测试数据赋值给基于规则脚本的变量;
通过浏览器的js debug模块对该html脚本中变量的逻辑有效性进行校验,如果校验通过则将变量对应的规则添加到规则库。
4.根据权利要求1所述的规则引擎的数据处理方法,其特征在于,所述规则参数还包括规则优先级,即同一组(group)规则,多个命中输出权重最高者。
5.根据权利要求4所述的规则引擎的数据处理方法,其特征在于,在规则库中检索到规则逻辑相互冲突时,根据所述规则分组及优先级确定生效的规则。
6.根据权利要求1所述的规则引擎的数据处理方法,其特征在于,所述方法还包括:读取规则脚本内的规则,以将反推出的规则的唯一ID、规则的变量、规则的逻辑、规则权重、规则编码、规则名称通过所述界面进行显示。
7.根据权利要求6所述的规则引擎的数据处理方法,其特征在于,其中,根据规则脚本中的规则的唯一ID进行规则删除和/或规则修改。
CN201710217532.4A 2017-04-05 2017-04-05 规则引擎的数据处理方法 Active CN106990967B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710217532.4A CN106990967B (zh) 2017-04-05 2017-04-05 规则引擎的数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710217532.4A CN106990967B (zh) 2017-04-05 2017-04-05 规则引擎的数据处理方法

Publications (2)

Publication Number Publication Date
CN106990967A true CN106990967A (zh) 2017-07-28
CN106990967B CN106990967B (zh) 2020-12-25

Family

ID=59416322

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710217532.4A Active CN106990967B (zh) 2017-04-05 2017-04-05 规则引擎的数据处理方法

Country Status (1)

Country Link
CN (1) CN106990967B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590186A (zh) * 2017-08-07 2018-01-16 北京京东尚科信息技术有限公司 管理和执行数据处理策略的方法和策略引擎***
CN108595656A (zh) * 2018-04-28 2018-09-28 宁波银行股份有限公司 一种数据的处理方法及***
CN109284106A (zh) * 2018-07-18 2019-01-29 平安科技(深圳)有限公司 业务规则的发布管理方法、电子装置及可读存储介质
CN109376285A (zh) * 2018-10-30 2019-02-22 上海掌门科技有限公司 基于json格式的数据排序验证方法、电子设备及介质
CN109597638A (zh) * 2019-01-22 2019-04-09 深圳市蒂蒙技术有限公司 基于实时计算引擎解决数据处理、设备联动的方法及装置
CN110349008A (zh) * 2019-07-02 2019-10-18 北京淇瑀信息科技有限公司 一种基于自然语言的决策支持方法、装置和电子设备
CN110647546A (zh) * 2019-09-18 2020-01-03 北京明略软件***有限公司 第三方规则引擎生成方法及装置
CN111314342A (zh) * 2020-02-15 2020-06-19 西安奥卡云数据科技有限公司 一种物联网规则引擎运行方法
CN111736744A (zh) * 2020-07-22 2020-10-02 成都新希望金融信息有限公司 一种基于dsl的监控预警计算子***
CN112799647A (zh) * 2021-04-12 2021-05-14 四川新网银行股份有限公司 一种面向业务人员的规则引擎适配器装置的识别方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932332A (zh) * 2012-09-28 2013-02-13 用友软件股份有限公司 数据校验***和数据校验方法
CN103532808A (zh) * 2013-10-30 2014-01-22 江苏万全科技有限公司 一种整合规则引擎的企业服务总线
CN104966239A (zh) * 2015-06-30 2015-10-07 天津爱蔻科技有限公司 一种基于规则引擎的智能核保平台
CN105446799A (zh) * 2014-08-22 2016-03-30 阿里巴巴集团控股有限公司 一种计算机***中进行规则管理的方法及***
US20160154629A1 (en) * 2014-11-28 2016-06-02 Ludo Franciscus Maria NOENS Application builder based on metadata
CN105653268A (zh) * 2015-12-28 2016-06-08 中国民航信息网络股份有限公司 规则引擎调试方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932332A (zh) * 2012-09-28 2013-02-13 用友软件股份有限公司 数据校验***和数据校验方法
CN103532808A (zh) * 2013-10-30 2014-01-22 江苏万全科技有限公司 一种整合规则引擎的企业服务总线
CN105446799A (zh) * 2014-08-22 2016-03-30 阿里巴巴集团控股有限公司 一种计算机***中进行规则管理的方法及***
US20160154629A1 (en) * 2014-11-28 2016-06-02 Ludo Franciscus Maria NOENS Application builder based on metadata
CN104966239A (zh) * 2015-06-30 2015-10-07 天津爱蔻科技有限公司 一种基于规则引擎的智能核保平台
CN105653268A (zh) * 2015-12-28 2016-06-08 中国民航信息网络股份有限公司 规则引擎调试方法及***

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590186A (zh) * 2017-08-07 2018-01-16 北京京东尚科信息技术有限公司 管理和执行数据处理策略的方法和策略引擎***
CN107590186B (zh) * 2017-08-07 2021-07-30 北京京东尚科信息技术有限公司 管理和执行数据处理策略的方法和策略引擎***
CN108595656A (zh) * 2018-04-28 2018-09-28 宁波银行股份有限公司 一种数据的处理方法及***
CN108595656B (zh) * 2018-04-28 2022-02-18 宁波银行股份有限公司 一种数据的处理方法及***
CN109284106A (zh) * 2018-07-18 2019-01-29 平安科技(深圳)有限公司 业务规则的发布管理方法、电子装置及可读存储介质
CN109376285B (zh) * 2018-10-30 2021-03-02 上海掌门科技有限公司 基于json格式的数据排序验证方法、电子设备及介质
CN109376285A (zh) * 2018-10-30 2019-02-22 上海掌门科技有限公司 基于json格式的数据排序验证方法、电子设备及介质
CN109597638A (zh) * 2019-01-22 2019-04-09 深圳市蒂蒙技术有限公司 基于实时计算引擎解决数据处理、设备联动的方法及装置
CN109597638B (zh) * 2019-01-22 2022-07-08 深圳市蒂蒙技术有限公司 基于实时计算引擎解决数据处理、设备联动的方法及装置
CN110349008A (zh) * 2019-07-02 2019-10-18 北京淇瑀信息科技有限公司 一种基于自然语言的决策支持方法、装置和电子设备
CN110349008B (zh) * 2019-07-02 2023-11-17 北京淇瑀信息科技有限公司 一种基于自然语言的决策支持方法、装置和电子设备
CN110647546A (zh) * 2019-09-18 2020-01-03 北京明略软件***有限公司 第三方规则引擎生成方法及装置
CN111314342A (zh) * 2020-02-15 2020-06-19 西安奥卡云数据科技有限公司 一种物联网规则引擎运行方法
CN111736744A (zh) * 2020-07-22 2020-10-02 成都新希望金融信息有限公司 一种基于dsl的监控预警计算子***
CN111736744B (zh) * 2020-07-22 2020-11-24 成都新希望金融信息有限公司 一种基于dsl的监控预警计算子***
CN112799647A (zh) * 2021-04-12 2021-05-14 四川新网银行股份有限公司 一种面向业务人员的规则引擎适配器装置的识别方法
CN112799647B (zh) * 2021-04-12 2021-11-23 四川新网银行股份有限公司 一种面向业务人员的规则引擎适配器装置的识别方法

Also Published As

Publication number Publication date
CN106990967B (zh) 2020-12-25

Similar Documents

Publication Publication Date Title
CN106990967A (zh) 规则引擎的数据处理方法
CN104391934B (zh) 数据校验方法和装置
US20120150820A1 (en) System and method for testing data at a data warehouse
CN111199469A (zh) 用户还款模型生成方法、装置及电子设备
CN109902747A (zh) 一种身份识别方法、装置、设备及计算机可读存储介质
CN109766416A (zh) 一种新能源政策信息抽取方法及***
Bao et al. Quantitative evaluation of common cause failures in high safety-significant safety-related digital instrumentation and control systems in nuclear power plants
Meziane et al. Artificial intelligence applications for improved software engineering development: New prospects: New Prospects
CN104657248A (zh) Java线程堆栈分析方法及***
Wei et al. Automated event extraction of CVE descriptions
Holbrook et al. A study of methods for textual satisfaction assessment
Gu et al. Investigation on the quality assurance procedure and evaluation methodology of machine learning building energy model systems
CN116842263A (zh) 一种智能问答式理财顾问模型的训练处理方法及装置
CN116821423A (zh) 配电网智能解析和知识型故障处理辅助***及方法
Demeyer et al. Declarative workflows to efficiently manage flexible and advanced business processes
WO2022237334A1 (zh) 一种业务逻辑的知识表示和推演方法及装置
Gutiérrez et al. Beyond simple sequencing: Sequencing of learning activities using hierarchical graphs
CN112766872A (zh) 资金发放***的多级审批模块
Kushwaha et al. Cognitive complexity metrics and its impact on software reliability based on cognitive software development model
CN112241392A (zh) 调查数据的智能审核方法、***、存储介质及电子设备
CN112631930B (zh) 动态***测试方法及相关装置
Chen et al. Research on jumps and volatility in China’s carbon market
CN117311675B (zh) 一种涉及分布式***的业务配置方法、装置及电子设备
CN117806980B (zh) 一种基于大语言模型的测试用例自动生成装置
CN113703769B (zh) 一种cli命令执行方法及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100043 No. 76, 5th floor, No. 5 Building, 30 Shixing Street, Shijingshan District, Beijing

Applicant after: Bairong Yunchuang Technology Co.,Ltd.

Address before: 100043 Beijing City, Shijingshan District Shijingshan Road, No. 31 hospital Shengjing International Plaza Building 3, 607

Applicant before: BAIRONG (BEIJING) FINANCIAL INFORMATION SERVICE Co.,Ltd.

GR01 Patent grant
GR01 Patent grant