CN106990967A - 规则引擎的数据处理方法 - Google Patents
规则引擎的数据处理方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation 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)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (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进行规则删除和/或规则修改。
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)
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)
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 | 中国民航信息网络股份有限公司 | 规则引擎调试方法及系统 |
-
2017
- 2017-04-05 CN CN201710217532.4A patent/CN106990967B/zh active Active
Patent Citations (6)
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)
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) | 数据校验方法和装置 | |
CN110764753A (zh) | 一种业务逻辑代码生成方法、装置、设备及存储介质 | |
US20120150820A1 (en) | System and method for testing data at a data warehouse | |
CN114968788B (zh) | 人工智能算法编程能力自动评估方法、装置、介质及设备 | |
CN109902747A (zh) | 一种身份识别方法、装置、设备及计算机可读存储介质 | |
Meziane et al. | Artificial intelligence applications for improved software engineering development: New prospects: New Prospects | |
CN108648087A (zh) | 关于基金产品投资管理的风险分析方法、装置及设备 | |
Wei et al. | Automated event extraction of CVE descriptions | |
Föhr et al. | Assuring sustainable futures: auditing sustainability reports using ai foundation models | |
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 | |
CN117291521A (zh) | 一种表单审批方法、装置、电子设备及存储介质 | |
CN112241392A (zh) | 调查数据的智能审核方法、系统、存储介质及电子设备 | |
CN116842263A (zh) | 一种智能问答式理财顾问模型的训练处理方法及装置 | |
CN110457023A (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 | |
CN112631930B (zh) | 动态系统测试方法及相关装置 | |
Chen et al. | Research on jumps and volatility in China’s carbon market | |
CN117311675B (zh) | 一种涉及分布式系统的业务配置方法、装置及电子设备 | |
CN117493140B (zh) | 一种针对深度学习模型的评测系统 | |
Ding et al. | Data Generation, Testing and Evaluation of Chinese Natural Language Processing in the Cloud | |
Breitman et al. | Using ontologies to formalize services specifications in multi-agent systems |
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 |