CN116243892B - 一种决策引擎规则的动态java实现方法 - Google Patents
一种决策引擎规则的动态java实现方法 Download PDFInfo
- Publication number
- CN116243892B CN116243892B CN202310023975.5A CN202310023975A CN116243892B CN 116243892 B CN116243892 B CN 116243892B CN 202310023975 A CN202310023975 A CN 202310023975A CN 116243892 B CN116243892 B CN 116243892B
- Authority
- CN
- China
- Prior art keywords
- target
- logic
- service
- java
- expression
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提供了一种决策引擎规则的动态JAVA实现方法,包括:获取并解析业务数据集,得到业务流程和业务请求;基于业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式;基于业务请求在预设赋值函数数据库中提取相应的目标赋值函数;基于目标逻辑表达式和目标赋值函数,建立数组表达式;将业务数据集输入到数组表达式中进行计算得到决策评分,基于决策评分修正JAVA源代码,将修正后的JAVA源代码与业务数据集结合并运行,得到业务程序,这样一来可以针对不同的业务数据集建立一个专用的JAVA代码进行数据处理,得到对应的业务程序。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种决策引擎规则的动态JAVA实现方法。
背景技术
JAVA是一种面向对象的编程语言,由于其严格的面向对象风格,在各种实际业务逻辑的抽象应用程序中得到了非常广泛的使用,然而,随着业务逻辑的复杂度增加,对象关系日渐复杂,不得不需要处理数据内部复杂的树状结构,从而导致大量的逻辑判断与代码分支,逻辑不直观,代码维护困难。且许多现代应用程序对可以根据各种源编译而来的大的数据的集合进行处理,然而处理不同的数据需要使用不同的JAVA代码,一个JAVA代码不能满足所有的数据,且不同数据之间的微小差距都不可忽视。
因此,本发明提供了一种决策引擎规则的动态JAVA实现方法。
发明内容
本发明提供一种决策引擎规则的动态JAVA实现方法,用以针对不同的业务数据集建立一个专用的JAVA代码进行数据处理,得到对应的业务程序。
本发明提供了一种决策引擎规则的动态JAVA实现方法,包括:
获取并解析业务数据集,得到业务流程和业务请求;基于业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式;基于业务请求在预设赋值函数数据库中提取相应的目标赋值函数;基于目标逻辑表达式和目标赋值函数,建立数组表达式;将业务数据集输入到数组表达式中进行计算得到决策评分,基于决策评分修正JAVA源代码,将修正后的JAVA源代码与业务数据集结合并运行,得到业务程序。
在一种可实施的方式中,
并解析业务数据集,得到业务流程和业务请求,包括:
获取业务数据集;
解析所述业务数据集中的每一条业务数据,得到每一条业务数据对应的业务进程;
基于所述业务进程生成对应的业务流程;
分别获取每一业务进程对应的进程结果,得到每一业务进程对应的进程请求;
获取所有的进程请求,生成业务请求。
在一种可实施的方式中,
基于所述业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式,包括:
获取所述业务流程包含的若干条业务进程;
在所述预设逻辑表达式数据库中查找每一业务进程对应的进程逻辑表达式;
将所有的进程逻辑表达式依次排列,得到目标逻辑表达式。
在一种可实施的方式中,
基于所述业务请求在预设赋值函数数据库中提取相应的目标赋值函数的过程,包括:
获取所述业务请求中包含的若干条进程请求;
解析所述业务请求,得到每一条进程请求对应的请求类型以及数据域;
在所述预设赋值函数数据库中提取与所述请求类型一致的请求赋值函数;
利用所述数据域调整对应请求赋值函数的值域;
将调整值域后的请求赋值函数进行排序,生成目标赋值函数。
在一种可实施的方式中,
基于所述目标逻辑表达式和目标赋值函数,建立数组表达式的过程,包括:
解析所述业务流程,得到若干个条业务进程;分别获取不同业务进程之间的第一逻辑关系建立逻辑二叉树;将目标逻辑表达式和目标赋值函数输入到所述逻辑二叉树上进行同步逻辑运算,得到所述逻辑二叉树上每一树节点上对应的节点逻辑表达式和节点赋值函数;
若同步逻辑运算的运算结果不合理,基于不同树节点之间的第二逻辑关系修正每一树节点上对应的节点逻辑表达式和节点赋值函数,直到逻辑运算结果合理为止;
在逻辑运算结果合理时,将每一树节点上的节点逻辑表达式和节点赋值函数进行结合,得到数组表达式。
在一种可实施的方式中,
将目标逻辑表达式和目标赋值函数输入到所述逻辑二叉树上进行同步逻辑运算的过程,包括:
解析所述目标逻辑表达式,得到若干个进程逻辑表达式;解析所述目标赋值函数,得到若干个请求赋值函数;利用所述逻辑二叉树上不同树节点之间的第二逻辑关系,分别将不同的进程逻辑表达式和请求赋值函数进行配对,得到若干个配对组;
基于所述逻辑二叉树不同树节点的层次递进关系,将不同的配对组输入到对应的树节点上;
运行所述逻辑二叉树,提取发生错误的目标树节点,将不同目标树节点上包含的配对组进行调换,直到所述逻辑二叉树正确运行为止,完成同步逻辑运算。
在一种可实施的方式中,
基于决策评分修正JAVA源代码,修正后的JAVA源代码运行与业务数据集结合并运行,得到业务程序的过程,包括:
解析所述决策评分,得到所述业务数据集的安全等级;
基于所述安全等级修正所述JAVA源代码的总字节通过速率,得到第一JAVA修正代码;
运行所述第一JAVA修正代码,获取运行过程中的BUG子代码;
分析所述BUG子代码的错误类型,基于所述错误类型查询对应的解决方式,进行BUG修复,得到第二JAVA修正代码;
将所述业务数据集输入到所述第二JAVA修正代码上并运行,得到业务程序。
在一种可实施的方式中,
将所述业务数据集输入到所述第二JAVA修正代码上并运行,得到业务程序的过程,包括:
获取所述第二JAVA修正代码上的若干个数据输入端;
获取每一数据输入端对应的可输入数据类型;解析所述业务数据集,获取每一业务数据对应的业务数据类型;
将所述业务数据输入到对应的数据输入端,得到第三JAVA修正代码;
获取所述第三JAVA修正代码中不同子代码的子字节通过速率,并预测不同子代码对应的数据通过量,分析每一子代码的数据溢出率;
调节数据溢出率大于预设溢出率的目标子代码,得到业务程序。
在一种可实施的方式中,
调节数据溢出率大于预设溢出率的目标子代码,得到业务程序的过程,包括:
计算所述目标子代码的溢出率与预设溢出率的溢出差值;
解析所述溢出差值,得到所述目标子代码的修正幅度;
若所述修正幅度在第一幅度范围内,复制所述目标子代码,建立并行目标子代码;
所述并行目标子代码与所述目标子代码同步运行;
若所述修正幅度在第二幅度范围内,调节所述目标子代码的运行参数;
运行调节后的第三JAVA修正代码,得到业务程序。
在一种可实施的方式中,
调节所述目标子代码的运行参数的过程,包括:
获取所述目标子代码的当前运行参数;
获取所述目标子代码的代码属性;
基于所述代码属性,分析所述当前运行参数的参数调节范围;基于所述参数调节范围,得到所述当前运行参数的调节区间;
计算所述调节区间内每一合法运行参数对应的溢出率;
提取溢出率为0的目标合法运行参数,记作可执行运行参数;
将所述目标子代码的当前运行参数调节至所述可执行运行参。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种决策引擎规则的动态JAVA实现方法的工作流程示意图;
图2为本发明实施例中一种决策引擎规则的动态JAVA实现方法中获取并解析业务数据集,得到业务流程和业务请求的工作流程示意图;
图3为本发明实施例中一种决策引擎规则的动态JAVA实现方法中基于所述业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式的工作流程示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本实施例提供了一种决策引擎规则的动态JAVA实现,如图1所示,包括:
获取并解析业务数据集,得到业务流程和业务请求;基于业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式;基于业务请求在预设赋值函数数据库中提取相应的目标赋值函数;基于目标逻辑表达式和目标赋值函数,建立数组表达式;将业务数据集输入到数组表达式中进行计算得到决策评分,基于决策评分修正JAVA源代码,将修正后的JAVA源代码与业务数据集结合并运行,得到业务程序。
该实例中,业务数据集表示一个企业/单位/公司等在进行工作过程中产生的数据;
该实例中,业务流程表示一个企业/单位/公司等执行某一个业务或同时执行多个业务时的执行先后顺序;
该实例中,业务请求表示一个企业/单位/公司等执行某一个业务时,为了达到执行目的需要获取的权限请求;
该实例中,逻辑表达式表示一个业务中不同数据之间的逻辑以及不同业务之间的逻辑的表达方式;
该实例中,赋值函数表示利用基础函数和已知数值相结合得到的,可以为不同的业务请求生成不同的赋值函数;
该实例中,数组表达式表示将逻辑表达式和赋值函数进行组合而得到的,可以执行决策功能的表达式;
该实例中,决策评分表示评价业务数据集可信度的评分,也可以表示该业务数据集的安全程度;
该实例中,JAVA源代码表示预先设置的、用来与业务数据集同步运行的代码;
该实例中,业务程序表示将业务数据集中包含的有用信息转换为计算机可执行的程序,且可以在业务程序中查找、查看、监督业务的进度;
该实例中,逻辑表达式、赋值函数、数组表达式均在WRL格式的文件下进行;
该实例中,逻辑表达式可以为:①数值逻辑表达式(解析:数值逻辑表达式支持的数值类型可以是整型也可以是浮点型,逻辑类型包含大于、大于等于、小于、小于等于、等于、不等于、在集合、不在集合,数值之间可以使用+、-、*、÷运算符进行运算后再进行逻辑的配置)、②字符串逻辑表达式(解析:字符串逻辑表达式支持的逻辑类型包含等于、等于、不等于、在集合、不在集合、开始于、不开始于、结束于、不结束于、包含、不包含、包含任意元素、不包含任意元素,字符串之间可以+进行拼接)、③日期逻辑表达式(解析:日期逻辑表达式的日期选择支持多种类型的日志选择,可以选择年、月、日、具体时间,也可以通过变量、策略参数选择日期或者函数生成日期,逻辑类型包含大于、大于等于、小于、小于等于、等于、不等于),④正则匹配逻辑表达式(解析:则匹配逻辑表达式只支持选择字符串,正则匹配规则要求输入规范的正则表达式)、⑤带括号的逻辑表达式(解析:带括号的逻辑表达式,是在逻辑表达式基础上添加括号,表示括号内的规则是优先级最高的)、⑥not逻辑表达式(解析:not逻辑表达式,是在逻辑表达式是基础上取“非”)、⑦not(逻辑表达式)(解析:not(逻辑表达式),是在带括号的逻辑表达式基础上取“非”)、⑧内置布尔函数表达式(解析:通过布尔函数表达式,可以选择内置函数中返回值为boolean的所有函数)、⑨自定义的布尔函数(解析:过自定义布尔函数表达式,可以选择自定义函数中返回值为boolean的所有函数)、⑩名单匹配表达式(解析:通过名单匹配表达,可以选择自定义的所有名单类型,输入具体的名单值,系统会自动判断该输入的名单值是否在名单列表中,存在返回true,不存在返回false);
该实例中,不同类型的逻辑表达式可以通过and和or操作符连接,生成更复杂的逻辑表达式;
该实例中,赋值函数可以为:①变量赋值函数(解析:变量赋值需要选择左值和右值,左值的数据类型决定了右值的表达式模板内容左值支持的基础数类型包括数值型、字符串、日期、boolean,若左值选择了字符串类型数据变量,右值则自动匹配字符串表达式,右值根据实际需求选择字符串的获取方式,最终将获取到的字符串赋值给左值选择的数据变量)、②对象赋值函数(解析:对象赋值需要选择左值和右值,左值只能选择对象类型的数据变量,所有右值只能是对象表达式模板,左值可以选择所有对象类型的变量,右值为对象表达式模板,由于对象表达式模板有输入对象的功能,输入对象的属性是根据左值选择对象动态获取的,对象的属性仅支持基础类型、对象类型、数组)、③数组赋值函数(解析:数组赋值左值可以选择不同类型的类型,包括数值型、字符串、日期、boolean、对象,右值根据左值选择的变量类型匹配到响应的数组表达式,且右值的数组,可以通过选择字符串数组变量、手动添加字符串数组、选择字符串数组函数三种方式生成,最后赋值给左值已选择的变量);
该实例中,数组表达式可以为:①数组赋值模板表达式(解析:数组赋值左值可以选择不同类型的类型,包括数值型、字符串、日期、boolean、对象,右值根据左值选择的变量类型匹配到响应的数组表达式)、②数组循环模板表达式(解析:数组循环模板,可以选择任意数据类型为值型、字符串、日期、boolean、对象的数组进行循环,且数组循环体内,可以进行所有添加语句的操作,也可以进行数组的嵌套,添加语句又可以选择数组循环,就可以无线嵌套循环下去,满足各种业务场景的需求)、③向数组添加对象模板表达式(解析:向数组添加对象模板,可以选择任意数据类型为值型、字符串、日期、boolean、对象的数组进行循环,根据所选数组的数据类型,匹配添加一个数据的同数据类型表达式模板)、④对象表达式(解析:对象表达式仅支持输入对象、选择对象、对象函数三种方式获取对象,选择输入对象,展开该对象的所有属性,对每个属性赋值后,对象就可以添加到最初选择的对象类型数组了)、⑤数组排序模板表达式(解析:数组排序模板,在不同数据类型的数组函数中,选择对象数组函数中的对象数组排序模板,对象数据排序可以选择某个属性进行排序,选择数组、属性、排序,既可以对数组排序,生成一个新的数组,赋值给最初选择的数组变量)、⑥按数组下标取值模板表达式(解析:在不同数据类型的数组函数中选择字符串函数中的指定下标获取字符串函数模板,该模板需要选择一个字符串数组,同时指定下标值)。
上述技术方案的工作原理以及有益效果:通过解析业务数据集,得到该业务的业务流程和业务请求,然后为其匹配相应的目标逻辑表达式和目标赋值函数,可以生成一个数组表达式,然后利用数组表达式对业务数据集进行决策评分,接着利用决策评分修正JAVA源代码,最后利用得到的JAVA代码以及业务数据集可以得到对应的业务程序,这一来不仅可以为业务数据集生成一个业务程序,且在生成业务程序的过程中不断调整JAVA代码,使生成的业务程序与业务数据高度契合,方便工作人员查看数据,处理数据。
实施例2
在实施例1的基础上,所述一种决策引擎规则的动态JAVA实现方法,获取并解析业务数据集,得到业务流程和业务请求,如图2所示,包括:
获取业务数据集;
解析所述业务数据集中的每一条业务数据,得到每一条业务数据对应的业务进程;
基于所述业务进程生成对应的业务流程;
分别获取每一业务进程对应的进程结果,得到每一业务进程对应的进程请求;
获取所有的进程请求,生成业务请求。
该实例中,业务进程表示一条业务数据对应的业务操作进程;
该实例中,进程结果表示执行一条业务数据后产生的结果;
该实例中,进程请求表示执行一条业务数据时涉及的操作权限。
上述技术方案的工作原理以及有益效果:通过解析业务数据集中每一条业务数据,得到其对应的业务进程,以及每一条业务数据对应的进程请求,然后可以根据生成的若干条业务进程得到业务流程,以及根据生成的若干个进程请求得到业务请求,是后续进行表达式匹配以及函数匹配的基础。
实施例3
在实施例1的基础上,所述一种决策引擎规则的动态JAVA实现方法,基于所述业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式,如图3所示,包括:
获取所述业务流程包含的若干条业务进程;
在所述预设逻辑表达式数据库中查找每一业务进程对应的进程逻辑表达式;
将所有的进程逻辑表达式依次排列,得到目标逻辑表达式。
该实例中,将所有的进程逻辑表达式依次排列的过程为:先根据不同业务进程之间的关系建立一个流程图,然后将进程逻辑表达式放置在流程图中相应的位置上。
上述技术方案的工作原理以及有益效果:为每一个业务进程匹配一个进程逻辑表达式,然后将进程逻辑表达式进行排列,得到一个目标逻辑表达式,为后续建立数组表达式以及进行决策评分做基础。
实施例4
在实施例1的基础上,所述一种决策引擎规则的动态JAVA实现方法,基于所述业务请求在预设赋值函数数据库中提取相应的目标赋值函数的过程,包括:
获取所述业务请求中包含的若干条进程请求;
解析所述业务请求,得到每一条进程请求对应的请求类型以及数据域;
在所述预设赋值函数数据库中提取与所述请求类型一致的请求赋值函数;
利用所述数据域调整对应请求赋值函数的值域;
将调整值域后的请求赋值函数进行排序,生成目标赋值函数。
该实例中,数据域表示进程请求的数据取值范围;例如:一个数据请求获取本年度1月份的销售数据,那么对应的数据域为本年度1月1日到1月31日的销售数据;
该实例中,请求类型可以为:直接获取、查找、引用、替换等。
上述技术方案的工作原理以及有益效果:为了获取到目标赋值函数,首先获取若干条进程请求,然后分析每一条进程请求的请求类型和数据域,根据这两个条件在预设的赋值函数数据库中提取与其一致的请求赋值函数,最后可以得到目标赋值函数,为后续建立数组表达式以及进行决策评分做基础。
实施例5
在实施例1的基础上,所述一种决策引擎规则的动态JAVA实现方法,基于所述目标逻辑表达式和目标赋值函数,建立数组表达式的过程,包括:
解析所述业务流程,得到若干个条业务进程;
分别获取不同业务进程之间的第一逻辑关系建立逻辑二叉树;
将目标逻辑表达式和目标赋值函数输入到所述逻辑二叉树上进行同步逻辑运算,得到所述逻辑二叉树上每一树节点上对应的节点逻辑表达式和节点赋值函数;
若同步逻辑运算的运算结果不合理,基于不同树节点之间的第二逻辑关系修正每一树节点上对应的节点逻辑表达式和节点赋值函数,直到逻辑运算结果合理为止;
在逻辑运算结果合理时,将每一树节点上的节点逻辑表达式和节点赋值函数进行结合,得到数组表达式。
该实例中,第一逻辑关系表示不同业务进程之间的逻辑关系;
该实例中,逻辑二叉树表示将不同的业务进程之间的关系进行罗列,然后建立二叉树,然后在二叉树不同的树节点上定义对应的第一逻辑关系后得到的;
该实例中,同步逻辑运算表示在逻辑二叉树上同时运行目标逻辑表达式和目标赋值函数;
该实例中,第二逻辑关系表示在逻辑二叉树上,不同树节点之间的逻辑关系;
举例验证该实例:首先解析业务流程,得到3条业务进程,分别为:进程A、进程B、进程C,这三个业务进程之间的逻辑关系为递进关系,且进程A与进程B是补充关系,然后建立逻辑二叉树S(由于逻辑二叉树的树节点与业务进程一一对应,所以该逻辑二叉树含有三个树节点,记作树节点1,树节点2,树节点3),将目标逻辑表达式和目标赋值函数输入到逻辑二叉树上进行同步运算,可以得到节点逻辑表达式1以及节点赋值函数1与树节点1对应,节点逻辑表达式2以及节点赋值函数2与树节点2对应,节点逻辑表达式3以及节点赋值函数3与树节点3对应,次数逻辑运算结果不合理,获取不同树节点之间的逻辑关系,分别为:树节点1与树节点2之间为递进关系,树节点3与树节点2之间为递进关系,且树节点3与树节点2之间是补充关系,基于此修正每一树节点上的节点逻辑表达式和节点赋值表达式,直到逻辑原始结果合理,此时节点逻辑表达式1以及节点赋值函数2与树节点1对应,节点逻辑表达式2以及节点赋值函数1与树节点2对应,节点逻辑表达式3以及节点赋值函数3与树节点3对应,然后将同一个树节点上的节点逻辑表达式和节点赋值函数进行结合,得到最终的数组表达式。
上述技术方案的工作原理以及有益效果:为了进一步执行决策评分的工作,通过建立逻辑二叉树来分析目标逻辑表达式和目标赋值函数之间的对应关系,以便生成一个合理的数组表达式,数组表达式是进行决策评分的基础,但是不同的逻辑表达式以及不同的赋值函数之间区别较小,为了区分这些小的差别,利用逻辑二叉树可以清楚的得到不同组合对应的运算结果,然后根据运算结果的合理性来确定数组表达式的形式,这样一来可以得到一个适合进行决策的表达式,方便后续进行决策评分工作。
实施例6
在实施例5的基础上,所述一种决策引擎规则的动态JAVA实现方法,将目标逻辑表达式和目标赋值函数输入到所述逻辑二叉树上进行同步逻辑运算的过程,包括:
解析所述目标逻辑表达式,得到若干个进程逻辑表达式;
解析所述目标赋值函数,得到若干个请求赋值函数;
利用所述逻辑二叉树上不同树节点之间的第二逻辑关系,分别将不同的进程逻辑表达式和请求赋值函数进行配对,得到若干个配对组;
基于所述逻辑二叉树不同树节点的层次递进关系,将不同的配对组输入到对应的树节点上;
运行所述逻辑二叉树,提取发生错误的目标树节点,将不同目标树节点上包含的配对组进行调换,直到所述逻辑二叉树正确运行为止,完成同步逻辑运算。
该实例中,配对组是由一个进程逻辑表达式和一个请求赋值函数组成的;例如:实施例5的举例中提到的:“节点逻辑表达式1以及节点赋值函数2”、“节点逻辑表达式3以及节点赋值函数3”都是配对组;
该实例中,层次递进关系表示由于在二叉树中一个树节点代表一个层级,所以在二叉树中不同树节点之间的逻辑关系称作层次递进关系;
该实例中,目标树节点表示运行时发生错误的树节点。
上述技术方案的工作原理以及有益效果:为了分析目标逻辑表达式和目标赋值函数的匹配结果是否合理,将不同的配对组输入到逻辑二叉树的节点上,进而分析该输入结果是否合理,并在若干组结果中提取正确的运行结果。
实施例7
在实施例1的基础上,所述一种决策引擎规则的动态JAVA实现方法,基于决策评分修正JAVA源代码,修正后的JAVA源代码运行与业务数据集结合并运行,得到业务程序的过程,包括:
解析所述决策评分,得到所述业务数据集的安全等级;
基于所述安全等级修正所述JAVA源代码的总字节通过速率,得到第一JAVA修正代码;
运行所述第一JAVA修正代码,获取运行过程中的BUG子代码;
分析所述BUG子代码的错误类型,基于所述错误类型查询对应的解决方式,进行BUG修复,得到第二JAVA修正代码;
将所述业务数据集输入到所述第二JAVA修正代码上并运行,得到业务程序。
该实例中,安全等级表示业务数据集发生数据泄露或者病毒入侵的等级,等级越低发生泄露或被入侵的几率越大;
该实例中,总字节通过率表示JAVA源代码接收业务数据集的速率;
该实例中,第一JAVA修正代码表示已修正总字节通过率的JAVA源代码;
该实例中,BUG子代码表示第一JAVA修正代码中发生运行错误的子代码;
该实例中,错误类型可以为:数据不匹配、数据溢出、空载运行、代码丢失;
该实例中,第二JAVA修正代码表示将第一JAVA修正代码中的BUG子代码进行修复后的结果;
该实例中,修正总字节通过率的目的为:在输入时抑制通过速率一来可以避免大量数据涌入JAVA代码中产生错误,二来可以在输入过程中分析到每一个数据中是否携带病毒,若数据携带病毒可以及时止损,停止输入工作;
举例验证该实例:解析决策评分,得到业务数据集的安全等级为Ⅱ级,那么该级别对应的总字节通过率为80kb/s,对JAVA源代码进行修正,得到第一JAVA修正代码X1,运行第一JAVA修正代码X1,获取运行过程中的BUG子代码,然后得到BUG子代码的错误类型为数据不匹配,查询到的解决方式为调换数据,然后得到第二JAVA修正代码X2,然后将业务数据集输入到第二JAVA修正代码X2中运行,得到业务程序。
上述技术方案的工作原理以及有益效果:为了保障业务数据集和JAVA代码可以顺利运行,在进行运行前先根据业务数据集的安全等级调整JAVA源代码的总字节通过率,以及修正运行过程中的BUG,使得JAVA代码和业务数据集高度匹配,最终可以生成业务程序。
实施例8
在实施例7的基础上,所述一种决策引擎规则的动态JAVA实现方法,将所述业务数据集输入到所述第二JAVA修正代码上并运行,得到业务程序的过程,包括:
获取所述第二JAVA修正代码上的若干个数据输入端;
获取每一数据输入端对应的可输入数据类型;解析所述业务数据集,获取每一业务数据对应的业务数据类型;
将所述业务数据输入到对应的数据输入端,得到第三JAVA修正代码;
获取所述第三JAVA修正代码中不同子代码的子字节通过速率,并预测不同子代码对应的数据通过量,分析每一子代码的数据溢出率;
调节数据溢出率大于预设溢出率的目标子代码,得到业务程序。
上述技术方案的工作原理以及有益效果:为了进一步保障业务数据集和JAVA代码可以顺利运行,避免数据溢出造成数据丢失,那么在运行前将业务数据集中的数据进行分类并输入到JAVA修正代码中,然后分析代码运行过程中的溢出率,针对溢出严重的子代码进行调节,最终可以得到业务程序。
实施例9
在实施例8的基础上,所述一种决策引擎规则的动态JAVA实现方法,调节数据溢出率大于预设溢出率的目标子代码,得到业务程序的过程,包括:
计算所述目标子代码的溢出率与预设溢出率的溢出差值;
解析所述溢出差值,得到所述目标子代码的修正幅度;
若所述修正幅度在第一幅度范围内,复制所述目标子代码,建立并行目标子代码;
所述并行目标子代码与所述目标子代码同步运行;
若所述修正幅度在第二幅度范围内,调节所述目标子代码的运行参数;
运行调节后的第三JAVA修正代码,得到业务程序。
该实例中,第一幅度范围大于第二幅度范围;
该实例中,并行目标子代码表示与目标子代码一致的代码;
举例验证该实例:首先计算溢出差值Y,对其进行解析,得到目标子代码的修正幅度F,此时的F在第一幅度范围内,复制目标子代码B1,得到并行目标子代码B2,然后将B1和B2同步运行,那么此时的运行参数为之前的二倍,最后运行调节后的第三JAVA修正代码,得到业务程序。
上述技术方案的工作原理以及有益效果:为了修正数据溢出的问题避免数据丢失影响业务程序,当数据溢出时分析数据的修正幅度,然后针对不同的修正幅度执行不同修正方案,这样一来可以得到一个修正后的JAVA修正代码,最后运行该JAVA修正代码,得到业务程序,达到保障业务程序完整的目的。
实施例10
在实施例9的基础上,所述一种决策引擎规则的动态JAVA实现方法,调节所述目标子代码的运行参数的过程,包括:
获取所述目标子代码的当前运行参数;
获取所述目标子代码的代码属性;
基于所述代码属性,分析所述当前运行参数的参数调节范围;
基于所述参数调节范围,得到所述当前运行参数的调节区间;
计算所述调节区间内每一合法运行参数对应的溢出率;
提取溢出率为0的目标合法运行参数,记作可执行运行参数;
将所述目标子代码的当前运行参数调节至所述可执行运行参数。
该实例中,代码属性表示该代码与其他代码的不同,可以用于区分不同代码的特征。
上述技术方案的工作原理以及有益效果:为了避免过度调节子代码导致子代码失效,在调节过程中需要考虑子代码的调节范围,因此根据其代码属性生成一个参数调节范围,在该范围内进行调节,最后得到一个可执行运行参数替换当前运行参数。
实施例11
在实施例1的基础上,所述一种决策引擎规则的动态JAVA实现方法,将业务数据集输入到数组表达式中进行计算得到决策评分的过程,包括:
解析所述业务数据集,得到所述业务数据集中每一条业务数据对应的评分模式,并将评分模式相同的业务数据记作一类;
获取所述数组表达式中的所有数据输入端,分析每一数据输入端对应的数据接收模式;
将所述评分模式与所述数据接收模式进行匹配,得到同一类业务数据对应的数据输入端;
分别将每一类业务数据输入到对应的数据输入端内,同时获取每一数据输入端对应的决策参数以及每一类业务数据对应的预测评分;
根据公式(Ⅰ)计算每一业务类数据对应的决策评分;
其中,Fi表示第i类业务数据对应的决策评分,e表示自然常数,k表示第i类业务数据中的第k条业务数据,n表示第i类业务数据中业务数据的数量,dk表示第i类业务数据对的决策参数,ck表示第i类业务数据中的第k条业务数据在业务数据集中的权重;
获取公式(Ⅰ)的计算结果,根据公式(Ⅱ)计算本次评分的误差;
其中,m表示业务数据的数量,Fib表示第i类业务数据对应的预测评分;
若公式(Ⅱ)的计算结果在预设误差范围内,获取公式(Ⅰ)的计算结果,获取每一业务数据对应的决策评分;
反之,确定所述评分模式与所述数据接收模式的匹配发生错误,重新进行匹配,获取每一业务数据对应的决策评分。
上述技术方案的工作原理以及有益效果:执行决策评分是进行数据分析的关键步骤,为了使评分具有说服力,在进行评分时考虑多方面因素,且在评分后分析本次评分的误差是否在预设误差范围内,以便及时调整数据的评分方式,得到最精确的评分,保障后续工作的完整度。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种决策引擎规则的动态JAVA实现方法,其特征在于,包括:
获取业务数据集;解析所述业务数据集中的每一条业务数据,得到每一条业务数据对应的业务进程;基于所述业务进程生成对应的业务流程;分别获取每一业务进程对应的进程结果,得到每一业务进程对应的进程请求;获取所有的进程请求,生成业务请求;基于业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式;基于业务请求在预设赋值函数数据库中提取相应的目标赋值函数;基于目标逻辑表达式和目标赋值函数,建立数组表达式;
将业务数据集输入到数组表达式中进行计算得到决策评分,基于决策评分修正JAVA源代码,将修正后的JAVA源代码与业务数据集结合并运行,得到业务程序。
2.如权利要求1所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,基于所述业务流程在预设逻辑表达式数据库中提取相应的目标逻辑表达式,包括:
获取所述业务流程包含的若干条业务进程;
在所述预设逻辑表达式数据库中查找每一业务进程对应的进程逻辑表达式;
将所有的进程逻辑表达式依次排列,得到目标逻辑表达式。
3.如权利要求1所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,基于所述业务请求在预设赋值函数数据库中提取相应的目标赋值函数的过程,包括:
获取所述业务请求中包含的若干条进程请求;
解析所述业务请求,得到每一条进程请求对应的请求类型以及数据域;
在所述预设赋值函数数据库中提取与所述请求类型一致的请求赋值函数;
利用所述数据域调整对应请求赋值函数的值域;
将调整值域后的请求赋值函数进行排序,生成目标赋值函数。
4.如权利要求1所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,基于所述目标逻辑表达式和目标赋值函数,建立数组表达式的过程,包括:
解析所述业务流程,得到若干个条业务进程;分别获取不同业务进程之间的第一逻辑关系建立逻辑二叉树;将目标逻辑表达式和目标赋值函数输入到所述逻辑二叉树上进行同步逻辑运算,得到所述逻辑二叉树上每一树节点上对应的节点逻辑表达式和节点赋值函数;
若同步逻辑运算的运算结果不合理,基于不同树节点之间的第二逻辑关系修正每一树节点上对应的节点逻辑表达式和节点赋值函数,直到逻辑运算结果合理为止;
在逻辑运算结果合理时,将每一树节点上的节点逻辑表达式和节点赋值函数进行结合,得到数组表达式。
5.如权利要求4所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,将目标逻辑表达式和目标赋值函数输入到所述逻辑二叉树上进行同步逻辑运算的过程,包括:
解析所述目标逻辑表达式,得到若干个进程逻辑表达式;解析所述目标赋值函数,得到若干个请求赋值函数;
利用所述逻辑二叉树上不同树节点之间的第二逻辑关系,分别将不同的进程逻辑表达式和请求赋值函数进行配对,得到若干个配对组;
基于所述逻辑二叉树不同树节点的层次递进关系,将不同的配对组输入到对应的树节点上;运行所述逻辑二叉树,提取发生错误的目标树节点,将不同目标树节点上包含的配对组进行调换,直到所述逻辑二叉树正确运行为止,完成同步逻辑运算。
6.如权利要求1所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,基于决策评分修正JAVA源代码,修正后的JAVA源代码运行与业务数据集结合并运行,得到业务程序的过程,包括:
解析所述决策评分,得到所述业务数据集的安全等级;
基于所述安全等级修正所述JAVA源代码的总字节通过速率,得到第一JAVA修正代码;
运行所述第一JAVA修正代码,获取运行过程中的BUG子代码;分析所述BUG子代码的错误类型,基于所述错误类型查询对应的解决方式,进行BUG修复,得到第二JAVA修正代码;将所述业务数据集输入到所述第二JAVA修正代码上并运行,得到业务程序。
7.如权利要求6所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,将所述业务数据集输入到所述第二JAVA修正代码上并运行,得到业务程序的过程,包括:
获取所述第二JAVA修正代码上的若干个数据输入端;
获取每一数据输入端对应的可输入数据类型;解析所述业务数据集,获取每一业务数据对应的业务数据类型;
将所述业务数据输入到对应的数据输入端,得到第三JAVA修正代码;
获取所述第三JAVA修正代码中不同子代码的子字节通过速率,并预测不同子代码对应的数据通过量,分析每一子代码的数据溢出率;
调节数据溢出率大于预设溢出率的目标子代码,得到业务程序。
8.如权利要求7所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,调节数据溢出率大于预设溢出率的目标子代码,得到业务程序的过程,包括:
计算所述目标子代码的溢出率与预设溢出率的溢出差值;
解析所述溢出差值,得到所述目标子代码的修正幅度;
若所述修正幅度在第一幅度范围内,复制所述目标子代码,建立并行目标子代码;所述并行目标子代码与所述目标子代码同步运行;
若所述修正幅度在第二幅度范围内,调节所述目标子代码的运行参数;
运行调节后的第三JAVA修正代码,得到业务程序。
9.如权利要求8所述的一种决策引擎规则的动态JAVA实现方法,其特征在于,调节所述目标子代码的运行参数的过程,包括:
获取所述目标子代码的当前运行参数;
获取所述目标子代码的代码属性;基于所述代码属性,分析所述当前运行参数的参数调节范围;
基于所述参数调节范围,得到所述当前运行参数的调节区间;计算所述调节区间内每一合法运行参数对应的溢出率;
提取溢出率为0的目标合法运行参数,记作可执行运行参数;
将所述目标子代码的当前运行参数调节至所述可执行运行参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310023975.5A CN116243892B (zh) | 2023-01-09 | 2023-01-09 | 一种决策引擎规则的动态java实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310023975.5A CN116243892B (zh) | 2023-01-09 | 2023-01-09 | 一种决策引擎规则的动态java实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116243892A CN116243892A (zh) | 2023-06-09 |
CN116243892B true CN116243892B (zh) | 2023-10-20 |
Family
ID=86632348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310023975.5A Active CN116243892B (zh) | 2023-01-09 | 2023-01-09 | 一种决策引擎规则的动态java实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116243892B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231162A (zh) * | 2011-07-01 | 2011-11-02 | 福建富士通信息软件有限公司 | 基于业务处理的规则引擎动态配置方法 |
CN109597606A (zh) * | 2018-10-24 | 2019-04-09 | 中国平安人寿保险股份有限公司 | 使用规则引擎进行业务决策的方法、设备和存储介质 |
CN112907234A (zh) * | 2021-05-08 | 2021-06-04 | 武汉众邦银行股份有限公司 | 一种基于动态配置规则的决策引擎实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7124145B2 (en) * | 2003-03-27 | 2006-10-17 | Millennium It (Usa) Inc. | System and method for dynamic business logic rule integration |
-
2023
- 2023-01-09 CN CN202310023975.5A patent/CN116243892B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231162A (zh) * | 2011-07-01 | 2011-11-02 | 福建富士通信息软件有限公司 | 基于业务处理的规则引擎动态配置方法 |
CN109597606A (zh) * | 2018-10-24 | 2019-04-09 | 中国平安人寿保险股份有限公司 | 使用规则引擎进行业务决策的方法、设备和存储介质 |
CN112907234A (zh) * | 2021-05-08 | 2021-06-04 | 武汉众邦银行股份有限公司 | 一种基于动态配置规则的决策引擎实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116243892A (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lutellier et al. | Coconut: combining context-aware neural translation models using ensemble for program repair | |
Borg et al. | Szz unleashed: an open implementation of the szz algorithm-featuring example usage in a study of just-in-time bug prediction for the jenkins project | |
Watson et al. | On learning meaningful assert statements for unit test cases | |
Jiang et al. | Shaping program repair space with existing patches and similar code | |
CN110147235B (zh) | 一种源代码与二进制代码间的语义比对方法和装置 | |
CN101071378A (zh) | 源代码生成方法、设备和程序 | |
Lin et al. | Clone-based and interactive recommendation for modifying pasted code | |
US20030115025A1 (en) | Method and apparatus for wrapping existing procedure oriented program into component based system | |
CN112379917A (zh) | 浏览器兼容性提升方法、装置、设备及存储介质 | |
CN115905031B (zh) | 一种基于精准质量保障系统的测试用例推荐方法 | |
CN110442514A (zh) | 基于学习算法实现缺陷修复推荐的方法 | |
CN111459500A (zh) | 基于海鹰翼辉操作系统的安全编译方法及装置 | |
CN114547619A (zh) | 一种基于树的漏洞修复系统及修复方法 | |
CN110990055B (zh) | 一种基于程序分析的Pull Request功能分类方法 | |
CN115757149A (zh) | 一种自动化测试方法、系统、电子设备及存储介质 | |
Wang et al. | Understanding and facilitating the co-evolution of production and test code | |
CN110806977A (zh) | 基于产品需求的测试用例集生成方法、装置及电子设备 | |
US20080028383A1 (en) | Architecture Cloning For Power PC Processors | |
CN108228232B (zh) | 一种针对程序中循环问题的自动修复方法 | |
Haryono et al. | MLCatchUp: Automated update of deprecated machine-learning APIs in Python | |
CN116243892B (zh) | 一种决策引擎规则的动态java实现方法 | |
CN113010420A (zh) | 一种促进测试代码与产品代码协同演化的方法及终端设备 | |
CN116301795B (zh) | 一种用于页面可视化配置及代码编写的开发平台 | |
Weidl et al. | Binding object models to source code: An approach to object-oriented re-architecting | |
CN116467219A (zh) | 一种测试处理方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |