发明内容
本发明的主要目的在于提供了一种缓存数据校验方法、装置、设备及存储介质,旨在解决现有技术不能有效的检测数据读取过程中出现的数据不一致的技术问题。
为实现上述目的,本发明提供了一种缓存数据校验方法,所述方法包括以下步骤:
在接收到数据下载广播时,根据所述数据下载广播从预设缓存中下载对应的缓存数据;
对所述缓存数据进行序列化,获得当前数据序列;
对所述当前数据序列进行加密,获得当前序列号;
获取所述缓存数据对应的基准序列号,根据所述当前序列号和所述基准序列号对所述缓存数据进行一致性校验。
优选地,所述在接收到数据下载广播时,根据所述数据下载广播从预设缓存中下载对应的缓存数据的步骤之前,所述方法还包括:
获取待缓存数据,对所述待缓存数据进行序列化,获得原始数据序列;
对所述原始数据序列进行加密,获得基准序列号;
对所述待缓存数据和所述基准序列号进行关联,以获得关联后的缓存数据,并将关联后的所述缓存数据存放至预设缓存。
优选地,所述获取待缓存数据,对所述待缓存数据进行序列化,获得原始数据序列的步骤,包括:
获取待缓存数据,对所述待缓存数据进行应用场景分析,获取目标应用场景信息;
根据所述目标应用场景信息在预先构建的映射关系中查找对应的原始序列化方式,所述映射关系中包含应用场景信息和序列化方式之间的对应关系;
根据所述原始序列化方式对所述待缓存数据进行序列化,获得原始数据序列。
优选地,所述对所述缓存数据进行序列化,获得当前数据序列的步骤,包括:
获取所述缓存数据的原始数据序列;
读取所述原始数据序列中的序列化协议字段;
根据所述序列化协议字段中包含的协议类型和协议版本确定所述缓存数据对应的原始序列化方式;
根据所述原始序列化方式对所述缓存数据进行序列化,获得当前数据序列。
优选地,所述获取所述缓存数据对应的基准序列号,根据所述当前序列号和所述基准序列号对所述缓存数据进行一致性校验的步骤之后,包括:
在校验未通过时,将所述缓存数据与所述预设缓存中存放的原始缓存数据进行差异比对;
根据比对结果确定差异数据,并将所述差异数据发送至目标终端进行展示。
优选地,所述获取所述缓存数据对应的基准序列号,根据所述当前序列号和所述基准序列号对所述缓存数据进行一致性校验的步骤之后,所述方法还包括:
在校验通过时,将所述缓存数据更新至本地数据库,并向分布式系统反馈更新完成信息;
在接收到所述分布式系统基于所述更新完成信息反馈的文件清理指令时,根据所述文件清理指令确定待清理数据标识;
根据所述待清理数据标识查找对应的待清理数据,并对所述待清理数据进行清理。
优选地,所述根据所述待清理数据标识查找对应的待清理数据,并对所述待清理数据进行清理的步骤,包括:
根据所述待清理数据标识查找对应的待清理数据;
获取所述待清理数据中包含的待清理文件,并统计所述待清理文件的文件数量;
在所述文件数量超过预设阈值时,采用异步操作调用不同的线程将所述待清理数据从所述本地数据库中移动至所述分布式系统对应的区块链中进行存储。
此外,为实现上述目的,本发明还提出一种缓存数据校验装置,所述缓存数据校验装置包括:
数据获取模块,用于在接收到数据下载广播时,根据所述数据下载广播从预设缓存中下载对应的缓存数据;
序列化模块,用于对所述缓存数据进行序列化,获得当前数据序列;
数据加密模块,用于对所述当前数据序列进行加密,获得当前序列号;
数据校验模块,用于获取所述缓存数据对应的基准序列号,根据所述当前序列号和所述基准序列号对所述缓存数据进行一致性校验。
此外,为实现上述目的,本发明还提出一种缓存数据校验设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的缓存数据校验程序,所述缓存数据校验程序配置为实现如上文所述的缓存数据校验方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有缓存数据校验程序,所述缓存数据校验程序被处理器执行时实现如上文所述的缓存数据校验方法的步骤。
本发明在接收到数据下载广播时,根据数据下载广播从预设缓存中下载对应的缓存数据,然后对缓存数据进行序列化,获得当前数据序列;再对当前数据序列进行加密,获得当前序列号;最后获取缓存数据对应的基准序列号,根据当前序列号和基准序列号对缓存数据进行一致性校验,由于本发明通过对缓存数据序列化,然后对序列化后的数据序列进行加密获得当前序列号,再将当前序列号与数据写入时生成的基准序列号进行比对,从而能够根据比对结果快速准确地确定缓存数据在写入和读取过程中是否发生了数据篡改,有利于及时进行问题排查。此外,本发明还涉及区块链技术,缓存数据可存储于区块链中。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的缓存数据校验设备结构示意图。
如图1所示,该缓存数据校验设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对缓存数据校验设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、数据存储模块、网络通信模块、用户接口模块以及缓存数据校验程序。
在图1所示的缓存数据校验设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明缓存数据校验设备中的处理器1001、存储器1005可以设置在缓存数据校验设备中,所述缓存数据校验设备通过处理器1001调用存储器1005中存储的缓存数据校验程序,并执行本发明实施例提供的缓存数据校验方法。
本发明实施例提供了一种缓存数据校验方法,参照图2,图2为本发明缓存数据校验方法第一实施例的流程示意图。
本实施例中,所述缓存数据校验方法包括以下步骤:
步骤S10:在接收到数据下载广播时,根据所述数据下载广播从预设缓存中下载对应的缓存数据;
需要说明的是,本实施例提供的方法可应用于分布式缓存数据存储场景,也可应用于其他的缓存场景,本实施例方法的执行主体可以是分布式系统或者分布式系统中包含的各服务实例,所述服务实例可以理解为一种服务应用或节点服务器。
可理解的是,所述数据下载广播可以是分布式系统发送的一种任务通知,该任务通知用于告知系统中的各服务实例,待缓存信息已在分布式系统中存储完成,系统中的服务实例需要对其进行下载。所述预设缓存可以是分布式系统对应的数据库。所述缓存数据可以是预先存放在所述预设缓存中的数据,结合本实施例的应用场景,该缓存数据可以是用户录入到分布式系统中的业务系统的配置数据,用户可在分布式系统提供的配置界面中输入这些配置数据然后上传分布式系统。
在具体实现中,分布式系统中的服务实例在接收到数据下载广播时,可根据数据下载广播中携带的信息从预设缓存中下载对应的缓存数据。
步骤S20:对所述缓存数据进行序列化,获得当前数据序列;
应理解的是,所谓序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。目前,常用的序列化方式包括java原生序列化、Hessian序列化和Json序列化。本实施例中具体序列化方式的选用需要根据缓存数据的具体应用场景来决定,例如,Java序列化保留了对象类的元数据(如类、成员变量、继承类信息等)以及对象数据等,兼容性最好,但不支持跨语言,而且性能一般,若需要缓存数据具有更好的兼容性,则可选用该序列化方式。又例如,Hessian序列化不依赖外部描述文件或接口定义,采用一个字节表示常用基础类型,极大缩短了二进制流,支持脚本语言,比Java原生序列化高效,若需要降低序列化后数据的存储空间占用或提高序列化效率,则可选用该方式。而Json序列化是将数据对象转换为Json字符串,该序列化方式在序列化过程中抛弃了类型信息,相比前两种方式,Json可读性比较好,方便调试,若仅考虑缓存数据的可读性,也可选用该序列化方式。
需要说明的是,本步骤中,为了保证同一缓存数据一致性校验的准确性,同一缓存数据在做读取一致性校验时所采用的序列化方式和在做写入一致性校验时所采用的序列化方式需相同。
步骤S30:对所述当前数据序列进行加密,获得当前序列号;
需要说明的是,本实施例中对当前数据序列进行加密的方式,可以是通过MD5算法或哈希算法等消息摘要算法对所述当前数据序列进行加密,即进行散列值计算,然后将获得的散列值作为所述当前序列号。
在具体实现中,服务实例在获取到当前数据序列后,即可采用消息摘要算法对当前数据序列进行加密,以生成当前数据序列对应的当前序列号。例如,当前数据序列是二进制数据序列“0101010100010110111”,采用SHA1算法计算出的序列号是“6cf3a370576aa021f7b30efe5d99b9e2fa48a8df”,那么计算的这个序列号就是该当前数据序列唯一对应的序列号。
步骤S40:获取所述缓存数据对应的基准序列号,根据所述当前序列号和所述基准序列号对所述缓存数据进行一致性校验。
需要说明的是,所述缓存数据对应的基准序列号可以是该缓存数据被写入至分布式系统对应的预设缓存时,对该缓存数据进行写入一致性校验时所生成的基准序列号,其生成方式与上述步骤S20和步骤S30类似,此处不再赘述。
应理解的是,相同的数据经过相同的消息摘要算法加密后所获得的密文(散列值,即本实施例中的序列号)一定是相同的,若不相同,则表明前后被加密的数据并不相同,数据发生了变更。
因此,本实施例中服务实例可在计算出缓存数据的当前序列号后,即可获取该缓存数据对应的基准序列号,然后将当前序列号和基准序列号进行比对,即对缓存数据进行一致性校验,若二者相同,则一致性校验通过,反之则不通过。
进一步地,若服务实例检测到校验未通过,则表明缓存数据存在异常,此时为了快速进行问题排查,服务实例可将当前获得的缓存数据与分布式系统预设缓存中存放的原始缓存数据进行差异比对,然后根据比对结果来确定存在差异的数据,再根据该差异数据生成相应的告警提示发送至开发人员对应的用户终端进行展示,以提示开发人员尽快检查。具体的,本实施例服务实例在校验未通过时,将所述缓存数据与所述预设缓存中存放的原始缓存数据进行差异比对;根据比对结果确定差异数据,并将所述差异数据发送至目标终端进行展示。
需要说明的是,本实施例中上述差异比对的方式可以是由服务实例和分布式系统分别将各自拥有的缓存数据发送至预设文件版本对比工具,例如Beyond Compare中进行数据比对,以快速获得差异数据。
进一步地,若服务实例检测到校验通过,则表明缓存数据不存在异常,此时服务实例可将所述缓存数据更新至本地数据库,并向分布式系统反馈更新完成信息;然后在接收到所述分布式系统基于所述更新完成信息反馈的文件清理指令时,根据所述文件清理指令确定待清理数据标识;再根据所述待清理数据标识查找对应的待清理数据,并对所述待清理数据进行清理。
为了避免缓存过大,本实施例中每个服务实例均反馈缓存数据及其基准序列号均已更新在本地数据库后,分布式系统或系统中的核心节点服务器即下发启用新的缓存数据,各服务实例开始使用新的数据版本提供应用服务,在所有服务实例反馈使用新缓存数据后,分布式系统下发清理旧的缓存数据版本的文件清理指令,各服务实例根据文件清理指令查找对应的待清理数据,并对待清理数据进行清理,以确保只缓存对应1-2版本的缓存数据。
进一步地,考虑到实际应用中,待清理的缓存数据可能数量大,文件多,为了加快文件清理效率,本实施例服务实例还将根据待清理数据标识查找对应的待清理数据;然后获取所述待清理数据中包含的待清理文件,并统计所述待清理文件的文件数量;在所述文件数量超过预设阈值时,采用异步操作调用不同的线程将所述待清理数据从所述本地数据库中移动至所述分布式系统对应的区块链中进行存储。
应理解的是,所述异步操作,即并行处理机制,本实施例采用异步操作调用服务实例中的不同线程对数据进行迁移,能够较快的清理待清理的数据,使得所在的分布式系统能够较好的适应高吞吐高并发的场景。
当然,进一步地,为了保证待清理数据的可追溯性以及数据安全,本实施例中,被删除的待清理数据可以采用迁移的方式移动至所述分布式系统对应的区块链中进行存储。
本实施例在接收到数据下载广播时,根据数据下载广播从预设缓存中下载对应的缓存数据,然后对缓存数据进行序列化,获得当前数据序列;再对当前数据序列进行加密,获得当前序列号;最后获取缓存数据对应的基准序列号,根据当前序列号和基准序列号对缓存数据进行一致性校验,由于本实施例通过对缓存数据序列化,然后对序列化后的数据序列进行加密获得当前序列号,再将当前序列号与数据写入时生成的基准序列号进行比对,从而能够根据比对结果快速准确地确定缓存数据在写入和读取过程中是否发生了数据篡改,有利于及时进行问题排查。此外,本发明还涉及区块链技术,被删除的待清理数据可存储于区块链中。
参考图3,图3为本发明缓存数据校验方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,所述方法还包括:
步骤S01:获取待缓存数据,对所述待缓存数据进行序列化,获得原始数据序列;
需要说明的是,本实施例提供的缓存数据校验方法主要涉及数据缓存至分布式系统的预设缓存时所执行操作。
应理解的是,不同的待缓存数据对应的应用场景可能不同,考虑到序列化后数据的使用需求,本实施例在对待缓存数据进行序列化时,将针对待缓存数据的所属应用场景选取相应的序列化方式,使得序列化后的缓存数据并不只用来进行数据读取的一致性校验,而是还能应用于其他数据需求场景,例如对缓存数据进行压缩存储或数据传输时,存储或传输序列化数据将节省磁盘空间和网络流量的消耗等。
在具体实现中,可先获取待缓存数据,对所述待缓存数据进行应用场景分析,获取目标应用场景信息,然后根据所述目标应用场景信息在预先构建的映射关系中查找对应的原始序列化方式,再根据所述原始序列化方式对所述待缓存数据进行序列化,获得原始数据序列。
其中,所述映射关系中包含应用场景信息和序列化方式之间的对应关系;所属应用场景分析,即根据数据的用途或类型来确定数据可能被应用的场景,例如一些场景下,需要序列化后的数据的数据大小要尽可能小,或者是需要序列化后的数据的兼容性好,又或是需要序列化后的数据的可读性要好,方便调试等。不同的应用场景会导致序列化的方式不同,因此本实施例在获取到缓存数据时,先对待缓存数据进行应用场景分析,获取目标应用场景信息,然后根据目标应用场景信息在预先构建的映射关系中查找对应的原始序列化方式,再根据原始序列化方式进行数据的序列化。
本实施例通过建立应用场景信息和序列化方式之间的对应关系,即所述映射关系,能够提高序列化方式的确定效率,进而提高数据序列化效率。同时,本实施例中上述映射关系是可以动态维护的,即可根据实际需求对映射关系中的数据进行修改,实现序列化方式的动态调整。
步骤S02:对所述原始数据序列进行加密,获得基准序列号;
可理解的是,实际情况下,数据序列相比该数据序列对应的序列号的字节数要大很多,且序列号相比数据序列具有唯一性,本实施例将对原始数据序列进行加密,获得基准序列号。
进一步地,为保证数据一致性校验的准确性,防止待缓存数据被篡改,本实施例中,具体加密方式可以是采用MD5算法或哈希算法等消息摘要算法来对原始序列数据进行加密,然后将加密获得的数据作为所述基准序列号。
步骤S03:对所述待缓存数据和所述基准序列号进行关联,以获得关联后的缓存数据,并将关联后的所述缓存数据存放至预设缓存。
应理解的是,当待缓存数据发生变更时,其对应的数据序列也会发生变更,此时对数据序列进行加密后获得的序列号也将发生变更,因此通过待缓存数据的序列号来对其进行标记(即对二者进行关联),可以便于后续的写入一致性校验和读取一致性校验的校验结果的可靠性。
在实际应用中,可采用键值对的方式将待缓存数据和基准序列号进行关联,例如可将基准序列号作为“键值对key:value”中的键对象“key”,将待缓存数据作为值对象“value”,然后将获得的键值对和待缓存数据打包成关联后的缓存数据存放至预设缓存中。
当然,本实施例方法的执行主体也可以是分布式系统中的核心服务实例或核心节点服务器。
本实施例通过获取待缓存数据,对待缓存数据进行序列化,获得原始数据序列;然后对原始数据序列进行加密,获得基准序列号;再对待缓存数据和基准序列号进行关联,以获得关联后的缓存数据,并将关联后的缓存数据存放至预设缓存,保证了后续数据读取一致性校验的顺利执行,有利于防止缓存数据发生篡改,而无法快速排查问题所在的情形。
参考图4,图4为本发明缓存数据校验方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S20包括:
步骤S201:获取所述缓存数据的原始数据序列;
应理解的是,所述原始数据序列,即缓存数据在写入预设缓存时所生成的数据序列,即上述步骤S01中生成的数据序列,该数据序列可存放在预设缓存中由服务实例获取。
步骤S202:读取所述原始数据序列中的序列化协议字段;
应理解的是,通常情况下,数据序列中都会包含一些字段(即所述序列化协议字段),用来表明数据序列化时所采用的序列化方式,一方面是为了便于在进行读取一致性校验时,数据校验方能够继续通过相同的序列化方式完成读取一致性校验,从而避免前后(即写入和读取时)序列化方式不同,导致生成的序列号不一致的情形,另一方面也便于数据序列在用来进行数据恢复时,能够确定具体的反序列化方式。
步骤S203:根据所述序列化协议字段中包含的协议类型和协议版本确定所述缓存数据对应的原始序列化方式;
可理解的是,通常情况下,序列化协议字段中包含有序列化所采用的协议的协议类型和协议版本,通过这些协议类型和协议版本即可准确地确定出数据序列是采用哪种方式来进行的序列化。
下面以java原生序列化为例对本步骤进行说明。通常情况下java原生序列化生成的target文件需要用二进制流的方式打开,从而获得序列数据,该序列数据中包含文件头、类描述、属性描述、父类信息描述和对象属性的实际值等信息。其中,文件头,也就是上述序列化协议字段,用于声明文件是一个对象序列化文件,同时记录了序列化协议和协议版本,因此实际应用中,可序列化协议字段中包含的协议类型和协议版本准确地确定出缓存数据对应的原始序列化方式。
步骤S204:根据所述原始序列化方式对所述缓存数据进行序列化,获得当前数据序列。
应理解的是,本实施例中,服务实例在确定出所读取的缓存数据的原始序列化方式后,即可按原始序列化方式对缓存数据进行序列化,获得数据序列,然后进行后续的读取一致性校验。
本实施例通过获取缓存数据的原始数据序列,然后读取原始数据序列中的序列化协议字段,再根据序列化协议字段中包含的协议类型和协议版本确定缓存数据对应的原始序列化方式,最后根据原始序列化方式对缓存数据进行序列化,获得数据序列,实现了数据读取一致性校验的顺利进行,也提高了校验效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有缓存数据校验程序,所述缓存数据校验程序被处理器执行时实现如上文所述的缓存数据校验方法的步骤。
参照图5,图5为本发明缓存数据校验装置第一实施例的结构框图。
如图5所示,本发明实施例提出的缓存数据校验装置包括:
数据获取模块501,用于在接收到数据下载广播时,根据所述数据下载广播从预设缓存中下载对应的缓存数据;
序列化模块502,用于对所述缓存数据进行序列化,获得当前数据序列;
数据加密模块503,用于对所述当前数据序列进行加密,获得当前序列号;
数据校验模块504,用于获取所述缓存数据对应的基准序列号,根据所述当前序列号和所述基准序列号对所述缓存数据进行一致性校验。
本实施例在接收到数据下载广播时,根据数据下载广播从预设缓存中下载对应的缓存数据,然后对缓存数据进行序列化,获得当前数据序列;再对当前数据序列进行加密,获得当前序列号;最后获取缓存数据对应的基准序列号,根据当前序列号和基准序列号对缓存数据进行一致性校验,由于本实施例通过对缓存数据序列化,然后对序列化后的数据序列进行加密获得当前序列号,再将当前序列号与数据写入时生成的基准序列号进行比对,从而能够根据比对结果快速准确地确定缓存数据在写入和读取过程中是否发生了数据篡改,有利于及时进行问题排查。
基于本发明上述缓存数据校验装置第一实施例,提出本发明缓存数据校验装置的其他实施例。
作为一种实施方式,所述序列化模块502,还用于获取待缓存数据,对所述待缓存数据进行序列化,获得原始数据序列;对所述原始数据序列进行加密,获得基准序列号;对所述待缓存数据和所述基准序列号进行关联,以获得关联后的缓存数据,并将关联后的所述缓存数据存放至预设缓存。
作为一种实施方式,所述序列化模块502,还用于获取待缓存数据,对所述待缓存数据进行应用场景分析,获取目标应用场景信息;根据所述目标应用场景信息在预先构建的映射关系中查找对应的原始序列化方式,所述映射关系中包含应用场景信息和序列化方式之间的对应关系;根据所述原始序列化方式对所述待缓存数据进行序列化,获得原始数据序列。
作为一种实施方式,所述序列化模块502,还用于获取所述缓存数据的原始数据序列;读取所述原始数据序列中的序列化协议字段;根据所述序列化协议字段中包含的协议类型和协议版本确定所述缓存数据对应的原始序列化方式;根据所述原始序列化方式对所述缓存数据进行序列化,获得当前数据序列。
作为一种实施方式,所述数据校验模块504,还用于在校验未通过时,将所述缓存数据与所述预设缓存中存放的原始缓存数据进行差异比对;根据比对结果确定差异数据,并将所述差异数据发送至目标终端进行展示。
作为一种实施方式,所述数据校验模块504,还用于在校验通过时,将所述缓存数据更新至本地数据库,并向分布式系统反馈更新完成信息;在接收到所述分布式系统基于所述更新完成信息反馈的文件清理指令时,根据所述文件清理指令确定待清理数据标识;根据所述待清理数据标识查找对应的待清理数据,并对所述待清理数据进行清理。
作为一种实施方式,所述数据校验模块504,还用于根据所述待清理数据标识查找对应的待清理数据;获取所述待清理数据中包含的待清理文件,并统计所述待清理文件的文件数量;在所述文件数量超过预设阈值时,采用异步操作调用不同的线程将所述待清理数据从所述本地数据库中移动至所述分布式系统对应的区块链中进行存储。
本发明缓存数据校验装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
另外,本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。