数据处理方法及装置转让专利

申请号 : CN201910313023.0

文献号 : CN110162981B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴云乘汪文祥张乐林力

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本说明书实施例提供了一种数据处理方法及装置,应用于数据处理服务器,该方法包括:获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理上述待处理数据所使用的目标模型的模型参数;将第一密文数据和模型参数输入至可信执行环境,以便在可信执行环境中使用该目标模型对第一密文数据进行数据处理;从可信执行环境中获取对第一密文数据进行数据处理的处理结果;其中,上述可信执行环境为设置在数据处理服务器上的可信空间。

权利要求 :

1.一种数据处理方法,应用于数据处理服务器,所述方法包括:

获取数据提供方提供的待处理数据所对应的第一密文数据,以及,检测所述数据提供方是否上传用于进行目标模型的训练的第二密文数据;若是,检测所述数据提供方是否上传所述目标模型所对应的初始化参数值;若否,从所述第二密文数据中采集样本数据,所述第二密文数据在可信执行环境中被封装为密文数据包,并基于所述样本数据在可信执行环境中确定所述初始化参数值;

基于所述初始化参数值和所述第二密文数据在所述可信执行环境中训练所述目标模型的模型参数;

将所述第一密文数据和所述模型参数输入至所述可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;

从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。

2.如权利要求1所述的方法,所述从所述可信执行环境中获取的所述处理结果为使用指定秘钥加密后的处理结果;

其中,所述指定秘钥为所述数据提供方对所述待处理数据进行加密时所使用的秘钥。

3.如权利要求1或2所述的方法,所述检测所述数据提供方是否上传用于进行所述目标模型训练的第二密文数据;

若是,则确定所述数据提供方指示进行所述目标模型的训练;否则,确定所述数据提供方未指示进行所述目标模型的训练。

4.如权利要求1或2所述的方法,所述检测所述数据提供方是否上传所述目标模型所对应的初始化参数值;

若是,则获取所述初始化参数值。

5.如权利要求4所述的方法,若所述数据提供方指示进行所述目标模型的训练;

所述方法还包括:

在所述可信执行环境中将所述第二密文数据封装为至少一个密文数据包,且每个所述密文数据包中封装有多条第二密文数据。

6.如权利要求5所述的方法,从所述数据提供方上传的用于进行所述目标模型训练的第二密文数据中采集样本数据,包括:通过主控节点确定需要在每个所述密文数据包采集的所述样本数据的条数;

通过多个数据采集节点在所述可信执行环境中从各个所述密文数据包中采集相应条数的所述第二密文数据;

通过所述主控节点收集各个所述数据采集节点所采集的所述第二密文数据,并将采集的所有的所述第二密文数据输入至所述可信执行环境,以便在所述可信执行环境中将所有的所述第二密文数据封装为密文数据包,作为所述样本数据。

7.如权利要求1所述的方法,所述将所述第一密文数据和所述模型参数输入至可信执行环境,包括:通过JNI函数调用的方式将所述第一密文数据和所述模型参数以序列化的形式输入至所述可信执行环境。

8.一种数据处理装置,应用于数据处理服务器,所述装置包括:

第一获取模块,用于获取数据提供方提供的待处理数据所对应的第一密文数据;所述第一获取模块,包括检测单元和训练单元;所述检测单元,用于检测所述数据提供方是否上传用于进行目标模型的训练的第二密文数据;所述训练单元,用于检测所述数据提供方是否上传所述目标模型所对应的初始化参数值;若否,从所述第二密文数据中采集样本数据,所述第二密文数据在可信执行环境中被封装为密文数据包,并基于所述样本数据在可信执行环境中确定所述初始化参数值;基于所述初始化参数值和所述第二密文数据在所述可信执行环境中训练所述目标模型的模型参数;

输入模块,用于将所述第一密文数据和所述模型参数输入至所述可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;

第二获取模块,用于从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。

9.如权利要求8所述的装置,所述从所述可信执行环境中获取的所述处理结果为使用指定秘钥加密后的处理结果;

其中,所述指定秘钥为所述数据提供方对所述待处理数据进行加密时所使用的秘钥。

10.如权利要求8或9所述的装置,所述训练单元,包括:

第一获取子单元,用于若所述数据提供方上传所述初始化参数值,则获取所述初始化参数值。

11.如权利要求10所述的装置,若所述数据提供方指示进行所述目标模型的训练;

所述装置,还包括:

封装模块,用于在所述可信执行环境中将所述第二密文数据封装为至少一个密文数据包,且每个所述密文数据包中封装有多条第二密文数据。

12.一种数据处理设备,应用于数据处理服务器,包括:

处理器;以及

被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:获取数据提供方提供的待处理数据所对应的第一密文数据,以及,检测所述数据提供方是否上传用于进行目标模型的训练的第二密文数据;若是,检测所述数据提供方是否上传所述目标模型所对应的初始化参数值;若否,从所述第二密文数据中采集样本数据,所述第二密文数据在可信执行环境中被封装为密文数据包,并基于所述样本数据在可信执行环境中确定所述初始化参数值;

基于所述初始化参数值和所述第二密文数据在所述可信执行环境中训练所述目标模型的模型参数;

将所述第一密文数据和所述模型参数输入至所述可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;

从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。

