一种基于业务规则配置执行业务请求命令的方法和系统技术方案

技术编号:31026644 阅读:14 留言:0更新日期:2021-11-30 03:29
本发明专利技术提供了一种基于业务规则配置执行业务请求命令的方法和系统,所述方法包括:接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。通过本发明专利技术的方案,用户无需掌握专业的编程知识,只需配置业务规则配置信息就可以完成相应代码的生成,且生成的代码是以字节码的形式存储在规则库中,当被调取执行时省去了编译过程的语法语义分析等环节,运行速度快,效率高。效率高。效率高。

【技术实现步骤摘要】
一种基于业务规则配置执行业务请求命令的方法和系统


[0001]本专利技术涉及业务规则配置领域,具体为一种基于业务规则配置执行业务请求命令的方法和系统。

技术介绍

[0002]规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,其使用预定义的语义模块编写业务决策逻辑。规则引擎通过接受数据输入并根据输入的数据匹配业务规则,从而能够实现根据业务规则做出业务决策。
[0003]在当前业务系统的需求中,规则类需求是非常大的一部分,这部分需求的特征是变化速度较快,开发团队对于“规则开发”容易感到疲惫,且对于规则的少量改动就需要走全流程(开发、测试、部署),迭代成本高。
[0004]以现有的Drools引擎为例,如图1所示,其使用流程如下:首先业务人员整理需求,编写需求文档;而后开发工程师根据需求文档理解相关需求,并使用专用的DSL语言编写相关规则代码;而后将编写完成后的规则代码存储在规则库中;而后客户端使用Drools引擎读取规则库的内容,并进行规则的匹配,通过解释器解释相关规则并执行。
[0005]不难看出,现有的规则引擎用户无法独立完成规则配置,由于规则主体是DSL编程语言,因此仍然需要开发工程师来进行维护。DSL语言是通过解释器进行解释执行的,每次执行规则都需调用一次解释器,性能较低。规则规模变大以后也会变得不好维护,相对硬编码的优势便不复存在。且现有规则的语法仅适合扁平的规则,对于嵌套条件语义(then里嵌套when

then子句)的规则只能将条件进行笛卡尔积组合以后进行配置,不利于维护。

技术实现思路

