CN111949252A - 一种数据处理方法、装置和电子设备 - Google Patents
一种数据处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111949252A CN111949252A CN202010718400.1A CN202010718400A CN111949252A CN 111949252 A CN111949252 A CN 111949252A CN 202010718400 A CN202010718400 A CN 202010718400A CN 111949252 A CN111949252 A CN 111949252A
- Authority
- CN
- China
- Prior art keywords
- data
- configuration data
- monitoring
- configuration
- attribute
- 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
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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据处理方法,包括:针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据;若所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;返回所述监控对象数据。本发明还公开了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现前述的数据处理方法的步骤。本发明提供了一种通用的数据结构支持所有配置数据的只读功能,同时支持嵌套数据的只读功能。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种数据处理方法、装置和电子设备。
背景技术
游戏开发中会用到大量的配置数据,这些数据通常是由策划填表后再转换为代码在程序中使用,在python开发的游戏中,这些配置数据一般会存放在python的dict(字典)、list(列表)、set(集合)等数据结构中,例如物品配置信息如下:
这些配置数据会在很多地方使用(例如物品配置信息可能会在包裹系统、奖励系统、邮件系统等地方使用),通常是不能修改,一旦某个地方不小心修改,会导致其他所有用到的地方都受影响,这种潜在的风险在语法和语义层面都是无法检测的,但在逻辑层面上就会导致程序异常造成bug。
目前常用的只读数据实现是分别继承python的dict、list、set等,实现一个新的数据结构,例如ReadOnlyDict、ReadOnlyList、ReadOnlySet等,然后禁用掉可以修改各个数据结构的方法,例如dict的update、pop,list的insert、remove等,这样就无法直接修改对应的数据。但采用此方案后,仍会有数据意外被意外修改。
以上背景技术内容的公开仅用于辅助理解本发明的构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。
发明内容
基于现有技术中需要针对每种数据结构单独继承实现新的数据结构的问题以及嵌套数据无法实现只读的问题,本发明提出了一种数据处理方法、装置和电子设备,提供了一种通用的数据结构支持所有配置数据的只读功能,同时支持嵌套数据的只读功能。
为了达到上述目的,本发明采用以下技术方案:
第一方面,本发明的实施例提供了一种数据处理方法,包括:
针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;
响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据;若所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;
返回所述监控对象数据。
优选地,若所述配置数据为不可变类型数据,返回所述配置数据。
优选地,在返回所述监控对象数据之后,所述方法包括:
监测针对所述监控对象数据中包含的配置数据的处理操作;
若所述处理操作包括修改操作或删除操作,禁止修改或禁止删除所述配置数据;
否则,调用所述监控对象数据中包含的配置数据。
优选地,在所述禁止修改或禁止删除所述配置数据时,提示操作错误信息。
优选地,所述监控对象数据包括与所述配置数据对应的修改函数、删除函数和只读函数;
所述禁止修改或禁止删除所述配置数据,包括:
调用所述修改函数或删除函数;
将所述修改函数或删除函数设置为只读函数。
优选地,针对配置数据定义一个属性监控类之后,还对所述属性监控类的配置数据的实际值、所述属性监控类的配置数据在拥有者上的对象名、所述属性监控类的配置数据的拥有者进行初始化。
优选地,所述可变类型数据包括以下之一:dict类型数据,或list类型数据,或set类型数据。
第二方面,本发明的实施例一种数据处理装置,包括:定义模块,用于针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;判断模块,用于响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据;封装模块,用于在所述判断模块判断所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;返回数据模块,用于在根据所述属性监控类将所述配置数据封装为监控对象数据之后返回所述监控对象数据。
第三方面,本发明的实施例公开了一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现上述的数据处理方法的步骤。
第四方面,本发明的实施例公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使处理器实现上述的数据处理方法的步骤。
与现有技术相比,本发明的有益效果在于:本发明提出的数据方法,通过针对配置数据定义一个属性监控类,以监测配置数据是否被修改或删除,并在判断为可变类型数据时,将这些可变类型数据的配置数据进行封装再返回该封装数据,通过该封装数据可以实时监控配置数据的修改或删除,一旦有修改或删除可以立刻发现;从而可以起到监控嵌套数据的修改操作,禁止修改嵌套数据内容,保证嵌套数据的只读性;因此,本发明提供了一种通用的数据结构支持所有配置数据的只读功能,而且支持复杂的嵌套数据的监控,提供只读功能。
附图说明
图1是本发明优选实施例的数据处理方法的流程图;
图2是本发明进一步实施例的数据处理方法的流程图;
图3是本发明优选实施例的数据处理装置的结构示意图;
图4是本发明进一步实施例的数据处理装置的结构示意图。
具体实施方式
下面对照附图并结合优选的实施方式对本发明作进一步说明。
本发明人发现,采用现有技术中继承python的dict、list、set等实现一个新的数据结构然后禁用掉可以修改各个数据结构的方法的方案后,虽然可以一定程度上实现只读数据,但是存在一个问题,就是只能实现浅只读,无法支持嵌套数据的只读;对于有嵌套的数据,一样可以修改嵌套数据而导致数据最终被修改。例如,data={"k1":{}},虽然不能直接对data进行修改,但如果temp=data["k1"]后,就可以直接对temp修改,比如temp["k2"]=1后,data内容就变成data={'k1':{'k2':1}}了。这种修改一样会导致程序异常。
根据本公开其中一实施例,提供了一种数据处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明提出一种数据处理方法,包括:针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据(例如python里的list(列表)、dict(字典)、set(集合)属于可变类型数据,其他的是不可变类型数据,比如int(整数)、str(字符串)等);若所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;返回所述监控对象数据;若所述配置数据为不可变类型数据,返回所述配置数据。
其中,在返回所述监控对象数据之后,所述方法包括:监测针对所述监控对象数据中包含的配置数据的处理操作;若所述处理操作包括修改操作或删除操作,禁止修改或禁止删除所述配置数据,并可进一步提示操作错误信息;否则,调用所述监控对象数据中包含的配置数据。进一步地,所述监控对象数据包括与所述配置数据对应的修改函数、删除函数和只读函数;所述禁止修改或禁止删除所述配置数据,包括:调用所述修改函数或删除函数;将所述修改函数或删除函数设置为只读函数。
进一步地,本发明提出一种数据处理方法,该方案可以基于python描述符实现,python描述符是一个绑定行为的对象属性,在描述符协议中,可以通过重写属性的访问方法实现对属性对象(即相应的配置数据)的监控。其中配置数据的访问和修改或删除方法包括__get__、__set__、__getitem__、__setitem__、__delitem__、__getattr__等函数,其中__get__和__getitem__都是获取属性的函数,二者的获取的方式不同,比如通过Data.k(Data是一个配置数据变量名,Data.k就是访问配置数据里名叫“k”的属性)会调用到_get__来获取属性,通过Data[“key”](Data是配置数据变量名,Data[“key”]就是访问Data里名为key的属性,和前述的Data.k仅是访问方式不同而已)调用到__getitem__来获取属性;__set__和__setitem__都是设置属性的函数,二者的设置的方式不同;__delitem__是删掉一个值,比如通过delData[“key”](删除Data数据里名为“key”的属性)会调用到__delitem__;__getattr__是在调用python中任何方法时会调用到的函数。需要说明的是,本公开的数据处理方法并不局限于在python环境中使用,也可应用于其他程序语言,如C++、Java等。
本发明优选实施例中,以python环境为例,采用一个全局的数据管理对象DataMgr来管理所有只读数据,每个只读数据当成一个属性对象,比如物品数据,可以认为DataMgr上一个名称为ItemData的属性对象,里面的值就是其中的配置数据。
如图1所示,本发明优选实施例提出的数据处理方法,包括以下步骤:
S1:针对配置数据定义一个属性监控类,属性监控类用于监测配置数据是否被修改或删除;
首先,将python里的基本数据结构按可变类型数据和不可变类型数据进行分类,python里的list(列表)、dict(字典)、set(集合)属于可变类型数据,其他的是不可变类型数据,比如int(整数)、str(字符串)等;其对应的实现过程举例如下:
BASE_IMMUTABLE_TYPE=(int,str) #不可变类型;暂不考虑tuple,存盘不会存个不可变的tuple数据
BASE_MUTABLE_TYPE=(list,dict,set) #可变类型
具体在python环境中,定义一个属性监控类,并将可变类型数据(list、dict、set数据)中的会改变数据的方法列出;
其中,list数据中会改变数据的方法有insert(插入)、remove(删除)、append(附加)、extend(扩展)、pop(弹出)、reverse(反转)等函数,dict数据中会改变数据的方法有update(更新)、pop(弹出)、clear(清除)等函数,set数据中会改变数据的方法有add(增加)、remove(删除)、pop(弹出)、update(更新)、discard(移除)、clear(清除)等函数。其对应的实现过程举例如下:
在本步骤中定义了属性监控类之后,还可对属性监控类的配置数据进行初始化;
在一种可选的实施例中,针对配置数据定义一个属性监控类之后,还对所述属性监控类的配置数据的实际值、所述属性监控类的配置数据在拥有者上的对象名、所述属性监控类的配置数据的拥有者进行初始化。
本步骤中初始化的值就是原始的配置数据,也即不希望被修改或删除的数据。采用__init__函数对配置数据做一些初始化,包括实际值、监控对象数据在拥有者owner(也就是DataMgr)上的属性名、监控对象数据的拥有者。其对应的实现过程具举例如下:
def__init__(self,value=None,attr_name=None):
self._value=value #实际值
self._attr_nane=attr_name #Monitor对象在owner上的属性名
self._owner=None #Monitor对象的拥有者
S2:响应针对配置数据的获取请求,确定配置数据是否为可变类型数据;如果是不可变类型数据,执行步骤S3:返回所述配置数据;如果配置数据为可变类型数据,则执行步骤S4:根据属性监控类将配置数据封装为监控对象数据,返回所述监控对象数据;
本步骤即为在属性监控类内重新实现数据的访问获取接口。也即该步骤具体实施时可概括为包括:访问配置数据中任意名称的数据;判断该名称对应的数据是否为dict(字典)、list(列表)、set(集合)类型,如果是,则采用原始数据初始化生成监控对象数据返回,本步骤中人为创建新的监控对象数据,以保证嵌套数据的情况下,能禁止修改或删除返回的子对象数据;如果否,则直接返回数据,本步骤中由于是不可变类型数据,不会有嵌套情况,直接返回不用担心被修改或删除。
当监控对象的拥有者owner通过owner.attr_name方式获取属性对象时,会调用属性监控类的__get__函数,先从owner.__dict__里获取原生数据,如果是不可变类型数据,则直接返回,否则创建一个监控对象数据返回。其对应的实现过程举例如下:
其中,首先根据attr_name获取原始值,如果不是可变类型数据则直接返回,如果是可变类型数据则用原始值value创建一个监控对象数据,并设置对象的owner,再返回这个对象;通过这样的步骤使得外面(获取子对象的地方)修改或删除这个返回的对象时能监控到并禁止修改或删除。
当监控对象的拥有者owner通过owner.attr_name[key]方式获取属性对象时,会调用属性监控类的__getitem__函数,先获取原生数据,如果是不可变类型数据,则直接返回,否则生成新的监控对象数据返回。其对应的实现过程举例如下:
其中,如果有个dict类型数据D,在调用D[“name”]时,会调用到__getitem__函数,参数key=“name”。首先根据key获取原始值,如果是不可变类型数据,比如“name”是“张三”,则直接返回,如果是可变类型数据,则用value和key初始化一个监控对象数据,再返回监控对象数据。
上述无论__get__还是__getitem__方法获取数据,对于可变类型数据,获取时都需要返回一个监控对象数据,从而实现嵌套数据的只读功能;当获取嵌套的数据返回的也是一个监控对象数据时,才可以起到监控嵌套数据的修改或删除操作,禁止修改或删除嵌套数据内容,保证嵌套数据的只读性。因为监控对象数据对数据修改或删除的方法都禁止了,所以获取嵌套数据时必须返回监控对象数据,如果是原始数据,是没禁止修改或删除方法的。例如,有个数据Data={“k1”:{“k2”:3}},这是个嵌套的数据,假设Tmp=Data[“k1”],这个时候Tmp的内容是{“k2”:3},此时调用Tmp[“k2”]=4修改或删除Tmp的内容,如果是现有的技术方案实现,则可以修改或删除成功,并且Data的内容也变为{“k1”:{“k2”:4}了;而采用本发明方案,在执行Tmp=Data[“k1”]这句时,就会调用上述具体实现过程的代码,返回的Tmp就是个监控对象数据而不是dict了,此时如果调用Tmp[“k2”]=4尝试修改或删除Tmp内容时,会调用到监控对象数据的__setitem__函数,这个函数已经被设置为__readonly__函数了,所以就会报错并且修改或删除无效。从而,实现了数据是嵌套的可变类型数据时能禁止修改或删除接口。
进一步地,如图2所示,在进一步的实施例中,该数据处理方法除了包括以上步骤以外,还包括步骤S5:监测针对所述监控对象数据中包含的配置数据的处理操作,并判断所述处理操作是否包括修改操作或删除操作,如果是,则执行步骤S6:禁止修改或禁止删除所述配置数据;否则,执行步骤S7:调用所述监控对象数据中包含的配置数据。
通过上述步骤可以在属性监控类内重新实现配置数据的禁止修改接口。
在一种可选的实施例中,在禁止修改或禁止删除所述配置数据时,还提示操作错误信息,例如提示修改或删除无效并报错提示。
在一种可选的实施例中,步骤S4返回的监控对象数据包括与配置数据对应的修改函数、删除函数和只读函数;其中上述禁止修改或禁止删除所述配置数据,包括:调用修改函数或删除函数;将修改函数或删除函数设置为只读函数。
本步骤中给属性监控类定义一个只读方法,对于所有可能修改或删除数据的方法都设置为只读方法,如果尝试修改或删除数据,即让其修改或删除无效并报错提示。
在一个实施例中,可以将可能修改或删除数据的方法直接设置为只读方法即可,其对应的实现过程举例如下:
上述__set__、__setitem__、__delitem__函数都是一些基本的修改或删除数据的方法,在此直接设置为只读方法(__readonly__函数)。具体地,根据python固有的规则,当监控对象拥有者owner通过owner.attr_name=xxx方式修改数据时,会调用监控对象数据的__set__函数;当监控对象拥有者owner通过owner.attr_name[key]=xxx方式修改数据时,会调用监控对象数据的__setitem__函数;当监控对象拥有者owner通过delowner.attr_name[key]方式删除数据时,会调用监控对象数据的__delitem__函数;此时这三个函数已经设置为__readonly__,所以修改或删除无效并报错提示。
对于可变类型数据(list、dict、set)的监控对象,可以直接将其中的会改变数据的方法(例如list数据中的insert、remove、append、extend、pop、reverse等函数)设置为只读方法即可,在判断调用相应的函数时即修改或删除无效并报错提示;另外在另一个实施例中,还可以在属性监控类重载__getattr__函数来调用可变类型数据中可能改变数据的方法时,修改或删除数据内容的函数调用,再使其都设置为__readonly__,即让对应的改变数据的方法修改或删除失效,其对应的实现过程举例如下:
其中在“#判断是否是修改或删除数据的方法”以下几行的内容主要是针对不同类型的数据判断是否是会修改或删除数据的方法,具体步骤为:判断是否是dict类型,如果是则返回是否是dict中修改或删除数据的方法;然后判断是否是list类型,如果是则返回是否是list中修改或删除数据的方法;再判断是否是set类型,如果是则返回是否是set中修改或删除数据的方法;上述判断如果否,则返回假。
不同类型的数据修改或删除方法不同,具体如步骤S1中的列出的可变类型数据(list、dict、set数据)中的会改变数据的函数。上述具体实现过程中的__getattr__函数是在调用python对象任何方法时都会调用到的函数,比如有一个list类型的数据对象L,如果调用L.append(3)表示往L里面新增一个元素3,这个时候就会调用list的__getattr__函数,其中__getattr__函数的参数method_name=“append”;这个函数在上述具体实现过程中的“ifself.is_modify_method(method_name)”一行会判断出list的“append”方法是会修改或删除数据内容的,所以后续直接返回__readonly__的提示,不让修改或删除,如果不是修改或删除数据内容的方法,则直接在“returnorig_method”中使用原本的方法即可,也即直接调用即可。
上述实施例中的基于python的数据处理方法,通过定义一个属性监控类,也即在原始的python数据上面加一层封装,然后在该属性监控类内通过重新实现数据的访问获取接口和禁止修改或删除接口来实现只读,可以实时监控任何类型的python数据,一旦有修改或删除可以立刻发现;其中重新实现数据的访问获取接口目的也是为了处理获取的数据是嵌套的可变类型数据时能禁止修改或删除接口,对于可变类型数据,获取时都需要返回一个监控对象数据,当获取嵌套的数据返回的也是一个监控对象数据,而监控对象数据对数据修改或删除的方法都禁止了,从而可以起到监控嵌套数据的修改或删除操作,禁止修改或删除嵌套数据内容,保证嵌套数据的只读性;从而提供了一种通用的数据结构支持所有python数据的只读功能,且支持嵌套数据的只读功能。而且该方法在使用时不需要知道是属性监控类,就当做原生python数据来用,实现了对于业务层来说完全透明,无需修改任何现有逻辑即可无痛接入,可移植性强,提高了系统的可维护性和扩展性。
如图3所示,本发明还提出一种数据处理装置,包括:
定义模块31,用于针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;
判断模块32,用于响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据;
封装模块33,用于在判断模块32判断所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;
返回数据模块34,用于在根据所述属性监控类将所述配置数据封装为监控对象数据之后返回所述监控对象数据;并用于在所述配置数据为不可变类型数据,返回所述配置数据。
进一步地,如图4所示,该数据处理装置除了包括上述模块以外,还包括:
监测模块35,用于监测针对所述监控对象数据中包含的配置数据的处理操作;
调用数据模块36,用于监测模块35监测到所述处理操作包括修改操作或删除操作时,调用所述修改函数或删除函数;并将所述修改函数或删除函数设置为只读函数;并在监测模块35监测到所述处理操作不包括修改操作或删除操作时调用所述监控对象数据中包含的配置数据。
本发明优选实施例还提供了一种电子设备,用于运行数据处理方法;该电子设备包括存储器和处理器,其中,存储器用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以实现上述数据处理方法。其中,该电子设备可以是终端设备或者是服务器。
进一步地,终端设备还包括总线和通信接口,处理器、通信接口和存储器通过总线连接。其中,存储器可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application SpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
进一步地,服务器还包括总线和通信接口,处理器、通信接口和存储器通过总线连接。其中,存储器可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application SpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述数据处理方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的数据处理方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和/或终端设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;
响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据;若所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;
返回所述监控对象数据。
2.根据权利要求1所述的数据处理方法,其特征在于,若所述配置数据为不可变类型数据,返回所述配置数据。
3.根据权利要求1所述的数据处理方法,其特征在于,在返回所述监控对象数据之后,所述方法包括:
监测针对所述监控对象数据中包含的配置数据的处理操作;
若所述处理操作包括修改操作或删除操作,禁止修改或禁止删除所述配置数据;
否则,调用所述监控对象数据中包含的配置数据。
4.根据权利要求3所述的数据处理方法,其特征在于,在所述禁止修改或禁止删除所述配置数据时,提示操作错误信息。
5.根据权利要求3所述的数据处理方法,其特征在于,所述监控对象数据包括与所述配置数据对应的修改函数、删除函数和只读函数;
所述禁止修改或禁止删除所述配置数据,包括:
调用所述修改函数或删除函数;
将所述修改函数或删除函数设置为只读函数。
6.根据权利要求1所述的数据处理方法,其特征在于,针对配置数据定义一个属性监控类之后,还对所述属性监控类的配置数据的实际值、所述属性监控类的配置数据在拥有者上的对象名、所述属性监控类的配置数据的拥有者进行初始化。
7.根据权利要求1所述的数据处理方法,其特征在于,所述可变类型数据包括以下之一:
dict类型数据,或list类型数据,或set类型数据。
8.一种数据处理装置,其特征在于,包括:
定义模块,用于针对配置数据定义一个属性监控类,所述属性监控类用于监测配置数据是否被修改或删除;
判断模块,用于响应针对配置数据的获取请求,确定所述配置数据是否为可变类型数据;
封装模块,用于在所述判断模块判断所述配置数据为可变类型数据,根据所述属性监控类将所述配置数据封装为监控对象数据;
返回数据模块,用于在根据所述属性监控类将所述配置数据封装为监控对象数据之后返回所述监控对象数据。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至6任一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使处理器实现权利要求1至6任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718400.1A CN111949252B (zh) | 2020-07-23 | 2020-07-23 | 一种数据处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718400.1A CN111949252B (zh) | 2020-07-23 | 2020-07-23 | 一种数据处理方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949252A true CN111949252A (zh) | 2020-11-17 |
CN111949252B CN111949252B (zh) | 2023-09-08 |
Family
ID=73340877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718400.1A Active CN111949252B (zh) | 2020-07-23 | 2020-07-23 | 一种数据处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949252B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345318B1 (en) * | 1998-10-07 | 2002-02-05 | International Business Machines Corporation | System for maintaining a user-modifiable confirmation message configuration record that specifying with respect to a plurality of operations whether to communicate a confirmation message |
US20040003278A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Secure and opaque type library providing secure data protection of variables |
US20050091637A1 (en) * | 2003-10-23 | 2005-04-28 | Microsoft Corporation | Changeable class and pattern to provide selective mutability in computer programming environments |
CN1786955A (zh) * | 2004-12-06 | 2006-06-14 | 国际商业机器公司 | 用于管理相互相关的数据对象的方法和系统 |
US20110055624A1 (en) * | 2009-09-01 | 2011-03-03 | Lsi Corporation | Method for implementing continuous data protection utilizing allocate-on-write snapshots |
CN102158347A (zh) * | 2010-12-27 | 2011-08-17 | 畅捷通软件有限公司 | 数据保护方法、装置和服务器 |
US20120144139A1 (en) * | 2010-12-03 | 2012-06-07 | Frank Brunswig | Content modification control using read-only type definitions |
WO2017054530A1 (zh) * | 2015-09-29 | 2017-04-06 | 中兴通讯股份有限公司 | 资源访问方法、装置及系统 |
CN107066311A (zh) * | 2017-03-20 | 2017-08-18 | 中国科学院软件研究所 | 一种内核数据访问控制方法与系统 |
CN109086602A (zh) * | 2017-06-13 | 2018-12-25 | 中国移动通信集团四川有限公司 | 针对内核数据修改的拦截方法、装置及计算机存储介质 |
US20190163928A1 (en) * | 2017-11-27 | 2019-05-30 | Accenture Global Solutions Limited | System and method for managing enterprise data |
CN110515605A (zh) * | 2019-08-20 | 2019-11-29 | 网易(杭州)网络有限公司 | 属性信息的同步方法及装置、存储介质和处理器 |
CN111125107A (zh) * | 2019-12-23 | 2020-05-08 | 京东数字科技控股有限公司 | 数据处理方法、装置、电子设备和介质 |
-
2020
- 2020-07-23 CN CN202010718400.1A patent/CN111949252B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345318B1 (en) * | 1998-10-07 | 2002-02-05 | International Business Machines Corporation | System for maintaining a user-modifiable confirmation message configuration record that specifying with respect to a plurality of operations whether to communicate a confirmation message |
US20040003278A1 (en) * | 2002-06-28 | 2004-01-01 | Microsoft Corporation | Secure and opaque type library providing secure data protection of variables |
US20050091637A1 (en) * | 2003-10-23 | 2005-04-28 | Microsoft Corporation | Changeable class and pattern to provide selective mutability in computer programming environments |
CN1786955A (zh) * | 2004-12-06 | 2006-06-14 | 国际商业机器公司 | 用于管理相互相关的数据对象的方法和系统 |
US20110055624A1 (en) * | 2009-09-01 | 2011-03-03 | Lsi Corporation | Method for implementing continuous data protection utilizing allocate-on-write snapshots |
US20120144139A1 (en) * | 2010-12-03 | 2012-06-07 | Frank Brunswig | Content modification control using read-only type definitions |
CN102158347A (zh) * | 2010-12-27 | 2011-08-17 | 畅捷通软件有限公司 | 数据保护方法、装置和服务器 |
WO2017054530A1 (zh) * | 2015-09-29 | 2017-04-06 | 中兴通讯股份有限公司 | 资源访问方法、装置及系统 |
CN107066311A (zh) * | 2017-03-20 | 2017-08-18 | 中国科学院软件研究所 | 一种内核数据访问控制方法与系统 |
CN109086602A (zh) * | 2017-06-13 | 2018-12-25 | 中国移动通信集团四川有限公司 | 针对内核数据修改的拦截方法、装置及计算机存储介质 |
US20190163928A1 (en) * | 2017-11-27 | 2019-05-30 | Accenture Global Solutions Limited | System and method for managing enterprise data |
CN110515605A (zh) * | 2019-08-20 | 2019-11-29 | 网易(杭州)网络有限公司 | 属性信息的同步方法及装置、存储介质和处理器 |
CN111125107A (zh) * | 2019-12-23 | 2020-05-08 | 京东数字科技控股有限公司 | 数据处理方法、装置、电子设备和介质 |
Non-Patent Citations (3)
Title |
---|
张曙光;咸鹤群;王利明;于凯杰;张曼;: "云计算中高效加密数据重复删除方法", 通信学报, no. 1 * |
汪丹;冯登国;徐震;: "基于可信虚拟平台的数据封装方案", 计算机研究与发展, no. 08 * |
邵正将: "有效的python属性管理: 描述符的使用", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/24305162》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111949252B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101122787B1 (ko) | 보안관련 프로그래밍 인터페이스 | |
US20180336348A1 (en) | Modifying web page code to include code to protect output | |
CN111309303B (zh) | 代码生成方法、装置、计算机设备和存储介质 | |
CN112748946B (zh) | 应用程序安装文件生成方法和装置、计算设备、存储介质 | |
ES2600745T3 (es) | Seguridad basada en la región | |
CN111881473A (zh) | 隐私文件保护方法、装置、计算机设备和可读存储介质 | |
CN111523887B (zh) | 智能合约只读方法的权限控制方法、装置及电子设备 | |
US12045346B2 (en) | Systems and methods for causing nonpredictable environment states for exploit prevention and malicious code neutralization for javascript-enabled applications | |
CN112039709A (zh) | 资源调度方法、装置、设备和计算机可读存储介质 | |
CN114567507A (zh) | 限流方法、系统、设备及存储介质 | |
CN117931374A (zh) | 基于容器隔离的应用处理方法、装置、设备及存储介质 | |
CN111752570B (zh) | 一种编译方法、装置、终端及计算机可读存储介质 | |
CN111949252A (zh) | 一种数据处理方法、装置和电子设备 | |
JP5423063B2 (ja) | 情報処理装置と方法とプログラム | |
CN105760164B (zh) | 一种用户空间文件系统中acl权限的实现方法 | |
CN106203121B (zh) | 内核地址防止恶意修改方法、装置以及终端 | |
CN111679887A (zh) | 一种代理容器的配置方法及装置 | |
KR101392046B1 (ko) | 동적 라이브러리를 갖는 인터페이스를 단순화하는 방법, 시스템 및 컴퓨터 판독가능한 저장 매체 | |
CN107103099B (zh) | 浏览器主页返回方法及装置 | |
US8250535B2 (en) | Maintaining vitality of data in safety-critical systems | |
CN114546351A (zh) | 一种基于Java MVC架构的统一出参入参封装类结构、方法及电子设备 | |
CN114025358B (zh) | 数据脱敏方法、装置、设备及存储介质 | |
CN107656728B (zh) | 一种应用程序实例的创建方法及云服务器 | |
CN114385339A (zh) | 熔断保护方法、装置、计算机设备、存储介质和程序产品 | |
CN117879976B (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 |