13.一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:获取数据提供方提供的待处理数据所对应的第一密文数据,以及,检测所述数据提供方是否上传用于进行目标模型的训练的第二密文数据;若是,检测所述数据提供方是否上传所述目标模型所对应的初始化参数值;若否,从所述第二密文数据中采集样本数据,所述第二密文数据在可信执行环境中被封装为密文数据包,并基于所述样本数据在可信执行环境中确定所述初始化参数值;

基于所述初始化参数值和所述第二密文数据在所述可信执行环境中训练所述目标模型的模型参数;

将所述第一密文数据和所述模型参数输入至所述可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在数据处理服务器上的可信空间;

从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。

说明书 :

数据处理方法及装置

技术领域

[0001] 本申请涉及数据处理技术领域,尤其涉及一种数据处理方法及装置。

背景技术

[0002] 在大数据时代,通过对数据进行挖掘、分析、处理,可以获得各种有用信息,因此数据的重要性不言而喻。每个机构都拥有属于自己的数据,为了实现数据的处理、挖掘,在某些情况下,可能需要将自身所拥有的数据上传至第三方平台进行数据的分析。
[0003] 但是,数据拥有者在使用第三方平台进行数据的分析时,会担心会将数据泄露给第三方平台的问题,并且,直接将数据传输给第三方平台进行数据分析,也不符合数据传输规范。
[0004] 因此,如何防止数据拥有者的数据泄露、提高数据安全性以及符合数据传输规范,成为当前亟需解决的技术问题。

发明内容

[0005] 本说明书实施例的目的是提供一种数据处理方法及装置,数据提供方在通过数据处理服务器进行数据处理时,对上传至数据处理服务器的数据进行加密,这样,与数据处理服务器之间的数据传输符合数据传输规范;另外,当数据处理服务器获取到数据提供方上传的第一密文数据后,将对该第一密文数据的处理分析都在该数据处理服务器上的可信执行环境中进行,可信执行环境输出最终的数据处理结果,这样可信执行环境之外无法获取到数据提供方提供的待处理数据的明文数据,从而保证了数据提供方的数据安全。
[0006] 为解决上述技术问题,本说明书实施例是这样实现的:
[0007] 本说明书实施例提供了一种数据处理方法,应用于数据处理服务器,所述方法包括:
[0008] 获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理所述待处理数据所使用的目标模型的模型参数;
[0009] 将所述第一密文数据和所述模型参数输入至可信执行环境,以便在所述可信执行环境中基于所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;
[0010] 从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。
[0011] 本说明书实施例还提供了一种数据处理装置,应用于数据处理服务器,所述装置包括:
[0012] 第一获取模块,用于获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理所述待处理数据所使用的目标模型的模型参数;
[0013] 输入模块,用于将所述第一密文数据和所述模型参数输入至可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;
[0014] 第二获取模块,用于从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。
[0015] 本说明书实施例还提供了一种数据处理设备,应用于数据处理服务器,包括:
[0016] 处理器;以及
[0017] 被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
[0018] 获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理所述待处理数据所使用的目标模型的模型参数;
[0019] 将所述第一密文数据和所述模型参数输入至可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;
[0020] 从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。
[0021] 本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:
[0022] 获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理所述待处理数据所使用的目标模型的模型参数;
[0023] 将所述第一密文数据和所述模型参数输入至可信执行环境,以便在所述可信执行环境中使用所述目标模型对所述第一密文数据进行数据处理;其中,所述可信执行环境为设置在所述数据处理服务器上的可信空间;
[0024] 从所述可信执行环境中获取对所述第一密文数据进行数据处理的处理结果。
[0025] 本实施例中的技术方案,数据提供方在通过数据处理服务器进行数据处理时,对上传至数据处理服务器的数据进行加密,这样,与数据处理服务器之间的数据传输符合数据传输规范;另外,当数据处理服务器获取到数据提供方上传的第一密文数据后,将对该第一密文数据的处理分析都在该数据处理服务器上的可信执行环境中进行,可信执行环境输出最终的数据处理结果,这样可信执行环境之外无法获取到数据提供方提供的待处理数据的明文数据,从而保证了数据提供方的数据安全。

附图说明

[0026] 为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1为本说明书实施例提供的数据处理方法的方法流程图之一;
[0028] 图2为本说明书实施例提供的数据处理方法的方法流程图之二;
[0029] 图3为本说明书实施例提供的数据处理方法的方法流程图之三;
[0030] 图4为本说明书实施例提供的数据处理方法中,训练目标模型的方法流程图;
[0031] 图5为本说明书实施例提供的数据处理方法的方法流程图之四;
[0032] 图6为本说明书实施例提供的数据处理装置的模块组成示意图;
[0033] 图7为本说明书实施例提供的数据处理设备的结构示意图。

具体实施方式