[0006]为此,需要提供一种规则业务逻辑与系统代码分离的方案,用以简化规则的开发与维护。
[0007]为实现上述目的,在第一方面,本专利技术提供了一种基于业务规则配置执行业务请求命令的方法,所述方法包括:
[0008]接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;
[0009]接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。
[0010]作为一种可选的实施例,所述业务规则配置信息包括规则名称、规则执行条件、条件参数范围、条件运算式、规则调用顺序中的任一项或多项。
[0011]作为一种可选的实施例,接收业务规则配置信息包括:通过可视化界面接收用户输入的业务规则配置信息。
[0012]作为一种可选的实施例,将所述业务规则配置信息编译为相应的字节码文件包括:
[0013]根据所述业务规则配置信息生成第一格式规则代码;
[0014]对所述第一格式规则代码进行编译,得到可执行的字节码文件。
[0015]作为一种可选的实施例,根据所述业务规则配置信息生成第一格式规则代码包括:
[0016]设置生成规则代码对应的依赖库;
[0017]根据所述业务规则配置信息确定规则类主体各项参数;
[0018]基于所述依赖库和所述定规则类主体各项参数生成规则代码块;
[0019]基于所述规则代码块得到第一格式规则代码。
[0020]作为一种可选的实施例,基于所述依赖库和所述定规则类主体各项参数生成规则代码块包括:
[0021]读取业务规则配置信息中的条件类型生成相应的判断逻辑结构;
[0022]根据规则类主体各项参数生成对应的各项执行条件、各个条件的执行结果和代码块的输出结果。
[0023]作为一种可选的实施例,所述第一格式为Java格式,对所述第一格式规则代码进行编译,得到可执行的字节码文件包括:
[0024]设置编译Java格式文件所需的依赖包路径classpath;
[0025]采用JavaCompiler编译器接收java格式规则代码,并将其编译为可执行的字节码文件。
[0026]作为一种可选的实施例,所述规则库中所包含的字节码文件的数量为多个,多个所述字节码文件被打包为一个压缩文件,所述压缩文件中还写入有规则索引信息,所述规则索引信息包括多个索引标识;每一字节码文件对应一索引标识。
[0027]作为一种可选的实施例,从所述规则库中调取所述业务请求命令对应的字节码文件并执行包括:
[0028]获取所述压缩文件并解压,完成所有字节码文件的热加载;
[0029]根据所述业务请求命令确定索引标识,并根据所述索引标识在所述索引信息中进行索引,确定当前业务请求命令对应的字节码文件;
[0030]调用当前业务请求命令对应的字节码文件并执行。
[0031]在第二方面,本专利技术还提供了一种基于业务规则配置执行业务请求命令的系统,所述系统用于执行如本专利技术第一方面所述的方法步骤。
[0032]区别于现有技术,本专利技术提供了一种基于业务规则配置执行业务请求命令的方法和系统,所述方法包括:接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。通过本专利技术的方案,用户无需掌握专业的编程知识,只需配置业务规则配置信息就可以完成相应代码的生成,且生成的代码是以字节码的形式存储在规则库中,当被调取执行时省去了编译过程的语法语义分析等环节,运行速度快,效率高。
附图说明
[0033]图1为现有技术涉及的规则引擎的工作原理图;
[0034]图2为本专利技术一实施方式涉及的基于业务规则配置执行业务请求命令的方法的流程图;
[0035]图3为本专利技术一实施方式涉及的基于业务规则生成规则代码的示意图;
[0036]图4为本专利技术一实施方式涉及的基于业务规则配置执行业务请求命令的方法的框架图;
[0037]图5为本专利技术一实施方式涉及的字节码文件生成方法的流程图;
[0038]图6为本专利技术一实施方式涉及的生成第一格式规则代码的流程图;
[0039]图7为本专利技术一实施方式涉及的生成规则代码块的流程图;
[0040]图8为本专利技术一实施方式涉及的执行字节码文件的流程图。
具体实施方式
[0041]为详细说明技术方案的
技术实现思路
、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0042]为了便于说明本申请涉及的技术方案,以下先对本申请涉及的技术名词进行解释和定义:
[0043]如图2所示,本专利技术提供了一种基于业务规则配置执行业务请求命令的方法,该方法包括:
[0044]步骤S201接收业务规则配置信息并解析,将业务规则配置信息编译为相应的字节码文件并保存至规则库中;
[0045]步骤S202接收业务请求命令,从规则库中调取业务请求命令对应的字节码文件并执行,并业务请求命令的发起方发回执行结果。
[0046]通过本专利技术的方案,用户无需掌握专业的编程知识,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于业务规则配置执行业务请求命令的方法,其特征在于,所述方法包括:接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。2.如权利要求1所述的基于业务规则配置执行业务请求命令的方法,其特征在于,所述业务规则配置信息包括规则名称、规则执行条件、条件参数范围、条件运算式、规则调用顺序中的任一项或多项。3.如权利要求1或2所述的基于业务规则配置执行业务请求命令的方法,其特征在于,接收业务规则配置信息包括:通过可视化界面接收用户输入的业务规则配置信息。4.如权利要求1所述的基于业务规则配置执行业务请求命令的方法,其特征在于,将所述业务规则配置信息编译为相应的字节码文件包括:根据所述业务规则配置信息生成第一格式规则代码;对所述第一格式规则代码进行编译,得到可执行的字节码文件。5.如权利要求4所述的基于业务规则配置执行业务请求命令的方法,其特征在于,根据所述业务规则配置信息生成第一格式规则代码包括:设置生成规则代码对应的依赖库;根据所述业务规则配置信息确定规则类主体各项参数;基于所述依赖库和所述定规则类主体各项参数生成规则代码块;基于所述规则代码块得到第一格式规则代码。6.如权利要求5所述的基于业务规则配置执行业务请求命令的方法,其特征在于,基于所述依赖库和所述定规则类...

【专利技术属性】
技术研发人员:俞晨煌刘金地黄耀晖王剑冰黄炜耀蔡国城周顺翔李振裕温扬睿刘智勇连铮坤
申请(专利权)人:厦门中盾安信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1