CN113703740A - 一种基于业务规则配置执行业务请求命令的方法和系统 - Google Patents
一种基于业务规则配置执行业务请求命令的方法和系统 Download PDFInfo
- Publication number
- CN113703740A CN113703740A CN202111091925.8A CN202111091925A CN113703740A CN 113703740 A CN113703740 A CN 113703740A CN 202111091925 A CN202111091925 A CN 202111091925A CN 113703740 A CN113703740 A CN 113703740A
- Authority
- CN
- China
- Prior art keywords
- rule
- service
- request command
- service request
- file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 239000003999 initiator Substances 0.000 claims abstract description 7
- 230000001419 dependent effect Effects 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 14
- 230000009471 action Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000011161 development Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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/315—Object-oriented languages
-
- 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/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于业务规则配置执行业务请求命令的方法和系统,所述方法包括:接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。通过本发明的方案,用户无需掌握专业的编程知识,只需配置业务规则配置信息就可以完成相应代码的生成,且生成的代码是以字节码的形式存储在规则库中,当被调取执行时省去了编译过程的语法语义分析等环节,运行速度快,效率高。
Description
技术领域
本发明涉及业务规则配置领域,具体为一种基于业务规则配置执行业务请求命令的方法和系统。
背景技术
规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,其使用预定义的语义模块编写业务决策逻辑。规则引擎通过接受数据输入并根据输入的数据匹配业务规则,从而能够实现根据业务规则做出业务决策。
在当前业务系统的需求中,规则类需求是非常大的一部分,这部分需求的特征是变化速度较快,开发团队对于“规则开发”容易感到疲惫,且对于规则的少量改动就需要走全流程(开发、测试、部署),迭代成本高。
以现有的Drools引擎为例,如图1所示,其使用流程如下:首先业务人员整理需求,编写需求文档;而后开发工程师根据需求文档理解相关需求,并使用专用的DSL语言编写相关规则代码;而后将编写完成后的规则代码存储在规则库中;而后客户端使用Drools引擎读取规则库的内容,并进行规则的匹配,通过解释器解释相关规则并执行。
不难看出,现有的规则引擎用户无法独立完成规则配置,由于规则主体是DSL编程语言,因此仍然需要开发工程师来进行维护。DSL语言是通过解释器进行解释执行的,每次执行规则都需调用一次解释器,性能较低。规则规模变大以后也会变得不好维护,相对硬编码的优势便不复存在。且现有规则的语法仅适合扁平的规则,对于嵌套条件语义(then里嵌套when…then子句)的规则只能将条件进行笛卡尔积组合以后进行配置,不利于维护。
发明内容
为此,需要提供一种规则业务逻辑与系统代码分离的方案,用以简化规则的开发与维护。
为实现上述目的,在第一方面,本发明提供了一种基于业务规则配置执行业务请求命令的方法,所述方法包括:
接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;
接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。
作为一种可选的实施例,所述业务规则配置信息包括规则名称、规则执行条件、条件参数范围、条件运算式、规则调用顺序中的任一项或多项。
作为一种可选的实施例,接收业务规则配置信息包括:通过可视化界面接收用户输入的业务规则配置信息。
作为一种可选的实施例,将所述业务规则配置信息编译为相应的字节码文件包括:
根据所述业务规则配置信息生成第一格式规则代码;
对所述第一格式规则代码进行编译,得到可执行的字节码文件。
作为一种可选的实施例,根据所述业务规则配置信息生成第一格式规则代码包括:
设置生成规则代码对应的依赖库;
根据所述业务规则配置信息确定规则类主体各项参数;
基于所述依赖库和所述定规则类主体各项参数生成规则代码块;
基于所述规则代码块得到第一格式规则代码。
作为一种可选的实施例,基于所述依赖库和所述定规则类主体各项参数生成规则代码块包括:
读取业务规则配置信息中的条件类型生成相应的判断逻辑结构;
根据规则类主体各项参数生成对应的各项执行条件、各个条件的执行结果和代码块的输出结果。
作为一种可选的实施例,所述第一格式为Java格式,对所述第一格式规则代码进行编译,得到可执行的字节码文件包括:
设置编译Java格式文件所需的依赖包路径classpath;
采用JavaCompiler编译器接收java格式规则代码,并将其编译为可执行的字节码文件。
作为一种可选的实施例,所述规则库中所包含的字节码文件的数量为多个,多个所述字节码文件被打包为一个压缩文件,所述压缩文件中还写入有规则索引信息,所述规则索引信息包括多个索引标识;每一字节码文件对应一索引标识。
作为一种可选的实施例,从所述规则库中调取所述业务请求命令对应的字节码文件并执行包括:
获取所述压缩文件并解压,完成所有字节码文件的热加载;
根据所述业务请求命令确定索引标识,并根据所述索引标识在所述索引信息中进行索引,确定当前业务请求命令对应的字节码文件;
调用当前业务请求命令对应的字节码文件并执行。
在第二方面,本发明还提供了一种基于业务规则配置执行业务请求命令的系统,所述系统用于执行如本发明第一方面所述的方法步骤。
区别于现有技术,本发明提供了一种基于业务规则配置执行业务请求命令的方法和系统,所述方法包括:接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。通过本发明的方案,用户无需掌握专业的编程知识,只需配置业务规则配置信息就可以完成相应代码的生成,且生成的代码是以字节码的形式存储在规则库中,当被调取执行时省去了编译过程的语法语义分析等环节,运行速度快,效率高。
附图说明
图1为现有技术涉及的规则引擎的工作原理图;
图2为本发明一实施方式涉及的基于业务规则配置执行业务请求命令的方法的流程图;
图3为本发明一实施方式涉及的基于业务规则生成规则代码的示意图;
图4为本发明一实施方式涉及的基于业务规则配置执行业务请求命令的方法的框架图;
图5为本发明一实施方式涉及的字节码文件生成方法的流程图;
图6为本发明一实施方式涉及的生成第一格式规则代码的流程图;
图7为本发明一实施方式涉及的生成规则代码块的流程图;
图8为本发明一实施方式涉及的执行字节码文件的流程图。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
为了便于说明本申请涉及的技术方案,以下先对本申请涉及的技术名词进行解释和定义:
如图2所示,本发明提供了一种基于业务规则配置执行业务请求命令的方法,该方法包括:
步骤S201接收业务规则配置信息并解析,将业务规则配置信息编译为相应的字节码文件并保存至规则库中;
步骤S202接收业务请求命令,从规则库中调取业务请求命令对应的字节码文件并执行,并业务请求命令的发起方发回执行结果。
通过本发明的方案,用户无需掌握专业的编程知识,只需配置业务规则配置信息就可以完成相应代码的生成,且生成的代码是以字节码的形式存储在规则库中,当被调取执行时省去了编译过程的语法语义分析等环节,运行速度快,效率高。
在某些实施例中,业务规则配置信息包括规则名称、规则执行条件、条件参数范围、条件运算式、规则调用顺序中的任一项或多项。优选的,接收业务规则配置信息包括:通过可视化界面接收用户输入的业务规则配置信息。
业务规则一般由规则条件、执行的动作(如计算依据条件计算结果、返回某个固定值等)构成,本发明通过将规则的条件与动作简化为可视化界面中的选择框的形式,有效简化了规则的配置过程。在业务规则配置完成后,生成的业务规则配置信息会被存储到数据库中,当需要对业务规则进行解析时通过读取数据库中的内容,生成java文件,并将java文件编译为字节码文件,而后将所有字节码文件打包为jar包的方式,从而完成业务规则到代码的转变。规则代码执行时,根据业务请求命令中所包含的业务数据的运算需要自动匹配规则并执行。
如图3所示,为本发明一实施方式涉及的基于业务规则生成规则代码的示意图。以购物打折应用场景为例,假设业务规则为:用户购物满100元,送10元优惠券;用户购物满200元,送25元优惠券;用户购物满300元,送40元优惠券。如图4所示,业务人员通过图形界面配置业务规则信息,客户端将业务规则配置信息存储到数据库中。规则生成器读取业务规则配置信息生成java代码,使用编译器编译为jvm可执行的字节码。业务系统(业务请求命令的发起方)通过规则执行器加载规则包,执行具体规则。通过这种方式,完成了业务规则从配置、编译、执行的过程。
在本实施例中,通过将业务规则拆分为条件、动作等方式来简化业务规则的配置。具体的,业务规则配置信息的生成包括以下内容:
(1)配置规则名称,用于标识不同的规则;
(2)新增规则条件,可以同时存在多个条件;
(3)配置条件左值、右值,左值、右值可以是引用预定义的函数,也可以是调用规则引擎时传入的参数;
(4)配置比较方式:如“>”“<”“=”“<>”“>=”“<=”,范围IN、NOT IN、BETWEEN等;
(5)配置规则动作:可以调用预定义的函数,返回固定值,还可以使用传入参数按照预定义规则进行计算后得到结果并返回。
优选的,所述业务规则配置信息包括业务规则名称表、规则条件表、规则条件内容表和规则动作表,配置好的规则名称被存储于业务规则名称表中,配置好的新增规则条件被存储于规则条件表中,配置好的条件左值、右值、比较内容可以被存储于规则条件内容表中,配置好的规则动作可以被存储于规则动作表中。
如图5所示,在某些实施例中,将业务规则配置信息编译为相应的字节码文件包括:
首先进入步骤S501根据业务规则配置信息生成第一格式规则代码;
而后进入步骤S502对第一格式规则代码进行编译,得到可执行的字节码文件。
优选的,如图6所示,根据业务规则配置信息生成第一格式规则代码包括:
首先进入步骤S601设置生成规则代码对应的依赖库;
而后进入步骤S602根据业务规则配置信息确定规则类主体各项参数;
而后进入步骤S603基于依赖库和定规则类主体各项参数生成规则代码块;
而后进入步骤S604基于规则代码块得到第一格式规则代码。
如图7所示,在某些实施例中,基于依赖库和定规则类主体各项参数生成规则代码块包括:
首先进入步骤S701读取业务规则配置信息中的条件类型生成相应的判断逻辑结构;
而后进入步骤S702根据规则类主体各项参数生成对应的各项执行条件、各个条件的执行结果和代码块的输出结果。
在本发明中,第一格式规则代码是先通过读取业务规则配置信息进行分析,而后生成规则代码并编译后得到的可执行的规则包,具体生成步骤如下:
(1)从数据读取规则配置信息;
(2)引入规则编译所需的依赖库;
(3)根据规则配置生成规则类主体(类名、函数名、常量、数组等);
(4)读取规则定义,生成规则代码块;
(5)将规则代码输出为.java文件(即第一格式规则代码)。
在这一实施例中,步骤(4)优选包括以下内容:
第一,读取配置的规则条件,根据条件类型(全匹配/半匹配),生成相应的判断逻辑结构,具体包括:
当条件类型为全匹配类型时,判断逻辑结构如下:
if(条件1){条件1执行体}
if(条件2){条件2执行体}
if(条件3){条件3执行体}
当条件类型为半匹配类型时,判断逻辑结构如下:
if(条件1){条件1执行体}
else if(条件2){条件2执行体}
else if(条件3){条件3执行体}
else{…}
第二,读取条件的内容,根据内容的左、右值的首字符判断是执行函数获取返回值,读取传入的参数,将条件值转换为常量值、执行其他规则等操作。根据条件的运算符,生成具体的运算逻辑(与、或、非等)。
第三,读取配置的规则动作,根据规则动作中的动作类型判断是要执行赋值、返回值、调用函数、调用其他规则等操作。
在某些实施例中,第一格式为Java格式,对第一格式规则代码进行编译,得到可执行的字节码文件包括:设置编译Java格式文件所需的依赖包路径classpath;采用JavaCompiler编译器接收java格式规则代码,并将其编译为可执行的字节码文件。
优选的,规则库中所包含的字节码文件的数量为多个,多个字节码文件被打包为一个压缩文件,压缩文件中还写入有规则索引信息,规则索引信息包括多个索引标识;每一字节码文件对应一索引标识。
规则代码的编译与打包具体流程如下:
(1)获取JDK提供的JavaCompiler编译器;
(2)设置编译所需的依赖包路径classpath;
(3)使用jdk提供的StandardJavaFileManager获取java格式规则代码文件;
(4)将规则代码文件提交给JavaCompiler编译器,获取编译后的字节码文件;
(5)将字节码文件打包为jar文件,并写入规则索引信息。
如图8所示,在某些实施例中,从规则库中调取业务请求命令对应的字节码文件并执行包括:
首先进入步骤S801获取压缩文件并解压,完成所有字节码文件的热加载;
而后进入步骤S802根据业务请求命令确定索引标识,并根据索引标识在索引信息中进行索引,确定当前业务请求命令对应的字节码文件;
而后进入步骤S803调用当前业务请求命令对应的字节码文件并执行。
在本实施例中,当业务系统发送业务请求命令时,业务请求命令中包含了业务数据,当业务数据传入规则引擎时,规则引擎根据业务数据自动匹配相应的规则并执行,同时匹配的规则可以热加载,不需要重启。
具体的,加载规则如下:
(1)读取压缩包文件;
(2)清除缓存的规则实例;
(3)创建新的规则加载器用于读取规则包中的class文件,完成规则文件的热加载;
(4)解析规则包中的索引文件,用于执行时的规则匹配.
字节码文件被执行的规则如下:
(1)读取规则引擎的业务数据;
(2)根据业务数据自动匹配具体的规则;
(3)获取规则名对应的class文件,实例化规则逻辑并缓存;
(4)调用规则实例,传入业务参数,执行具体的规则函数,并获取返回值。
在第二方面,本发明提供了一种基于业务规则配置执行业务请求命令的系统,系统用于执行如本发明第一方面的方法步骤。
相较于现有技术,本发明具有以下特点:
(1)提供了一种通过可视化界面(如web视图)进行规则配置的方式,普通的业务人员单独即可完成规则配置,不需要具有专业编程知识的开发工程师介入,有效提升了业务处理效率。
(2)通过设计一种规则配置界面,结合相应的规则配置的存储、分析、处理系统,实现从业务规则到计算机代码的转换。并且在执行时能够依据业务数据自动匹配业务规则。对于存在大量业务规则的情况时,能够有效实现对各个业务规则的管理,便于维护。
(3)提供了一种规则分析算法,通过对业务逻辑进行结构化分析,得到java代码,具体步骤如下:
(1)将业务逻辑的条件解析为左值left_value,右值right_value,比较符compare_type;
(2)对left_value,right_value进行解析;
(3)对compare_type进行处理,解析为具体的逻辑运算符(">"、"<"、"=="、"!="、">="、"<="、"IN"、"NOT IN"、"BETWEEN");
(4)将业务逻辑的动作解析为具体的代码;
(5)将代码逻辑输出为.java文件,完成分析流程。
在上述实现方式中,步骤(2)具体包括:
2-1:读取value的首字符ch;
2-2:ch值为'C',按照预定义的数据类型type(1:整型、2:长整型、3:实数、4:字符串、5:时间、6:整型集合),将value转换为对应类型的常量值;
2-3:ch值为'#'或'$',则value为入参数据索引,按索引方式从传入规则引擎的业务参数record中获取运算值;
2-4:ch值为'%'或'*',则value为入参数据名称,按名称方式从传入规则引擎的业务参数record中获取运算值;
2-5:ch值为'F',按函数调用进行处理。
步骤2-5又具体包括:
2-5-1:将value拆分为函数名funcId与入参realParams,如:test(a,b,c),拆分为函数名test,入参[a,b,c];
2-5-2:根据funcId读取预定义的参数类型列表funcParamList;
2-5-3:根据funcParamList,使用getVariable程序将realParams转换为实际的数据类型;
步骤(4)具体包括:
4-1:遍历规则动作actList中的每一项act,读取act中的变量名variable_id,值result_value;
4-2:将act的动作类型赋予action_type;
4-3:action_type为0,为赋值操作,通过getVariable程序处理result_value得到res,将业务数据record中的variable_id的值,修改为res;
4-4:action_type为2,为返回结果,通过getVariable程序处理result_value得到res,将res返回,结束规则处理流程;
4-5:action_type为1,为函数调用,通过getVariable程序处理result_value得到res,提供给后续流程使用。
本发明提供了一种基于业务规则配置执行业务请求命令的方法和系统,所述方法包括:接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。通过本发明的方案,用户无需掌握专业的编程知识,只需配置业务规则配置信息就可以完成相应代码的生成,且生成的代码是以预编译后的字节码的形式存储在规则库中,当被调取执行时省去了编译过程的语法语义分析等环节,运行速度快,效率高。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法的全部或部分步骤。计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
Claims (10)
1.一种基于业务规则配置执行业务请求命令的方法,其特征在于,所述方法包括:
接收业务规则配置信息并解析,将所述业务规则配置信息编译为相应的字节码文件并保存至规则库中;
接收业务请求命令,从所述规则库中调取所述业务请求命令对应的字节码文件并执行,并所述业务请求命令的发起方发回执行结果。
2.如权利要求1所述的基于业务规则配置执行业务请求命令的方法,其特征在于,所述业务规则配置信息包括规则名称、规则执行条件、条件参数范围、条件运算式、规则调用顺序中的任一项或多项。
3.如权利要求1或2所述的基于业务规则配置执行业务请求命令的方法,其特征在于,接收业务规则配置信息包括:通过可视化界面接收用户输入的业务规则配置信息。
4.如权利要求1所述的基于业务规则配置执行业务请求命令的方法,其特征在于,将所述业务规则配置信息编译为相应的字节码文件包括:
根据所述业务规则配置信息生成第一格式规则代码;
对所述第一格式规则代码进行编译,得到可执行的字节码文件。
5.如权利要求4所述的基于业务规则配置执行业务请求命令的方法,其特征在于,根据所述业务规则配置信息生成第一格式规则代码包括:
设置生成规则代码对应的依赖库;
根据所述业务规则配置信息确定规则类主体各项参数;
基于所述依赖库和所述定规则类主体各项参数生成规则代码块;
基于所述规则代码块得到第一格式规则代码。
6.如权利要求5所述的基于业务规则配置执行业务请求命令的方法,其特征在于,基于所述依赖库和所述定规则类主体各项参数生成规则代码块包括:
读取业务规则配置信息中的条件类型生成相应的判断逻辑结构;
根据规则类主体各项参数生成对应的各项执行条件、各个条件的执行结果和代码块的输出结果。
7.如权利要求1所述的基于业务规则配置执行业务请求命令的方法,其特征在于,所述第一格式为Java格式,对所述第一格式规则代码进行编译,得到可执行的字节码文件包括:
设置编译Java格式文件所需的依赖包路径classpath;
采用JavaCompiler编译器接收java格式规则代码,并将其编译为可执行的字节码文件。
8.如权利要求1所述的基于业务规则配置执行业务请求命令的方法,其特征在于,所述规则库中所包含的字节码文件的数量为多个,多个所述字节码文件被打包为一个压缩文件,所述压缩文件中还写入有规则索引信息,所述规则索引信息包括多个索引标识;每一字节码文件对应一索引标识。
9.如权利要求8所述的基于业务规则配置执行业务请求命令的方法,其特征在于,从所述规则库中调取所述业务请求命令对应的字节码文件并执行包括:
获取所述压缩文件并解压,完成所有字节码文件的热加载;
根据所述业务请求命令确定索引标识,并根据所述索引标识在所述索引信息中进行索引,确定当前业务请求命令对应的字节码文件;
调用当前业务请求命令对应的字节码文件并执行。
10.一种基于业务规则配置执行业务请求命令的系统,其特征在于,所述系统用于执行如权利要求1至9任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111091925.8A CN113703740A (zh) | 2021-09-17 | 2021-09-17 | 一种基于业务规则配置执行业务请求命令的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111091925.8A CN113703740A (zh) | 2021-09-17 | 2021-09-17 | 一种基于业务规则配置执行业务请求命令的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113703740A true CN113703740A (zh) | 2021-11-26 |
Family
ID=78661493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111091925.8A Pending CN113703740A (zh) | 2021-09-17 | 2021-09-17 | 一种基于业务规则配置执行业务请求命令的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703740A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114943461A (zh) * | 2022-06-02 | 2022-08-26 | 厦门民航凯亚有限公司 | 一种飞机上供应品动态配备方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090171903A1 (en) * | 2007-12-29 | 2009-07-02 | Aetna Inc. | Business Rules Externalization System |
CN105446799A (zh) * | 2014-08-22 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种计算机系统中进行规则管理的方法及系统 |
CN110196719A (zh) * | 2019-05-20 | 2019-09-03 | 中国工商银行股份有限公司 | 一种基于自然语言处理的业务规则生成方法与系统 |
CN111913692A (zh) * | 2020-07-03 | 2020-11-10 | 广州翰智软件有限公司 | 一种基于自然语言设计的计费引擎 |
CN111966342A (zh) * | 2020-08-10 | 2020-11-20 | 上海中通吉网络技术有限公司 | 基于类自然语言的规则配置与解析方法、系统及设备 |
CN112488855A (zh) * | 2020-11-23 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种基于规则模板的业务校验方法及设备 |
CN112764827A (zh) * | 2020-12-31 | 2021-05-07 | 重庆广播电视大学重庆工商职业学院 | 一种具有安全验证的Java类热加载方法 |
CN112947934A (zh) * | 2021-02-25 | 2021-06-11 | 山东爱城市网信息技术有限公司 | 一种动态变换业务逻辑的方法、设备及介质 |
CN113342323A (zh) * | 2021-06-29 | 2021-09-03 | 银清科技有限公司 | 软件在线开发的方法及装置 |
-
2021
- 2021-09-17 CN CN202111091925.8A patent/CN113703740A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090171903A1 (en) * | 2007-12-29 | 2009-07-02 | Aetna Inc. | Business Rules Externalization System |
CN105446799A (zh) * | 2014-08-22 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种计算机系统中进行规则管理的方法及系统 |
CN110196719A (zh) * | 2019-05-20 | 2019-09-03 | 中国工商银行股份有限公司 | 一种基于自然语言处理的业务规则生成方法与系统 |
CN111913692A (zh) * | 2020-07-03 | 2020-11-10 | 广州翰智软件有限公司 | 一种基于自然语言设计的计费引擎 |
CN111966342A (zh) * | 2020-08-10 | 2020-11-20 | 上海中通吉网络技术有限公司 | 基于类自然语言的规则配置与解析方法、系统及设备 |
CN112488855A (zh) * | 2020-11-23 | 2021-03-12 | 中国人寿保险股份有限公司 | 一种基于规则模板的业务校验方法及设备 |
CN112764827A (zh) * | 2020-12-31 | 2021-05-07 | 重庆广播电视大学重庆工商职业学院 | 一种具有安全验证的Java类热加载方法 |
CN112947934A (zh) * | 2021-02-25 | 2021-06-11 | 山东爱城市网信息技术有限公司 | 一种动态变换业务逻辑的方法、设备及介质 |
CN113342323A (zh) * | 2021-06-29 | 2021-09-03 | 银清科技有限公司 | 软件在线开发的方法及装置 |
Non-Patent Citations (2)
Title |
---|
BAJWA, IMRAN SARWAR AND SIDDIQUE, M. IMRAN AND CHOUDHARY, M. ABBAS: "Rule based Production Systems for Automatic Code Generation in Java", 2006 1ST INTERNATIONAL CONFERENCE ON DIGITAL INFORMATION MANAGEMENT, vol. 2007, 4 June 2007 (2007-06-04) * |
马雪莲: "基于规则引擎的某企业业务审批系统的设计与实现", 中国优秀硕士学位论文全文数据库——信息科技辑, vol. 2015, no. 01, 15 January 2015 (2015-01-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114943461A (zh) * | 2022-06-02 | 2022-08-26 | 厦门民航凯亚有限公司 | 一种飞机上供应品动态配备方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3631618B1 (en) | Automated dependency analyzer for heterogeneously programmed data processing system | |
CN106547527B (zh) | 一种JavaScript文件构建方法及装置 | |
US9619291B2 (en) | System and method for a task management library to execute map-reduce applications in a map-reduce framework | |
US8307350B2 (en) | Multi level virtual function tables | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
US9928042B2 (en) | Automatic classification of compilers | |
US20110258600A1 (en) | Using a dsl for calling apis to test software | |
KR100750834B1 (ko) | 자바 바이트 코드의 데이터 모니터링 시 모니터링된 데이터의 호출관계 규명 방법 및 이 방법을 이용한 알고리즘을 통해 자바 어플리케이션의 각종 성능 데이터를 추출하기 위한 컴퓨터 판독 가능한 기록 매체 | |
US20100153930A1 (en) | Customizable dynamic language expression interpreter | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
CN113703740A (zh) | 一种基于业务规则配置执行业务请求命令的方法和系统 | |
Armengol-Estapé et al. | ExeBench: an ML-scale dataset of executable C functions | |
De Alwis et al. | Remodularization analysis for microservice discovery using syntactic and semantic clustering | |
CN111259042B (zh) | 一种动态查询方法及系统 | |
WO2017065631A1 (en) | Method and system for transforming a source code into a target code on a computer | |
CN117112341A (zh) | 一种基于asm字节码插桩的非入侵准实时监控方法及系统 | |
de Moura et al. | Elaboration in dependent type theory | |
US7555708B2 (en) | Mechanism for converting text output into objects | |
JPH07182179A (ja) | オブジェクト指向データベース管理装置 | |
CN117785213B (zh) | 基于Rust开发的前端构建工具及构建方法 | |
Yang et al. | Acquisition of ERA models from data intensive code | |
CN110362595A (zh) | 一种sql语句动态解析方法 | |
WO2011090032A1 (ja) | 並列処理プログラム生成方法、並列処理プログラム生成プログラム、及び並列処理プログラム生成装置 | |
Semenov et al. | Obfuscated Code Quality Measurement | |
KR102614060B1 (ko) | 일반 애플리케이션을 서비스형 소프트웨어 애플리케이션으로 변환하기 위한 자동 분석 방법 |
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 |