[0034] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0035] 本说明书实施例的思想在于,数据提供方对上传至数据处理服务器的数据进行加密,并且将对用户上传的加密数据的解密和处理都在设置于数据处理服务器上的可执行环境中进行,这样数据处理服务器上的可信执行环境之外的非可信执行环境无法获取到数据提供方上传的数据的明文数据,从而保障了数据提供方的数据安全性。基于此思想,本说明书实施例提供了一种数据处理方法、装置、设备及存储介质,下述将一一详细进行介绍。
[0036] 其中,在本说明书实施例中,上述数据处理服务器为第三方数据处理平台,上述可信执行环境可以为因特尔软件防护扩展指令(Intel Software Guard Extensions,SGX)在数据处理服务器上创建的可信空间,SGX则为Intel新的可信计算处理器技术,因此,数据提供方上传的数据的安全性则由Intel保障。
[0037] 具体的,本说明书实施例提供的方法应用于数据处理服务器,该数据处理服务器为第三方数据处理平台,即本说明书实施例提供的方法的执行主体为数据处理服务器,具体的,为安装在数据处理服务器上的数据处理装置。
[0038] 图1为本说明书实施例提供的数据处理方法的方法流程图之一,图1所示的方法,至少包括如下步骤:
[0039] 步骤102,获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理上述待处理数据所使用的目标模型的模型参数。
[0040] 在本说明书实施例中,为了保证数据提供方提供的数据的安全性,数据提供方在上传待处理数据时,可以先对需要上传至数据处理服务器的待处理数据进行加密,得到待处理数据所对应的第一密文数据;然后,通过终端设备将加密后得到的第一密文数据上传至数据处理服务器进行数据处理。
[0041] 当数据处理服务器接收到数据提供方上传的第一密文数据后,获取处理该待处理数据所使用的目标模型的模型参数。
[0042] 其中上述目标模型可以为分布式计算框架中的模型,例如,可以为高斯混合模型(Gaussian Mixture Model,GMM)等,上述目标模型具体为分布式计算框架中的哪个模型可以根据处理待处理数据的实际需求所确定。
[0043] 具体的,在本说明书实施例中,若是数据提供方指示不需要进行目标模型的训练,则直接从数据处理服务器获取该目标模型的模型参数即可,否则,则需要训练该目标模型。需要说明的是,上述训练目标模型的过程实际上就是训练目标模型的各个模型参数。
[0044] 步骤104,将上述第一密文数据和模型参数输入至可信执行环境,以便在可信执行环境中使用目标模型对上述第一密文数据进行数据处理;其中,上述可信执行环境为设置在数据处理服务器上的可信空间。
[0045] 在具体实施时,当接收到数据提供方发送的待处理数据时,则在数据处理服务器上创建该数据提供方所对应的可信执行环境,并将所获取到的第一密文数据和目标模型的模型参数输入至该可信执行环境中,从而在可信执行环境中对待处理数据进行解密,并使用目标模型对解密后得到的待处理数据进行数据处理。
[0046] 这样,数据提供方提供的待处理数据的解密则是在可信执行环境中执行的,可信执行环境之外的非可信执行环境无法获取到数据提供方提供的待处理数据的明文数据,而在可信执行环境中数据提供方的数据安全性可以由Intel保障,从而提高了数据提供方的数据安全性。
[0047] 另外,需要说明的是,在本说明书实施例中,对待处理数据进行数据处理的具体处理内容则是基于数据提供方的需求所设定。例如,数据提供方需要对待处理数据进行聚类分析,则在具体实施时,所采用的目标模型则为数据聚类模型,则在可信执行环境中使用数据聚类模型对数据提供方提供的待处理数据进行聚类分析,从可信执行环境所输出的数据处理结果则为数据聚类结果。
[0048] 在本说明书实施例中,由于数据提供方在上传数据时对待处理数据进行了加密处理,因此,传输至可信执行环境中的待处理数据也为加密后的第一密文数据,为了便于在可信执行环境中可以对上述第一密文数据进行解密,在可信执行环境与数据提供方之间设置有安全通道,可信执行环境中的数据处理装置可以通过该安全通过从数据提供方获取对数据进行加密的密码,从而实现对上述第一密文数据的解密和处理。
[0049] 步骤106,从可信执行环境中获取对上述第一密文数据进行数据处理的处理结果。
[0050] 具体的,当在可信执行环境中完成对数据提供方提供的数据的处理后,输出相应的处理结果。这样,除了可信执行环境之外,数据处理服务器上的非可信执行环境则无法获取到数据提供方提供的数据的明文数据,也无法获知数据提供方上传的数据所对应的解密密码,从而使得数据处理服务器上的非可信执行环境无法获取数据提供方提供的数据,保证了数据提供方提供的数据的安全性。
[0051] 其中,需要说明的是,在可信执行环境中对上述第一密文数据处理完成后,可以直接输出处理结果,另外,为了进一步保障数据提供方上传的数据的安全性,也可以对处理结果进行加密后再输出。因此,上述步骤106中,从可信执行环境中获取的处理结果可以为明文数据;可以为使用指定秘钥进行加密后的处理结果;上述指定秘钥为数据提供方对上述待处理数据进行加密时所使用的秘钥。
[0052] 由于在可信执行环境中在使用目标模型对待处理数据所对应的第一密文数据进行处理时,需要先对该第一密文数据进行解密,因此,需要通过可信执行环境与数据提供方之间的安全通道获取对待处理数据进行加密的秘钥,因此,在可信执行环境中,若是需要对待处理数据的处理结果进行加密,则可以直接使用上述秘钥对处理结果进行加密。
[0053] 在本说明书实施例中,数据处理服务器获取到的数据提供方上传的待处理数据为加密后的第一密文数据,数据处理服务器从可信执行环境中获取到的待处理数据的处理结果也为加密后的第一密文数据,且加密的秘钥并不通过数据处理服务器上的非可信执行环境进行传输,因此使得数据处理服务器上的非可信执行环境无法获取到数据提供方的任何相关数据,从而保证了数据提供方的数据安全性。
[0054] 图2为本说明书实施例提供的数据处理方法的方法流程图之二,图2所示的方法至少包括如下步骤:
[0055] 步骤202,获取数据提供方提供的待处理数据所对应的第一密文数据。
[0056] 步骤203,获取处理上述待处理数据所使用的目标模型的模型参数。
[0057] 步骤206,将上述第一密文数据和模型参数输入至可信执行环境。
[0058] 步骤208,在可信执行环境中,通过可信执行环境与数据提供方之间的数据传输通道获取上述第一密文数据的加密秘钥。
[0059] 步骤210,在可信执行环境中使用上述加密秘钥对上述第一密文数据进行解密,并使用目标模型对解密后的待处理数据进行数据处理。
[0060] 步骤212,在可信执行环境使用通过数据传输通道获取的加密秘钥对得到的处理结果进行加密。
[0061] 步骤214,从可信执行环境获取加密后的处理结果,并将该处理结果返回给数据提供方。
[0062] 当然,除此之外,数据提供方还可以使用非对称秘钥对上传的待处理数据进行加密,在该种情况下,为了便于在可信环境中对第一密文数据进行解密以及对处理结果进行加密,可以通过上述数据传输通道获取相应的密钥对。
[0063] 其中,上述步骤208中所提及到的数据传输通道则为建立在可信执行环境与数据提供方之间的安全通道。实际上可以理解为,上述数据传输通道为建立在可信执行环境与数据提供方所使用的客户端之间的安全通道。
[0064] 具体的,在本说明书实施例中,上述步骤102中,获取处理待处理数据所使用的目标模型的模型参数,具体包括:
[0065] 检测数据提供方是否指示进行目标模型的训练;若是,则训练上述目标模型的模型参数;否则,获取数据处理服务器中所存储的目标模型的模型参数。
[0066] 在具体实施时,上述检测数据提供方是否指示进行目标模型的训练,具体包括:
[0067] 检测数据提供方是否上传用于进行目标模型的训练的第二密文数据;若是,则确定数据提供方指示进行目标模型的训练;否则,确定数据提供方未指示进行目标模型的训练。
[0068] 一般的,在进行目标模型的训练时,则需要使用大量的样本数据,这些样本数据则需要数据提供方提供。所以,数据提供方在进行数据上传时,需要标注哪些数据时用于进行数据处理的,哪些数据是用于进行模型训练的。一般的,若是数据提供方未上传用于进行模型训练的数据所对应的密文数据,则可以认为数据提供方未指示进行目标模型的训练,这时,则直接使用数据处理服务器上已有的相应的数据处理模型进行数据处理,若是数据提供方上传的密文数据中包括用于进行模型训练的数据,则认为数据提供方指示进行模型的训练,这时则需要使用数据提供方上传的密文数据进行模型的训练。
[0069] 图3为本说明书实施例提供的数据处理方法的方法流程图之三,图3所示的方法至少包括如下步骤:
[0070] 步骤302,获取数据提供方上传的密文数据;其中,该密文数据中包含待处理数据所对应的第一密文数据。
[0071] 步骤304,检测所述密文数据中是否包含用于进行数据处理模型训练的第二密文数据;若是,则执行步骤306,否则,执行步骤308。
[0072] 步骤306,基于上述第二密文数据进行目标模型的训练。
[0073] 步骤308,获取数据处理服务器上所存储的用于对上述第一密文数据进行数据处理的数据处理模型。
[0074] 步骤310,将上述第一密文数据和数据处理模型的模型参数输入至数据处理服务器的可信执行环境,以便在可信执行环境中使用该数据处理模型对第一密文数据进行数据处理。
[0075] 步骤312,从可信执行环境中获取对第一密文数据进行数据处理的处理结果。
[0076] 具体的,若是需要进行目标模型的训练,则可以通过如下步骤进行目标模型的训练,需要说明的是,上述训练目标模型实际上就是训练目标模型的模型参数。因此,在本说明书是实施例中,上述步骤训练目标模型的模型参数,具体包括:
[0077] 检测数据提供方是否上传目标模型所对应的初始化参数值;若是,获取上述初始化参数值;否则,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,并基于该样本数据在可信执行环境中确定上述初始化参数值;基于上述初始化参数值和第二密文数据在可信执行环境中训练目标模型的模型参数。
[0078] 其中,上述初始化参数值则可以理解为目标模型的模型参数的初始化值,例如,若是上述目标模型为GMM模型,则其所对应的初始化参数值可以包括GMM模型的权重、均值向量和协方差矩阵。
[0079] 若是用户未上传目标模型的初始化参数值,则需要从用户上传的第二密文数据中采集样本数据,并基于该样本数据确定目标模型的初始化参数值,然后,再基于初始化参数值和第二密文数据进行目标模型的训练。
[0080] 需要说明的是,在本说明书实施例中,为了保证数据提供方上传的数据的安全性,目标模型的模型参数的训练以及样本数据的采集均是在数据处理服务器的可信执行环境中执行的。
[0081] 为便于理解,下述将以上述目标模型为GMM模型为例进行举例说明。
[0082] 一般的,在训练GMM模型的模型参数(权重、均值向量和协方差矩阵)时,需要对模型参数进行多轮迭代,直至最终得到满足设定评估指标要求的参数为止。
[0083] 需要说明的是,在具体实施时,若是上述目标模型为GMM模型,则上述设定评估指标可以为似然函数的Log值,当两次迭代的似然函数的Log值之差小于预先设定的阈值时,则认为当前所到的GMM模型趋于稳定,可以停止迭代。
[0084] 当然,若是所训练的目标模型为其他模型,如线性回归模型、逻辑回归模型等,上述设定评估指标可以为均方误差、交叉熵等,一般的,当两次迭代的均方误差或者交叉熵之间的差值小于预先设定阈值时,则可以停止迭代。此处,只是示例性列举几种模型所对应的设定评估指标要求,并不构成对本说明书实施例的限定,在具体实施时可以根据实际需求进行评估指标要求的设定。
[0085] 例如,在获取到GMM模型的初始化参数值后,将初始化参数值和第二密文数据传输至可信执行环境中,在可信执行环境中基于第二密文数据对初始化参数值进行迭代处理,并得到迭代后的参数值,将迭代后的参数值传输至数据处理服务器的非可信执行环境中,并在数据处理服务器的非可信执行环境中检测当前得到的参数值是否满足设定评估指标要求,若是满足设定评估指标要求,则将该参数值确定为GMM模型所对应的参数值;否则,将该参数值传输至可信执行环境进行下一轮迭代,直至得到满足设定评估指标要求的参数值即可,从而完成GMM模型的训练。
[0086] 图4为本说明书实施例提供的数据处理方法中,训练目标模型的方法流程图,图4所示的方法,至少包括如下步骤:
[0087] 步骤402,检测数据提供方是否上传目标模型的初始化参数值;若是,则执行步骤404;否则,执行步骤406。
[0088] 步骤404,获取数据提供方上传的初始化参数值。
[0089] 步骤406,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集用于生成初始化参数值的样本数据。
[0090] 步骤408,基于上述样本数据确定目标模型的初始化参数值。
[0091] 步骤410,将上述初始化参数值和第二密文数据传输至可信执行环境进行模型参数值的迭代。
[0092] 步骤412,在可信执行环境中完成一轮模型参数值的迭代后,将迭代后得到的模型参数值输出至数据处理服务器的非可信执行环境。
[0093] 步骤414,在数据处理服务器的非可信执行环境检测得到的模型参数值是否满足设定评估指标的要求;若是,则执行步骤416,否则执行步骤412。
[0094] 步骤416,将该模型参数值作为所训练的目标模型的模型参数值。
[0095] 另外,在本说明书实施例中,在进行目标模型的参数的训练时,需要不断的将每轮迭代的模型参数值输出至数据处理服务器上的非可信执行环境,为了防止根据每轮迭代的模型参数值反推出数据提供方提供的原始数据,在本说明书实施例中,若是数据提供方指示进行目标模型的训练,则可以将进行模型训练的第二密文数据封装为密文数据包。因此,本说明书实施例提供的方法还包括:
[0096] 在可信执行环境中将第二密文数据封装为至少一个密文数据包,且每个密文数据包中封装有多条第二密文数据。
[0097] 在本说明书实施例中,在将第二密文数据封装为密文数据包后,每个密文数据包中包含有多条数据,这样在进行模型参数的迭代时,则以密文数据包为单位进行模型参数值的迭代,这样,每次都是基于多条数据迭代出模型参数值,使得无法根据模型参数值反推出具体的原始数据。
[0098] 为便于理解,下述将举例进行说明此部分技术方案。
[0099] 例如,在一种具体实施方式中,数据提供方需要上传的进行模型训练的数据为100条,在具体实施时,数据提供方可以使用秘钥分别对每条数据进行加密,这样,得到100条第二密文数据,然后,数据处理服务器在将上述100条第二密文数据传输至可信执行环境中后,在可信执行环境中分别对上述100条第二密文数据进行解密,从而得到对应的100条明文数据,将上述100条密文数据划分成10组,使用同一个秘钥对将每组中的10条明文数据进行加密,得到对应的一个密文数据包。
[0100] 当然,此处所列举的数据条数、每个密文数据包中封装的密文数据的条数、以及需要封装的密文数据包的个数均为示例性说明,并不构成对本说明书实施例的限定。
[0101] 具体的,在本说明书实施例中,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,具体包括如下步骤:
[0102] 通过主控节点确定需要在每个密文数据包采集的样本数据的条数;通过多个数据采集节点在可信执行环境中从各个密文数据包中采集相应条数的第二密文数据;通过主控界面收集各个数据采集节点所采集的第二密文数据,并将采集的第二密文数据输入至可信执行环境,以便在可信执行环境中将所有的第二密文数据封装为密文数据包,作为样本数据。
[0103] 在具体实施时,上述主控节点可以记为Master节点,Master节点可以根据第二密文数据所对应的密文数据包的个数,以及所需要的样本数据的条数,确定在每个密文数据包中需要采集的样本数据的条数,并将数据采集任务分配给各个数据采集节点(Worker节点),Worker节点将各自负责进行数据采集的密文数据包输入至可信执行环境,在可信执行环境中对各个密文数据包进行解密,得到该密文数据包中所包含的所有的明文数据,并从每个密文数据包中采集相应条数的明文数据,在可信执行环境中分别对每条明文数据进行加密,即各Worker节点从各个密文数据包中所采集到的样本数据扔为加密后的第二密文数据,各Worker节点将采集的第二密文数据汇总至Master节点,由Master节点将所有的第二密文数据输入至可信执行环境中,并在可信执行环境中将所采集的所有的第二密文数据封装为密文数据包。
[0104] 具体的,上述将第二密文数据封装为的密文数据包的个数可以根据实际需求进行设置,本说明书实施例并不对上述密文数据包的具体个数进行限定。
[0105] 另外,需要说明的是,在本书明书实施例中,上述将第一密文数据和模型参数输入至可信执行环境,具体包括:
[0106] 通过JNI函数调用的方式将第一密文数据和模型参数以序列化的形式输入至可信执行环境。
[0107] 当然,在本说明书实施例中,除了第一密文数据和模型参数通过JIN函数调用的方式传输至可信执行环境,其他需要传输至可信执行环境中的数据均采用JIN函数调用的方式。
[0108] 在具体实施时,在通过JIN函数将数据传输至可信执行环境中时,可以先定义JNI函数调用传输至可信执行环境中的数据的FlatBuffers格式,使用FlatBuffers命令生成对应的Java和C++文件,然后在Scala层创建一个可信执行环境(可以称为Enclave),之后在Scala层对需要传输至可信执行环境的数据进行FlatBuffers序列化,并通过JNI函数调用传递到可信执行环境中,在将相应的数据传输至可信执行环境中后,则在可信执行环境中对写入的数据进行FlatBuffers反序列化。
[0109] 具体的,在将可信执行环境中的数据传输至数据处理服务器的非可信执行环境时,可以对需要传输的数据进行FlatBuffers序列化,然后传输至Scala层;如果传输的数据为密文数据包,在Scala层可以直接使用;否则对输出的数据进行FlatBuffers反序列化,得到Scala层可计算的数据结构。
[0110] 图5为本说明书实施例提供的数据处理方法的方法流程图之四,图5所示的方法,至少包括如下步骤:
[0111] 步骤502,获取数据提供方上传的密文数据;其中,该密文数据包括待处理数据所对应的第一密文数据。
[0112] 步骤504,检测上述密文数据中是否包含用于进行目标模型训练的第二密文数据;若是,则执行步骤506;否则执行步骤514。
[0113] 步骤506,检测数据提供方是否上传目标模型所对应的初始化参数值;若是,则执行步骤508,否则,执行步骤510。
[0114] 步骤508,获取上述初始化参数值。
[0115] 步骤510,从第二密文数据中采集样本数据,并基于该样本数据在可信执行环境中确定初始化参数值。
[0116] 步骤512,基于初始化参数值和第二密文数据在可信执行环境中进行目标模型的训练。
[0117] 步骤514,获取数据处理服务器所存储的上述目标模型的模型参数。
[0118] 步骤516,将第一密文数据和目标模型的模型参数输入至可信执行环境,以便在可信执行环境中使用目标模型对第一密文数据进行数据处理。
[0119] 步骤518,从可信执行环境获取对第一密文数据进行数据处理的处理结果。
[0120] 本说明书实施例提供的数据处理方法,数据提供方在通过数据处理服务器进行数据处理时,对上传至数据处理服务器的数据进行加密,这样,与数据处理服务器之间的数据传输符合数据传输规范;另外,当数据处理服务器获取到数据提供方上传的第一密文数据后,将对该第一密文数据的处理分析都在该数据处理服务器上的可信执行环境中进行,可信执行环境输出最终的数据处理结果,这样可信执行环境之外无法获取到数据提供方提供的待处理数据的明文数据,从而保证了数据提供方的数据安全。
[0121] 对应于本说明书实施例提供的数据处理方法,基于相同的思路,本说明书实施例提供了一种数据处理装置,应用于数据处理服务器,用于执行本说明书实施例提供的数据处理方法,图6为本说明书实施例提供的数据处理装置的模块组成示意图,图6所示的装置,至少包括:
[0122] 第一获取模块602,用于获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理待处理数据所使用的目标模型的模型参数;
[0123] 输入模块604,用于将第一密文数据和模型参数输入至可信执行环境,以便在可信执行环境中使用目标模型对第一密文数据进行数据处理;其中,可信执行环境为设置在数据处理服务器上的可信空间;
[0124] 第二获取模块606,用于从可信执行环境中获取对第一密文数据进行数据处理的处理结果。
[0125] 可选的,从可信执行环境中获取的处理结果为使用指定秘钥加密后的处理结果;
[0126] 其中,指定秘钥为数据提供方对待处理数据进行加密时所使用的秘钥。
[0127] 可选的,上述第一获取模块602,包括:
[0128] 检测单元,用于检测数据提供方是否指示进行目标模型的训练;
[0129] 训练单元,用于若数据提供方指示进行目标模型的训练,则训练目标模型的模型参数;
[0130] 获取单元,用于若数据提供方未指示进行目标模型的训练,则获取数据处理服务器中所存储的目标模型的模型参数。
[0131] 可选的,上述检测单元,包括:
[0132] 第二检测子单元,用于检测数据提供方是否上传用于进行目标模型训练的第二密文数据;
[0133] 确定子单元,用于若数据提供方上传用于进行目标模型训练的第二密文数据,则确定数据提供方指示进行目标模型的训练;若数据提供方未上传用于进行目标模型训练的第二密文数据,则确定数据提供方未指示进行目标模型的训练。
[0134] 可选的,上述训练单元,包括:
[0135] 第一检测子单元,用于检测数据提供方是否上传目标模型所对应的初始化参数值;
[0136] 第一获取子单元,用于若数据提供方上传上述初始化参数值,则获取初始化参数值;
[0137] 第一确定子单元,用于若数据提供方未上传上述初始化参数值,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,并基于样本数据在可信执行环境中确定初始化参数值;
[0138] 训练子单元,用于基于初始化参数值和第二密文数据在可信执行环境中训练目标模型的模型参数。
[0139] 可选的,若数据提供方指示进行目标模型的训练;
[0140] 装置,还包括:封装模块;
[0141] 在可信执行环境中将第二密文数据封装为至少一个密文数据包,且每个密文数据包中封装有多条第二密文数据。
[0142] 可选的,上述第一确定子单元,具体用于:
[0143] 通过主控节点确定需要在每个密文数据包采集的样本数据的条数;
[0144] 通过多个数据采集节点在可信执行环境中从各个密文数据包中采集相应条数的第二密文数据;
[0145] 通过主控节点收集各个数据采集节点所采集的第二密文数据,并将采集的所有的第二密文数据输入至可信执行环境,以便在可信执行环境中将所有的第二密文数据封装为密文数据包,作为样本数据。
[0146] 可选的,上述输入模块604,包括:
[0147] 通过JNI函数调用的方式将第一密文数据和模型参数以序列化的形式输入至可信执行环境。
[0148] 本说明书实施例的数据处理装置还可执行图1-图5中数据处理装置执行的方法,并实现数据处理装置在图1-图5所示实施例的功能,在此不再赘述。
[0149] 本说明书实施例提供的数据处理装置,数据提供方在通过数据处理服务器进行数据处理时,对上传至数据处理服务器的数据进行加密,这样,与数据处理服务器之间的数据传输符合数据传输规范;另外,当数据处理服务器获取到数据提供方上传的第一密文数据后,将对该第一密文数据的处理分析都在该数据处理服务器上的可信执行环境中进行,可信执行环境输出最终的数据处理结果,这样可信执行环境之外无法获取到数据提供方提供的待处理数据的明文数据,从而保证了数据提供方的数据安全。
[0150] 进一步地,基于上述图1至图5所示的方法,本说明书实施例还提供了一种数据处理设备,如图7所示。
[0151] 数据处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器701和存储器702,存储器702中可以存储有一个或一个以上存储应用程序或数据。其中,存储器702可以是短暂存储或持久存储。存储在存储器702的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对数据处理设备中的一系列计算机可执行指令信息。更进一步地,处理器701可以设置为与存储器702通信,在数据处理设备上执行存储器702中的一系列计算机可执行指令信息。数据处理设备还可以包括一个或一个以上电源703,一个或一个以上有线或无线网络接口704,一个或一个以上输入输出接口705,一个或一个以上键盘706等。
[0152] 在一个具体的实施例中,数据处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据处理设备中的一系列计算机可执行指令信息,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令信息:
[0153] 获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理待处理数据所使用的目标模型的模型参数;
[0154] 将第一密文数据和模型参数输入至可信执行环境,以便在可信执行环境中使用目标模型对第一密文数据进行数据处理;其中,可信执行环境为设置在数据处理服务器上的可信空间;
[0155] 从可信执行环境中获取对第一密文数据进行数据处理的处理结果。
[0156] 可选的,计算机可执行指令信息在被执行时,从可信执行环境中获取的处理结果为使用指定秘钥加密后的处理结果;
[0157] 其中,指定秘钥为数据提供方对待处理数据进行加密时所使用的秘钥。
[0158] 可选的,计算机可执行指令信息在被执行时,获取处理待处理数据所使用的目标模型的模型参数,包括:
[0159] 检测数据提供方是否指示进行目标模型的训练;
[0160] 若是,则训练目标模型的模型参数;否则,获取数据处理服务器中所存储的目标模型的模型参数。
[0161] 可选的,计算机可执行指令信息在被执行时,检测数据提供方是否指示进行目标模型的训练,包括:
[0162] 检测数据提供方是否上传用于进行目标模型训练的第二密文数据;
[0163] 若是,则确定数据提供方指示进行目标模型的训练;否则,确定数据提供方未指示进行目标模型的训练。
[0164] 可选的,计算机可执行指令信息在被执行时,训练目标模型的模型参数,包括:
[0165] 检测数据提供方是否上传目标模型所对应的初始化参数值;
[0166] 若是,则获取初始化参数值;否则,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,并基于样本数据在可信执行环境中确定初始化参数值;
[0167] 基于初始化参数值和第二密文数据在可信执行环境中训练目标模型的模型参数。
[0168] 可选的,计算机可执行指令信息在被执行时,若数据提供方指示进行目标模型的训练;
[0169] 还可执行如下步骤:
[0170] 在可信执行环境中将第二密文数据封装为至少一个密文数据包,且每个密文数据包中封装有多条第二密文数据。
[0171] 可选的,计算机可执行指令信息在被执行时,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,包括:
[0172] 通过主控节点确定需要在每个密文数据包采集的样本数据的条数;
[0173] 通过多个数据采集节点在可信执行环境中从各个密文数据包中采集相应条数的第二密文数据;
[0174] 通过主控节点收集各个数据采集节点所采集的第二密文数据,并将采集的所有的第二密文数据输入至可信执行环境,以便在可信执行环境中将所有的第二密文数据封装为密文数据包,作为样本数据。
[0175] 可选的,计算机可执行指令信息在被执行时,将第一密文数据和模型参数输入至可信执行环境,包括:
[0176] 通过JNI函数调用的方式将第一密文数据和模型参数以序列化的形式输入至可信执行环境。
[0177] 本说明书实施例提供的数据处理设备,数据提供方在通过数据处理服务器进行数据处理时,对上传至数据处理服务器的数据进行加密,这样,与数据处理服务器之间的数据传输符合数据传输规范;另外,当数据处理服务器获取到数据提供方上传的第一密文数据后,将对该第一密文数据的处理分析都在该数据处理服务器上的可信执行环境中进行,可信执行环境输出最终的数据处理结果,这样可信执行环境之外无法获取到数据提供方提供的待处理数据的明文数据,从而保证了数据提供方的数据安全。
[0178] 进一步地,基于上述图1至图5所示的方法,本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
[0179] 获取数据提供方提供的待处理数据所对应的第一密文数据,以及,获取处理待处理数据所使用的目标模型的模型参数;
[0180] 将第一密文数据和模型参数输入至可信执行环境,以便在可信执行环境中使用目标模型对第一密文数据进行数据处理;其中,可信执行环境为设置在数据处理服务器上的可信空间;
[0181] 从可信执行环境中获取对第一密文数据进行数据处理的处理结果。
[0182] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,从可信执行环境中获取的处理结果为使用指定秘钥加密后的处理结果;
[0183] 其中,指定秘钥为数据提供方对待处理数据进行加密时所使用的秘钥。
[0184] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,获取处理待处理数据所使用的目标模型的模型参数,包括:
[0185] 检测数据提供方是否指示进行目标模型的训练;
[0186] 若是,则训练目标模型的模型参数;否则,获取数据处理服务器中所存储的目标模型的模型参数。
[0187] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,检测数据提供方是否指示进行目标模型的训练,包括:
[0188] 检测数据提供方是否上传用于进行目标模型训练的第二密文数据;
[0189] 若是,则确定数据提供方指示进行目标模型的训练;否则,确定数据提供方未指示进行目标模型的训练。
[0190] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,训练目标模型的模型参数,包括:
[0191] 检测数据提供方是否上传目标模型所对应的初始化参数值;
[0192] 若是,则获取初始化参数值;否则,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,并基于样本数据在可信执行环境中确定初始化参数值;
[0193] 基于初始化参数值和第二密文数据在可信执行环境中训练目标模型的模型参数。
[0194] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,若数据提供方指示进行目标模型的训练;
[0195] 还可执行如下步骤:
[0196] 在可信执行环境中将第二密文数据封装为至少一个密文数据包,且每个密文数据包中封装有多条第二密文数据。
[0197] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,从数据提供方上传的用于进行目标模型训练的第二密文数据中采集样本数据,包括:
[0198] 通过主控节点确定需要在每个密文数据包采集的样本数据的条个数;
[0199] 通过多个数据采集节点在可信执行环境中从各个密文数据包中采集相应条数的第二密文数据;
[0200] 通过主控节点收集各个数据采集节点所采集的第二密文数据,并将采集的所有的第二密文数据输入至可信执行环境,以便在可信执行环境中将所有的第二密文数据封装为密文数据包,作为样本数据。
[0201] 可选的,该存储介质存储的计算机可执行指令信息在被处理器执行时,将第一密文数据和模型参数输入至可信执行环境,包括:
[0202] 通过JNI函数调用的方式将第一密文数据和模型参数以序列化的形式输入至可信执行环境。
[0203] 本说明书实施例提供的存储介质存储的计算机可执行指令信息在被处理器执行时,数据提供方在通过数据处理服务器进行数据处理时,对上传至数据处理服务器的数据进行加密,这样,与数据处理服务器之间的数据传输符合数据传输规范;另外,当数据处理服务器获取到数据提供方上传的第一密文数据后,将对该第一密文数据的处理分析都在该数据处理服务器上的可信执行环境中进行,可信执行环境输出最终的数据处理结果,这样可信执行环境之外无法获取到数据提供方提供的待处理数据的明文数据,从而保证了数据提供方的数据安全。
[0204] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0205] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0206] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0207] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0208] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0209] 本申请是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令信息实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令信息到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令信息产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0210] 这些计算机程序指令信息也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令信息产生包括指令信息装置的制造品,该指令信息装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0211] 这些计算机程序指令信息也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令信息提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0212] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0213] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0214] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令信息、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0215] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0216] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0217] 本申请可以在由计算机执行的计算机可执行指令信息的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0218] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0219] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。