CN113297568A - 一种基于沙箱的数据处理方法及*** - Google Patents
一种基于沙箱的数据处理方法及*** Download PDFInfo
- Publication number
- CN113297568A CN113297568A CN202110626273.7A CN202110626273A CN113297568A CN 113297568 A CN113297568 A CN 113297568A CN 202110626273 A CN202110626273 A CN 202110626273A CN 113297568 A CN113297568 A CN 113297568A
- Authority
- CN
- China
- Prior art keywords
- target
- sandbox
- determining
- operation method
- result
- 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
- 244000035744 Hura crepitans Species 0.000 title claims abstract description 165
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 328
- 238000004364 calculation method Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于沙箱的数据处理方法及***,该方法为:根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组;根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法;针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果;从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。将本发明提供的基于沙箱的数据处理方法应用于多版本软件***的运行中,可同时在沙箱内运行多个版本的软件***并得到相应的运算结果,降低试错成本和提高问题解决速度。
Description
技术领域
本发明涉及数据运算技术领域,具体涉及一种基于沙箱的数据处理方法及***。
背景技术
随着科学技术的发展,越来越多的软件***被开发出来。由于软件***无法同时运行多个版本,因此在对软件***进行开发或重构的过程中,任何一个配置项的疏忽都会造成不同版本的软件***的逻辑计算结果出现差异,需要回滚整个软件***版本并重新发版才能解决问题,此种方式导致软件***的试错成本较高和问题解决速度较慢。
发明内容
有鉴于此,本发明实施例提供一种基于沙箱的数据处理方法及***,以解决现有软件***的应用方式存在的试错成本较高和问题解决速度较慢等问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种基于沙箱的数据处理方法,所述方法包括:
根据运算调用方输入沙箱的目标计算组名,从预先传入所述沙箱的运算配置类中确定与所述目标计算组名对应的目标计算配置组,所述运算配置类包含多个计算配置组,每个计算配置组至少包含一个运算方法,每个计算配置组对应一组沙箱运算配置,每个运算方法至少包含沙箱权重;
根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法;
针对每个目标运算方法,利用所述目标运算方法对应的沙箱权重,在所述沙箱内执行所述目标运算方法得到相应的运算结果;
从所有所述目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。
优选的,所述根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法,包括:
获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;
从所述目标计算配置组中确定与所述目标运算方法名对应的目标运算方法。
优选的,每个运算方法还包含IP白名单,所述根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法,包括:
获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;
从所述目标计算配置组中确定与所述目标运算方法名对应的第一运算方法;
针对每个第一运算方法,利用所述第一运算方法的IP白名单对所述运算调用方进行身份验证,若所述运算调用方通过身份验证,将所述第一运算方法作为目标运算方法。
优选的,每个运算方法还包含优先级,所述从所有所述目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果,包括:
判断所有所述目标运算方法的运算结果是否满足多数选择规则;
若所有所述运算结果满足多数选择规则,确定出现次数最多的所述运算结果为最终运算结果,并输出所述最终运算结果;
若所有所述运算结果不满足所述多数选择规则,判断是否存在任意两个所述目标运算方法具有相同优先级;
若所有所述目标运算方法的优先级均不相同,确定优先级最高的所述目标运算方法对应的所述运算结果为最终运算结果,并输出所述最终运算结果;
若存在任意两个所述目标运算方法具有相同优先级,确定回退fallback结果为最终运算结果,并输出所述最终运算结果。
优选的,还包括:
若获取到异常代码,利用预设的默认运算方法对应的沙箱权重,在所述沙箱内执行所述默认运算方法得到相应的运算结果,并从所述默认运算方法对应的运算结果中确定并输出符合预设规则的最终运算结果。
优选的,针对每个目标运算方法,利用所述目标运算方法对应的沙箱权重,在所述沙箱内执行所述目标运算方法得到相应的运算结果之后,还包括:
比对所有所述目标运算方法的运算结果,得到并输出比对结果。
本发明实施例第二方面公开一种基于沙箱的数据处理***,所述***包括:
第一确定单元,用于根据运算调用方输入沙箱的目标计算组名,从预先传入所述沙箱的运算配置类中确定与所述目标计算组名对应的目标计算配置组,所述运算配置类包含多个计算配置组,每个计算配置组至少包含一个运算方法,每个计算配置组对应一组沙箱运算配置,每个运算方法至少包含沙箱权重;
第二确定单元,用于根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法;
执行单元,用于针对每个目标运算方法,利用所述目标运算方法对应的沙箱权重,在所述沙箱内执行所述目标运算方法得到相应的运算结果;
处理单元,用于从所有所述目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。
优选的,所述第二确定单元具体用于:获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;从所述目标计算配置组中确定与所述目标运算方法名对应的目标运算方法。
优选的,所述第二确定单元具体用于:获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;从所述目标计算配置组中确定与所述目标运算方法名对应的第一运算方法;针对每个第一运算方法,利用所述第一运算方法的IP白名单对所述运算调用方进行身份验证,若所述运算调用方通过身份验证,将所述第一运算方法作为目标运算方法。
优选的,所述处理单元包括:
第一判断模块,用于判断所有所述目标运算方法的运算结果是否满足多数选择规则,若所有所述运算结果满足多数选择规则,执行第一确定模块,若所有所述运算结果不满足所述多数选择规则,执行第二判断模块;
所述第一确定模块,用于确定出现次数最多的所述运算结果为最终运算结果,并输出所述最终运算结果;
所述第二判断模块,用于判断是否存在任意两个所述目标运算方法具有相同优先级,若所有所述目标运算方法的优先级均不相同,执行第二确定模块,若存在任意两个所述目标运算方法具有相同优先级,执行第三确定模块;
所述第二确定模块,用于确定优先级最高的所述目标运算方法对应的所述运算结果为最终运算结果,并输出所述最终运算结果;
所述第三确定模块,用于确定回退fallback结果为最终运算结果,并输出所述最终运算结果。
基于上述本发明实施例提供的一种基于沙箱的数据处理方法及***,该方法为:根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组;根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法;针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果;从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。将本发明提供的基于沙箱的数据处理方法应用于多版本软件***的运行中,可同时在沙箱内运行多个版本的软件***并得到相应的运算结果,降低试错成本和提高问题解决速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于沙箱的数据处理方法的流程图;
图2为本发明实施例提供的一种基于沙箱的数据处理方法的算法框架图;
图3为本发明实施例提供的确定并输出最终运算结果的流程图;
图4为本发明实施例提供的一种基于沙箱的数据处理***的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,由于软件***无法同时运行多个版本,在对软件***进行开发或重构的过程中,任何一个配置项的疏忽都会造成不同版本的软件***的逻辑计算结果出现差异,需要回滚整个软件***版本并重新发版才能解决问题,从而会导致软件***的试错成本较高和问题解决速度较慢。
因此本发明实施例提供一种基于沙箱的数据处理方法及***,根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组。根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法。针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果。从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。将前述内容应用于多版本软件***的应用中,可以同时在沙箱内运行多个版本的软件***并得到相应的运算结果,以降低试错成本和提高问题解决速度。
参见图1,示出了本发明实施例提供的一种基于沙箱的数据处理方法的流程图,该数据处理方法包括:
步骤S101:根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组。
需要说明的是,运算配置类包含多个计算配置组(每个计算配置组存在对应的计算组名),每个计算配置组至少包含一个运算方法(在软件***的应用中时,每个运算方法可视为一个版本的软件***,每个运算方法存在对应的运算方法名),每个计算配置组对应映射一组沙箱运算配置,每个运算方法至少包含沙箱权重(可实时更改)、优先级和IP白名单(或者为ID白名单),运算方法以函数式编程构建。
进一步需要说明的是,可将沙箱视为一个运算公式,由于运算公式中存在常量和自变量,故沙箱运算配置可用于配置沙箱对应的自变量,不同的沙箱运算配置可改变沙箱对应的自变量,从而影响沙箱的计算结果。
可以理解的是,预先构建沙箱的运算配置类,将所构建的运算配置类传入该沙箱内并使运算配置类实时生效,在实际应用中,也可根据实际需求调整传入该沙箱内的运行配置类的具体内容并使其实时生效。
在具体实现步骤S101的过程中,获取运算调用方输入沙箱的目标计算组名(需要调用的计算配置组的计算组名),根据该目标计算组名,从传入沙箱的运算配置类中确定与该目标计算组名对应的目标计算配置组,该目标计算配置组即为需要调用的计算配置组。
步骤S102:根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法。
需要说明的是,沙箱运算配置中包含预先配置的至少一个运算方法名,每个运算方法名可对应一个运算方法,沙箱运算配置所包含的运算方法名可实时修改。
在具体实现步骤S102的过程中,利用目标计算配置组对应的沙箱运算配置中所包含的运算方法名,从目标计算配置组所包含的所有运算方法中确定至少一个目标运算方法。
由上述内容可知,运算配置类中所包含的运算方法包含了IP白名单,故在确定至少一个目标运算方法的过程中,至少存在两种确定目标运算方法的方式,第一种确定目标运算方法的方式为:直接利用目标计算配置组对应的沙箱运算配置中所包含的运算方法名确定;第二种确定目标运算方法的方式为:利用目标计算配置组对应的沙箱运算配置中所包含的运算方法名结合IP白名单确定。
可以理解的是,对于上述第二种确定目标运算方法的方式,通过IP白名单确定运算调用方只能调用哪些运算方法,从而起到控制沙箱访问权限的作用。也就是说,对于某个运算方法,只有该运算方法的IP白名单中的IP能够调用该运算方法。两种确定目标运算方法的方式的详细内容如下。
第一种确定目标运算方法的方式:获取目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名,从目标计算配置组中确定与目标运算方法名对应的目标运算方法。也就是说,获取目标计算配置组对应的沙箱运算配置中包含的运算方法名(将其作为目标运算方法名),再从目标计算配置组包含的所有运算方法中确定与目标运算方法名对应的运算方法(将其作为目标运算方法)。
第二种确定目标运算方法的方式:获取目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名,从目标计算配置组中确定与目标运算方法名对应的第一运算方法;针对每个第一运算方法,利用该第一运算方法的IP白名单对运算调用方进行身份验证(验证运算调用方的IP是否在IP白名单中),若运算调用方通过身份验证,将该第一运算方法作为目标运算方法。也就是说,对于所确定的每个第一运算方法,如果运算调用方的IP在该第一运算方法的IP白名单中,则确定该第一运算方法为目标运算方法。
需要说明的是,上述第二种确定目标运算方法的方式为利用IP白名单进行确定,同理,使用ID白名单确定目标运算方法的方式可参见上述内容,在此不再赘述。
通过第二种确定目标运算方法的方式,决定运算调用方能调用沙箱中的哪些运算方法(也就是决定当前沙箱需要执行哪些运算方法),例如:对于特定IP或ID的运算调用方,只能调用新版的运算方法,对于其它IP或ID的运算调用方,只能调用旧版的运算方法。
步骤S103:针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果。
由上述步骤S101中的内容可知,可将沙箱视为一个运算公式,通过沙箱对应的自变量的数值来得到计算结果,在具体实现步骤S103的过程中,针对每个目标运算方法,将该目标运算方法的沙箱权重作为箱对应的自变量的数值,在沙箱内执行该目标运算方法得到相应的运算结果。
例如:假设将沙箱视为ax+by=c这一运算公式,其中a和b为沙箱的常量,x和y为沙箱的自变量,将目标运算方法的沙箱权重作为x和y的数值,即可计算得到相应的计算结果c。
通过上述方式,利用各个目标运算方法的沙箱权重,在沙箱内以并行执行或顺序执行的方式,执行各个目标运算方法得到相应的运算结果,每个目标运算方法对应一个运算结果。
优选的,在得到所有目标运算方法对应的运算结果之后,比对所有目标运算方法的运算结果,得到并输出比对结果。
可以理解的是,比较所有目标运算方法的运算结果的作用为:确定软件***(或者其它需要测试的对象)在重构前后的行为是否如预期般的一致。需要说明的是,软件***重构之后,在正常情况下软件***在重构前后的行为应该为一致,此时可通过比对两个软件***(可视为两个目标运算方法)的运算结果,从而可确定软件***在重构前后的行为是否一致。
例如:假设目前实际应用在产品中的软件***为版本A的软件***,此时对版本A的软件***进行优化得到版本B的软件***,可通过沙箱同时运行版本A和版本B的软件***,并比对运行版本A和版本B的软件***的运算结果,若运算结果一致,则可将版本B的软件***代替版本A的软件***在产品中应用。
步骤S104:从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。
在具体实现步骤S104的过程中,如果只存在一个目标运算方法,则将该目标运算方法的运算结果作为最终运算结果;如果存在两个及以上个目标运算方法,则利用预设规则,从所有目标运算方法的运算结果中选择出符合该预设规则的运算结果作为最终运算结果,并将该最终运算结果输出。也就是说,将多个目标运算方法的运算结果(相当于多个版本的软件***或其它对象的运算结果)转换为单一的运算结果(最终运算结果)输出。
需要说明的是,预设规则按照多数选择规则和优先级规则构建,多数选择规则具体是指:选择出现次数最多的运算结果作为最终运算结果,例如:假设在沙箱内执行10个目标运算方法,其中6个目标运算方法的运行结果为a,4个目标运算方法的运行结果为b,此时将a作为最终运算结果输出。优先级规则是指:将优先级最高的目标运算方法对应的运算结果作为最终运算结果。
优选的,在执行步骤S101至步骤S104的过程中,若任意步骤出现异常,也就是若在任意步骤中获取到异常代码,利用预设的默认运算方法对应的沙箱权重,在沙箱内执行默认运算方法得到相应的运算结果,并从默认运算方法对应的运算结果中确定并输出符合预设规则的最终运算结果,从而能保证沙箱的运算安全性,从默认运算方法对应的运算结果中确定最终运算结果的方式可参见上述内容,在此不再赘述。
可以理解的是,通过上述各个步骤中内容,可实现多个版本的软件***(或者其它对象)同时在线运行,通过上述“第二种确定目标运算方法的方式”来控制哪些运算调用方能调用新版本软件***(相当于目标运算方法)和控制哪些运算调用方只能调用旧版本软件***,例如:控制只有1%的运算调用方能调用新版本软件***,其他99%的运算调用方只能调用旧版本软件***。
同理,上述各个步骤中内容,还可应用于A/B测试等方面,在此不做限定。
上述各个步骤所示出的基于沙箱的数据处理方法中,可通过调整运算方法的沙箱权重和IP白名单等参数,实现运算实时路由,当出现问题时不需要代码回滚即可切换软件***的版本。
在本发明实施例中,根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组。根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法。针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果。从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。将前述内容应用于多版本软件***的应用中,可以同时在沙箱内运行多个版本的软件***并得到相应的运算结果,降低试错成本和提高问题解决速度。
上述本发明实施例图1中的内容可具体划分为两个主要步骤,分别为:其一为预先在沙箱外部构建运算配置类;其二为在沙箱内以函数式编程的方式执行所确定的目标运算方法;从而实现通过外部构建的运算配置类来控制沙箱内的目标运算方法的最终运算结果,下面以图2示出的算法框架图对图1中的内容进行解释说明,需要说明的是,图2仅用于举例。
参见图2,示出了本发明实施例提供的一种基于沙箱的数据处理方法的算法框架图,该算法框架图至少包含:运算配置***(ComputationConfigListener)201、运算配置类(ComputationConfig)202、计算配置组(ComputationGroup)203、运算方法(Computation)204、接口(ComputationGroupService)205和实现类(DefaultComputationGroupService)206;
其中,运算配置***用于监听对沙箱的运算配置类的修改,并使修改后的运算配置类实时生效。
运算配置类可用于规定计算配置组的运算规则和具体运算的实现类。
计算配置组由至少一个运算方法组成,各个运算方法实现同一个接口,即各个运算方法具有相同的输入类型和相同的输出类型。
接口为计算配置组执行运算方法的接口类,主要用于计算。
实现类为计算配置组执行运算方法的实现类,实现接口,实现类具体负责加载运算配置类、执行运算方法和确定最终运算结果等。
上述本发明实施例图1步骤S104中涉及的确定并输出符合预设规则的最终运算结果的过程,参见图3,示出了本发明实施例提供的确定并输出最终运算结果的流程图,包括:
步骤S301:判断所有目标运算方法的运算结果是否满足多数选择规则。若所有运算结果满足多数选择规则,执行步骤S302,若所有运算结果不满足多数选择规则,执行步骤S303。
可以理解的是,在执行所有目标运算方法时,不同的目标运算方法的运算结果可能相同,因此在具体实现步骤S301的过程中,判断所有目标运算方法的运算结果是否满足多数选择规则,也就是说,判断是否存在一个(唯一一个)出现次数最多的运算结果。若存在一个出现次数最多的运算结果,则确定所有运算结果满足多数选择规则,若不存在一个出现次数最多的运算结果,则确定所有运算结果不满足多数选择规则。
例如:假设执行10个目标运算方法,其中,5个目标运算方法的运算结果为a,3个目标运算方法的运算结果为b,2个目标运算方法的运算结果为c,此时存在一个出现次数最多的运算结果(即运算结果a),确定所有运算结果满足多数选择规则。
又例如:假设执行3个目标运算方法,该3个目标运算方法的运算结果均不相同,此时不存在一个出现次数最多的运算结果,确定所有运算结果不满足多数选择规则。
步骤S302:确定出现次数最多的运算结果为最终运算结果,并输出最终运算结果。
在具体实现步骤S302的过程中,当确定所有运算结果满足多数选择规则时,将出现次数最多的运算结果为最终运算结果,并输出该最终运算结果。
步骤S303:判断是否存在任意两个目标运算方法具有相同优先级。若所有目标运算方法的优先级均不相同,执行步骤S304,若存在任意两个目标运算方法具有相同优先级,执行步骤S305。
由上述本发明实施例图1中的内容可知,每个运算方法包含自身对应的优先级,故每个目标运算方法也包含自身对应的优先级,在具体实现步骤S303的过程中,当确定所有运算结果不满足多数选择规则后,判断是否存在任意两个目标运算方法具有相同优先级,也就是判断所有目标运算方法的运算结果是否满足优先级规则。
当所有目标运算方法的优先级均不相同时,确定所有目标运算方法的运算结果满足优先级规则,执行步骤S304。当存在任意两个(也可能是两个以上)目标运算方法具有相同优先级时,确定所有目标运算方法的运算结果不满足优先级规则,执行步骤S305。
例如:假设存在5个目标运算方法,若该5个目标运算方法的优先级均不相同,确定所有目标运算方法的运算结果满足优先级规则;若其中至少2个目标运算方法具有相同优选级时,确定所有目标运算方法的运算结果不满足优先级规则。
步骤S304:确定优先级最高的目标运算方法对应的运算结果为最终运算结果,并输出最终运算结果。
在具体实现步骤S304的过程中,若所有目标运算方法的运算结果满足优先级规则,也就是若所有目标运算方法的优先级均不相同,则将优先级最高的目标运算方法对应的运算结果作为最终运算结果,并输出该最终运算结果。
步骤S305:确定回退(fallback)结果为最终运算结果,并输出最终运算结果。
在具体实现步骤S305的过程中,若所有运算结果不满足多数选择规则且所有目标运算方法的运算结果不满足优先级规则,将fallback结果作为最终运算结果,并输出该最终运算结果。
在本发明实施例中,在执行所有目标运算方法得到运算结果之后,利用预设的多数选择规则和优先级规则,从所有运算结果中选择最终运算结果,当所有运算结果均不满足多数选择规则和优先级规则时,将fallback结果作为最终运算结果,保证最终运算结果的有效性和安全性。
与上述本发明实施例提供的一种基于沙箱的数据处理方法相对应,参见图4,本发明实施例还提供了一种基于沙箱的数据处理***的结构框图,该数据处理***包括:第一确定单元401、第二确定单元402、执行单元403和处理单元404;
第一确定单元401,用于根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组,运算配置类包含多个计算配置组,每个计算配置组至少包含一个运算方法,每个计算配置组对应一组沙箱运算配置,每个运算方法至少包含沙箱权重。
第二确定单元402,用于根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法。
在具体实现中,第二确定单元402具体用于:获取目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名,从目标计算配置组中确定与目标运算方法名对应的目标运算方法。
在另一具体实现中,第二确定单元402具体用于:获取目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;从目标计算配置组中确定与目标运算方法名对应的第一运算方法;针对每个第一运算方法,利用第一运算方法的IP白名单对运算调用方进行身份验证,若运算调用方通过身份验证,将第一运算方法作为目标运算方法。
执行单元403,用于针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果。
处理单元404,用于从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。
在本发明实施例中,根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组。根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法。针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果。从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。将前述内容应用于多版本软件***的应用中,可以同时在沙箱内运行多个版本的软件***并得到相应的运算结果,降低试错成本和提高问题解决速度。
优选的,结合图4示出的内容,处理单元404包括:第一判断模块、第一确定模块、第二判断模块、第二确定模块和第三确定模块,各个模块的执行原理如下:
第一判断模块,用于判断所有目标运算方法的运算结果是否满足多数选择规则,若所有运算结果满足多数选择规则,执行第一确定模块,若所有运算结果不满足多数选择规则,执行第二判断模块。
第一确定模块,用于确定出现次数最多的运算结果为最终运算结果,并输出最终运算结果。
第二判断模块,用于判断是否存在任意两个目标运算方法具有相同优先级,若所有目标运算方法的优先级均不相同,执行第二确定模块,若存在任意两个目标运算方法具有相同优先级,执行第三确定模块。
第二确定模块,用于确定优先级最高的目标运算方法对应的运算结果为最终运算结果,并输出最终运算结果。
第三确定模块,用于确定fallback结果为最终运算结果,并输出最终运算结果。
在本发明实施例中,在执行所有目标运算方法得到运算结果之后,利用预设的多数选择规则和优先级规则,从所有运算结果中选择最终运算结果,当所有运算结果均不满足多数选择规则和优先级规则时,将fallback结果作为最终运算结果,保证最终运算结果的有效性和安全性。
优选的,结合图4示出的内容,该数据处理***还包括:
异常处理单元,用于若获取到异常代码,利用预设的默认运算方法对应的沙箱权重,在沙箱内执行默认运算方法得到相应的运算结果,并从默认运算方法对应的运算结果中确定并输出符合预设规则的最终运算结果。
优选的,结合图4示出的内容,该数据处理***还包括:
比对单元,用于比对所有目标运算方法的运算结果,得到并输出比对结果。
综上所述,本发明实施例提供一种基于沙箱的数据处理方法及***,根据运算调用方输入沙箱的目标计算组名,从预先传入沙箱的运算配置类中确定与目标计算组名对应的目标计算配置组。根据目标计算配置组对应的沙箱运算配置,从目标计算配置组中确定至少一个目标运算方法。针对每个目标运算方法,利用目标运算方法对应的沙箱权重,在沙箱内执行目标运算方法得到相应的运算结果。从所有目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。将前述内容应用于多版本软件***的应用中,可以同时在沙箱内运行多个版本的软件***并得到相应的运算结果,降低试错成本和提高问题解决速度。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***或***实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的***及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种基于沙箱的数据处理方法,其特征在于,所述方法包括:
根据运算调用方输入沙箱的目标计算组名,从预先传入所述沙箱的运算配置类中确定与所述目标计算组名对应的目标计算配置组,所述运算配置类包含多个计算配置组,每个计算配置组至少包含一个运算方法,每个计算配置组对应一组沙箱运算配置,每个运算方法至少包含沙箱权重;
根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法;
针对每个目标运算方法,利用所述目标运算方法对应的沙箱权重,在所述沙箱内执行所述目标运算方法得到相应的运算结果;
从所有所述目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法,包括:
获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;
从所述目标计算配置组中确定与所述目标运算方法名对应的目标运算方法。
3.根据权利要求1所述的方法,其特征在于,每个运算方法还包含IP白名单,所述根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法,包括:
获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;
从所述目标计算配置组中确定与所述目标运算方法名对应的第一运算方法;
针对每个第一运算方法,利用所述第一运算方法的IP白名单对所述运算调用方进行身份验证,若所述运算调用方通过身份验证,将所述第一运算方法作为目标运算方法。
4.根据权利要求1所述的方法,其特征在于,每个运算方法还包含优先级,所述从所有所述目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果,包括:
判断所有所述目标运算方法的运算结果是否满足多数选择规则;
若所有所述运算结果满足多数选择规则,确定出现次数最多的所述运算结果为最终运算结果,并输出所述最终运算结果;
若所有所述运算结果不满足所述多数选择规则,判断是否存在任意两个所述目标运算方法具有相同优先级;
若所有所述目标运算方法的优先级均不相同,确定优先级最高的所述目标运算方法对应的所述运算结果为最终运算结果,并输出所述最终运算结果;
若存在任意两个所述目标运算方法具有相同优先级,确定回退fallback结果为最终运算结果,并输出所述最终运算结果。
5.根据权利要求1所述的方法,其特征在于,还包括:
若获取到异常代码,利用预设的默认运算方法对应的沙箱权重,在所述沙箱内执行所述默认运算方法得到相应的运算结果,并从所述默认运算方法对应的运算结果中确定并输出符合预设规则的最终运算结果。
6.根据权利要求1所述的方法,其特征在于,针对每个目标运算方法,利用所述目标运算方法对应的沙箱权重,在所述沙箱内执行所述目标运算方法得到相应的运算结果之后,还包括:
比对所有所述目标运算方法的运算结果,得到并输出比对结果。
7.一种基于沙箱的数据处理***,其特征在于,所述***包括:
第一确定单元,用于根据运算调用方输入沙箱的目标计算组名,从预先传入所述沙箱的运算配置类中确定与所述目标计算组名对应的目标计算配置组,所述运算配置类包含多个计算配置组,每个计算配置组至少包含一个运算方法,每个计算配置组对应一组沙箱运算配置,每个运算方法至少包含沙箱权重;
第二确定单元,用于根据所述目标计算配置组对应的沙箱运算配置,从所述目标计算配置组中确定至少一个目标运算方法;
执行单元,用于针对每个目标运算方法,利用所述目标运算方法对应的沙箱权重,在所述沙箱内执行所述目标运算方法得到相应的运算结果;
处理单元,用于从所有所述目标运算方法的运算结果中,确定并输出符合预设规则的最终运算结果。
8.根据权利要求7所述的***,其特征在于,所述第二确定单元具体用于:获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;从所述目标计算配置组中确定与所述目标运算方法名对应的目标运算方法。
9.根据权利要求7所述的***,其特征在于,所述第二确定单元具体用于:获取所述目标计算配置组对应的沙箱运算配置中的至少一个目标运算方法名;从所述目标计算配置组中确定与所述目标运算方法名对应的第一运算方法;针对每个第一运算方法,利用所述第一运算方法的IP白名单对所述运算调用方进行身份验证,若所述运算调用方通过身份验证,将所述第一运算方法作为目标运算方法。
10.根据权利要求7所述的***,其特征在于,所述处理单元包括:
第一判断模块,用于判断所有所述目标运算方法的运算结果是否满足多数选择规则,若所有所述运算结果满足多数选择规则,执行第一确定模块,若所有所述运算结果不满足所述多数选择规则,执行第二判断模块;
所述第一确定模块,用于确定出现次数最多的所述运算结果为最终运算结果,并输出所述最终运算结果;
所述第二判断模块,用于判断是否存在任意两个所述目标运算方法具有相同优先级,若所有所述目标运算方法的优先级均不相同,执行第二确定模块,若存在任意两个所述目标运算方法具有相同优先级,执行第三确定模块;
所述第二确定模块,用于确定优先级最高的所述目标运算方法对应的所述运算结果为最终运算结果,并输出所述最终运算结果;
所述第三确定模块,用于确定回退fallback结果为最终运算结果,并输出所述最终运算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110626273.7A CN113297568B (zh) | 2021-06-04 | 2021-06-04 | 一种基于沙箱的数据处理方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110626273.7A CN113297568B (zh) | 2021-06-04 | 2021-06-04 | 一种基于沙箱的数据处理方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297568A true CN113297568A (zh) | 2021-08-24 |
CN113297568B CN113297568B (zh) | 2024-04-30 |
Family
ID=77327187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110626273.7A Active CN113297568B (zh) | 2021-06-04 | 2021-06-04 | 一种基于沙箱的数据处理方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297568B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874731A (zh) * | 2017-04-14 | 2017-06-20 | 深信服科技股份有限公司 | 一种基于终端的应用层多用户方法及装置 |
CN107832105A (zh) * | 2017-11-24 | 2018-03-23 | 南昌黑鲨科技有限公司 | 一种应用程序启动方法、启动装置及计算机可读存储介质 |
CN108229149A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种数据保护的方法和装置 |
CN110574034A (zh) * | 2017-03-24 | 2019-12-13 | 赛门铁克公司 | 基于端点遥测的样本特定的沙箱配置 |
CN111263938A (zh) * | 2017-09-29 | 2020-06-09 | 甲骨文国际公司 | 基于规则的自主数据库云服务框架 |
CN112527486A (zh) * | 2020-12-17 | 2021-03-19 | 航天信息股份有限公司 | 调度优化方法及装置 |
-
2021
- 2021-06-04 CN CN202110626273.7A patent/CN113297568B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110574034A (zh) * | 2017-03-24 | 2019-12-13 | 赛门铁克公司 | 基于端点遥测的样本特定的沙箱配置 |
CN106874731A (zh) * | 2017-04-14 | 2017-06-20 | 深信服科技股份有限公司 | 一种基于终端的应用层多用户方法及装置 |
CN111263938A (zh) * | 2017-09-29 | 2020-06-09 | 甲骨文国际公司 | 基于规则的自主数据库云服务框架 |
CN107832105A (zh) * | 2017-11-24 | 2018-03-23 | 南昌黑鲨科技有限公司 | 一种应用程序启动方法、启动装置及计算机可读存储介质 |
CN108229149A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种数据保护的方法和装置 |
CN112527486A (zh) * | 2020-12-17 | 2021-03-19 | 航天信息股份有限公司 | 调度优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113297568B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10678536B2 (en) | Callable notebook for cluster execution | |
JP2018185808A (ja) | ブロックチェーンに基づくスマート契約をテストする装置及び方法 | |
CN109690545B (zh) | Plc虚拟补丁和安全上下文的自动分发 | |
CN100492300C (zh) | 在微处理器实现的设备上执行进程的***和方法 | |
US20070220492A1 (en) | Application verifier infrastructure and checks | |
EP3586232A1 (en) | System upgrade management in distributed computing systems | |
KR20100046198A (ko) | 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템 | |
US20090089039A1 (en) | System and method of emulating functionality of a web service | |
US8392921B2 (en) | Apparatus and method of coordinating operation action of robot software component | |
DE102011005209A1 (de) | Programmanweisungsgesteuerte Instruktionsflusskontrolle | |
CN114610318A (zh) | 安卓应用程序的打包方法、装置、设备及存储介质 | |
US8650280B2 (en) | Monitoring distributed task execution using a chained text messaging system | |
CN110347494A (zh) | 上下文信息管理方法、装置、***及计算机可读存储介质 | |
CN113297568B (zh) | 一种基于沙箱的数据处理方法及*** | |
CN111966383A (zh) | 一种操作***内核兼容性量化分析方法、***和介质 | |
CN116034362B (zh) | 容器镜像的扩展的完整性监视 | |
CN115185543A (zh) | 模型部署方法、打包方法、装置、设备及存储介质 | |
CN115396221A (zh) | 授权处理方法及装置、***、电子设备及存储介质 | |
Jones et al. | Enforcing IRM security policies: Two case studies | |
US9800692B2 (en) | Expression based declarative data service execution chaining | |
US20220006863A1 (en) | Method for processing application programs in a distributed automation system | |
CN111538491A (zh) | 数据事件处理方法、装置、设备和存储介质 | |
EP4160458A1 (en) | Approving modifications of an automation program within a distributed ledger technology-based ecosystem network | |
CN115955481B (zh) | 应急响应方法和装置 | |
EP4390737A1 (en) | Method for deploying a containerized control application to an industrial control system and industrial control system |
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 |