一种基于区块链的数据处理方法及设备
技术领域
本申请涉及互联网信息处理技术以及区块链技术领域,尤其涉及一种基于区块链的数据处理方法及设备。
背景技术
区块链技术也称为分布式账本技术,是一种分布式互联网数据库技术,其特点是去中心化、公开透明、不可篡改、可信任。基于区块链技术构建的网络可以称之为区块链网络,在该区块链网络中包含网络节点(也可以称之为区块链节点)。
具体地,区块链节点在接收到交易数据时,确定该交易数据的摘要,并利用设定算法对该摘要进行加密,得到该交易数据的数字签名,进而通过广播的方式将该交易数据以及该交易数据的数字签名发送给其他区块链节点。在共识阶段,其他区块链节点对接收到的数字签名进行解密,得到所接收到的数字签名对应的交易数据,进而判断是否与接收到的交易数据一致,以实现对该交易数据的共识处理。
然而,在实际应用中,加密计算的对象是序列化信息,也就是说,区块链节点在确定交易数据的摘要时,需要将接收到的交易数据转换成为序列化数据,基于该序列化数据得到该交易数据的摘要。
但是,由于区块链网络中的区块链节点可以支持不同的操作***,也可以支持不同的编辑语言,那么对于同一个交易务数据,发送该交易数据的区块链节点在对该交易数据执行加密操作的过程中得到的摘要,与接收该交易数据的区块链节点在对接收到的数字签名执行解密操作的过程中得到的摘要可能因为操作***和/或编译语言的不同而出现不同,这样将导致交易数据共识不通过的可能性增加,降低了交易数据的处理效率。
发明内容
有鉴于此,本申请实施例提供了一种基于区块链的数据处理方法及设备,用于解决现有技术中存在的交易数据处理效率低的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种基于区块链的数据处理方法,包括:
区块链节点对于获取到的交易数据,确定所述交易数据对应的交易类型;
所述区块链节点根据交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则;
所述区块链节点从所述交易数据中提取与所述处理策略中包含的数据属性对应的属性值,并利用所述处理策略中包含的转换规则,将提取的所述属性值转化成格式化信息;
所述区块链节点根据所述格式化信息对所述交易数据进行处理。
本申请实施例还提供一种基于区块链的数据处理方法,包括:
区块链节点接收交易数据和所述交易数据对应的格式化信息;
所述区块链节点根据所述交易数据对应的交易类型以及交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则;
所述区块链节点根据所述处理策略中包含的转换规则,将所述格式化信息转化成属性值,并确定所述属性值对应的数据属性;
所述区块链节点根据所述数据属性的属性值和所述交易数据中包含的所述数据属性的属性值,对接收到的所述交易数据进行验证。
本申请实施例还提供一种基于区块链的数据处理设备,包括:
确定单元,对于获取到的交易数据,确定所述交易数据对应的交易类型;
处理单元,根据交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则;
从所述交易数据中提取与所述处理策略中包含的数据属性对应的属性值,并利用所述处理策略中包含的转换规则,将提取的所述属性值转化成格式化信息;并根据所述格式化信息对所述交易数据进行处理。
本申请实施例还提供一种基于区块链的数据处理设备,包括:
接收单元,接收交易数据和所述交易数据对应的格式化信息;
确定单元,根据所述交易数据对应的交易类型以及交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则;
处理单元,根据所述处理策略中包含的转换规则,将所述格式化信息转化成属性值,并确定所述属性值对应的数据属性;并根据所述数据属性的属性值和所述交易数据中包含的所述数据属性的属性值,对接收到的所述交易数据进行验证。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例通过配置交易类型与处理策略之间的预设关系,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则,区块链节点对于获取到的交易数据,确定所述交易数据对应的交易类型;根据所述预设关系,确定与所述交易数据对应的处理策略;从所述交易数据中提取所述处理策略中包含的数据属性,并根据所述处理策略中包含的转换规则,将提取得到的所述数据属性的属性值转化成格式化信息;根据所述格式化信息对所述交易数据进行共识处理。这样,采用统一的转换方式,能够保证不同的区块链节点准确地将转换后的信息还原得到原始数据,有效避免了因为操作平台和/或编辑语言之间的差异使得发送者在加密过程中得到的摘要与接收者在解密过程中得到的摘要出现差异的问题,有效提升了交易数据的共识效率,进而改善了交易数据的处理效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图2为本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图3为本申请实施例提供的一种基于区块链的数据处理设备的结构示意图;
图4为本申请实施例提供的一种基于区块链的数据处理设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。所述方法可以如下所示。本申请实施例的执行主体包括但不限于区块链节点。
需要说明的是,交易数据在区块链网络中一般需要经过受理、共识、存储三个处理阶段。区块链节点在受理该业务数据时,对该业务数据进行处理,通常对业务数据的处理是得到该业务数据的数字签名。这样,对于该业务数据的非受理区块链节点,在接收到受理区块链节点广播的该业务数据时,通过验签方式(所谓验签可以理解为接收者在接收到发送者发送的业务数据和数字签名时,使用公钥对接收到的数字签名进行验证,通过该验证操作确定接收到的业务数据为发送者发送),以验证接收到的该业务数据在网络传输过程中是否被篡改。
在得到该业务数据的数字签名的过程中,首先,需要对该业务数据进行序列化。所谓序列化是指将该业务数据转换成为一串字符串(例如:该字符串可以采用二进制形式表示),通过反序列化方式能够将该字符串转换成为该业务数据。其次,通过对序列化结果进行计算得到该业务数据对应的数字签名。
但是,在区块链网络中包含多个区块链节点,不同的区块链节点可以支持不同的操作***,也可以支持不同的编辑语言,也就是说,针对同一个交易数据,由于操作***和/或编辑语言的不同,对该交易数据进行序列化得到的序列化结果可能不同,例如:受理该业务数据的区块链节点与非受理该业务数据的区块链节点支持的操作***不同,那么受理该业务数据的区块链节点按照上述方式对该业务数据进行序列化处理,并得到其的数字签名。此时,受理该业务数据的区块链节点将该业务数据和数字签名发送给非受理该业务数据的区块链节点。由于受理该业务数据的区块链节点与非受理该业务数据的区块链节点支持的操作***不同,所以非受理该业务数据的区块链节点将数字签名还原得到的序列化结果与受理该业务数据的区块链节点按照上述方式对该业务数据进行序列化处理地得到的序列化结果不同,进而确定得到的业务数据与接收到的业务数据不同,这将影响后续对该业务数据的处理,因此,提出本申请的技术方案,采用统一的转换方式,能够保证不同的区块链节点准确地将转换后的信息还原得到原始数据,有效避免了因为操作平台和/或编辑语言之间的差异使得发送者在加密过程中得到的摘要与接收者在解密过程中得到的摘要出现差异的问题,有效提升了交易数据的共识效率,进而改善了交易数据的处理效率。
步骤101:区块链节点对于获取到的交易数据,确定所述交易数据对应的交易类型。
在本申请实施例中,区块链节点可以作为交易数据的受理节点,从外部设备或者应用客户端接收交易数据,在接收到该交易数据时,可以根据产生该交易数据的业务,确定该交易数据对应的交易类型,这里的交易类型可以理解为业务类型;区块链节点也可以作为交易数据的非受理节点,进而通过广播的方式从该交易数据的受理节点处获取到该交易数据,同样的,在接收到该交易数据时,可以根据产生该交易数据的业务,确定该交易数据对应的交易类型,这里的交易类型可以理解为业务类型。
步骤102:所述区块链节点根据交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略。
其中,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则。这里的转换规则可以理解为将交易数据转换成为格式化信息的规则。
在本申请实施例中,可以预先在区块链网络的各区块链节点中配置交易类型与处理策略之间的预设关系,以便于对接收到的交易数据采用统一的处理策略。这里所记载的统一的处理策略并不限于指同一种处理策略,还可以基于不同交易类型给出不同的处理策略,但是对于处理该交易数据的发送者和接收者能够采用同一种处理策略进行处理,也就意味着这里的“统一”能够避免因为操作平台和/或编辑语言之间的差异使得发送者在加密过程中得到的摘要与接收者在解密过程中得到的摘要出现差异的问题。
本申请实施例中所记载的处理策略中包含但不限于以下内容:
1、针对不同交易类型,确定每一种交易类型被执行转换的数据属性;
2、转换规则。利用该转换规则能够唯一确定被执行转换的数据属性转换后对应的格式化信息。这里的格式化信息又可以称之为序列化数据。
除此之外,还可以包含数据属性的排列顺序,即在得到业务数据的不同的数据属性对应的属性值的格式化信息后,确定格式化信息按照数据属性的排列顺序进行排序,排序结果可以视为业务数据的格式化信息。例如:对于业务数据中包含的数据属性1、数据属性2和数据属性3,处理策略中包含的排列顺序可以为123;也可以为321;还可以为231或者213。这里数据属性的排列顺序不同,意味着得到的业务数据的格式化信息将不同,进而后续处理的结果也不同(例如,计算得到的摘要不同)。
下面描述如何确定交易类型与处理策略之间的预设关系。
针对各交易类型,分别执行以下操作:
首先,确定该交易类型的交易特征,从该交易类型的交易数据中选择能够表征该交易特征的至少一个数据属性。
针对不同的交易类型,其用于表征该交易类型对应的交易特征的数据属性也不同。这里的数据属性包括但不限于哈希值、公钥、时间戳、交易内容等等。
其次,根据选择的所述至少一个数据属性和为该数据属性配置的转换规则,生成该交易类型对应的处理策略,并建立所述交易类型与所述处理策略之间的映射关系。
需要说明的是,针对不同的交易类型,为每一个交易类型配置转换规则,这里的转换规则可以适用于该交易类型的交易数据中包含的不同的数据属性,也可以为该交易类型的交易数据中包含的不同的数据属性配置不同的转换规则,在本申请实施例中不做具体限定。
在本申请实施例中,所述区块链节点在确定出交易数据的交易类型之后,可以基于已有的交易类型与处理策略之间的预设关系,确定出该交易数据对应的处理策略。
步骤103:所述区块链节点从所述交易数据中提取与所述处理策略中包含的数据属性对应的属性值,并利用所述处理策略中包含的转换规则,将提取的所述属性值转化成格式化信息。
在本申请实施例中,首先,所述区块链节点根据处理策略中包含的用于转换的数据属性,从获取到的交易数据中提取该数据属性对应的属性值。
假设处理策略中包含的数据属性个数为1个,那么从获取到的交易数据中提取该数据属性对应的属性值。
假设处理策略中包含的数据属性个数为多个,那么依次从获取到的交易数据中提取每一个数据属性对应的属性值。
其次,所述区块链节点利用所述处理策略中包含的转换规则,将提取的所述属性值转化成格式化信息。
具体地,所述区块链节点根据所述处理策略中包含的转换算法,对提取的所述属性值进行运算,得到所述属性值对应的字符串。
例如:将提取得到的数据属性的属性值转换成为二进制数据。假设提取的数据属性为哈希值,那么将该哈希值对应的数值转换成为二进制数据。
需要说明的是,假设处理策略中包含的数据属性为多个,可以每提取一个数据属性对应的属性值时将该属性值进行转换,也可以将需要转换的数据属性的属性值一次性提取出来,分别对不同的数据属性对应的属性值进行转换,这里对于处理的先后顺序不做限定。
较优地,在本申请实施例中,所述区块链节点在根据所述格式化信息对所述交易数据进行共识处理之前,所述方法还包括:
若所述处理策略中包含的数据属性的个数大于1,那么所述区块链节点在得到提取出的各属性值对应的格式化信息后,根据所述处理策略中包含的数据属性的排序规则,将得到的各所述格式化信息进行排序。
假设处理策略中包含的数据属性为数据属性1、数据属性3和数据属性5,若得到的数据属性1的属性值对应的格式化信息为1000、得到的数据属性3的属性值对应的格式化信息为1001、得到的数据属性5的属性值对应的格式化信息为1101,例如:包含的数据属性的排序规则为153,那么,按照所述处理策略中包含的数据属性的排序规则,得到排序后的格式化信息序列为:100011011001;再例如:包含的数据属性的排序规则为531,那么,按照所述处理策略中包含的数据属性的排序规则,得到排序后的格式化信息序列为:110110011000。
步骤104:所述区块链节点根据所述格式化信息对所述交易数据进行处理。
在本申请实施例中,所述区块链节点在得到格式化信息之后,需要判断是否需要对交易数据执行加密操作,若不需要,则广播所述格式化信息和所述交易数据,使区块链为网络中的其他区块链节点根据所述格式化信息对所述交易数据进行共识处理;若需要,则对所述格式化信息进行加密得到加密结果,并将所述加密结果和所述交易数据发送给区块链网络中的其他区块链节点,以对所述交易数据进行共识处理。
通过本申请实施例提供的技术方案,配置交易类型与处理策略之间的预设关系,所述处理策略中包含用于执行转换的数据属性以及所述数据属性对应的转换规则,区块链节点对于获取到的交易数据,确定所述交易数据对应的交易类型;根据所述预设关系,确定与所述交易数据对应的处理策略;从所述交易数据中提取所述处理策略中包含的数据属性,并根据所述处理策略中包含的转换规则,将提取得到的所述数据属性的属性值转化成格式化信息;根据所述格式化信息对所述交易数据进行共识处理。这样,采用统一的转换方式,能够保证不同的区块链节点准确地将转换后的信息还原得到原始数据,有效避免了因为操作平台和/或编辑语言之间的差异使得发送者在加密过程中得到的摘要与接收者在解密过程中得到的摘要出现差异的问题,有效提升了交易数据的共识效率,进而改善了交易数据的处理效率。
图2为本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。所述方法可以如下所示。本申请实施例的执行主体为区块链网络中的非受理节点。
步骤201:区块链节点接收交易数据和所述交易数据对应的格式化信息。
在本申请实施例中,区块链节点作为非受理节点,通过广播方式接收受理节点广播的数据包,该数据包中包含交易数据以及该交易数据对应的格式化信息。
这里的格式化信息由受理节点通过图1中所示的数据处理方式得到,具体处理方式参见上述记载的内容,这里不再一一赘述。
需要说明的是,这里的格式化信息还可以加密操作后得到的摘要。
步骤202:所述区块链节点根据所述交易数据对应的交易类型以及交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略。
其中,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则。
在本申请实施例中,可以预先在区块链网络的各区块链节点中配置交易类型与处理策略之间的预设关系,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则。
具体实现方式参见上述实施例中所记载的步骤102,这里不再一一赘述。
还可以所述区块链节点在接收交易数据时,接收受理所述交易数据的区块链节点发送的交易类型与处理策略之间的预设关系。
或者,所述区块链节点在接收交易数据时,接收受理所述交易数据的区块链节点发送的该交易数据对应的处理策略。
步骤203:所述区块链节点根据所述处理策略中包含的转换规则,将所述格式化信息转化成属性值,并确定所述属性值对应的数据属性。
在本申请实施例中,所述区块链节点可以根据所述处理策略中包含的转换规则,对接收到的格式化信息进行逆处理,得到属性值,进而确定该属性值对应的数据属性。这里通过这种转换规则实现对格式化信息的还原,由于采用相同的转换方法,所以能够保证格式化信息还原的准确性。
步骤204:所述区块链节点根据所述数据属性的属性值和所述交易数据中包含的所述数据属性的属性值,对接收到的所述交易数据进行验证。
在本申请实施例中,若所述区块链节点转换得到的属性值与所述交易数据中包含的该数据属性的属性值相同,则说明区块链接收到的交易数据可信,确定验证通过;若所述区块链节点转换得到的属性值与所述交易数据中包含的该数据属性的属性值不相同,则说明区块链接收到的交易数据存在不真实,确定验证不通过。
图3为本申请实施例提供的一种基于区块链的数据处理设备的结构示意图。所述数据处理设备包括:确定单元31和处理单元32,其中:
确定单元31,对于获取到的交易数据,确定所述交易数据对应的交易类型;
处理单元32,根据交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则;
从所述交易数据中提取与所述处理策略中包含的数据属性对应的属性值,并利用所述处理策略中包含的转换规则,将提取的所述属性值转化成格式化信息;并根据所述格式化信息对所述交易数据进行处理。
在本申请的另一个实施例中,所述数据处理设备还包括:排序单元33,其中:
所述排序单元33,在根据所述格式化信息对所述交易数据进行处理之前,若所述处理策略中包含的数据属性的个数大于1,那么所述区块链节点在得到提取出的各属性值对应的格式化信息后,根据所述处理策略中包含的数据属性的排序规则,将得到的各所述格式化信息进行排序。
在本申请的另一个实施例中,所述处理单元32确定交易类型与处理策略之间的预设关系,包括:
针对各交易类型,分别执行以下操作:
确定该交易类型的交易特征,从该交易类型的交易数据中选择能够表征该交易特征的至少一个数据属性;
根据选择的所述至少一个数据属性和为所述数据属性配置的转换规则,生成该交易类型对应的处理策略,并建立所述交易类型与所述处理策略之间的映射关系。
在本申请的另一个实施例中,所述处理单元32根据所述格式化信息对所述交易数据进行处理,包括:
广播所述格式化信息和所述交易数据,使区块链网络中的其他区块链节点根据所述格式化信息对所述交易数据进行共识处理。
在本申请的另一个实施例中,所述处理单元32根据所述格式化信息对所述交易数据进行处理,包括:
对所述格式化信息进行加密得到加密结果,并将所述加密结果和所述交易数据发送给区块链网络中的其他区块链节点,以对所述交易数据进行共识处理。
在本申请的另一个实施例中,所述处理单元32根据所述处理策略中包含的转换规则,将提取的所述属性值转化成格式化信息,包括:
根据所述处理策略中包含的转换算法,对提取的所述属性值进行运算,得到所述属性值对应的字符串。
需要说明的是,本申请实施例提供的数据处理设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做具体限定。通过本申请实施例提供的数据处理设备采用统一的转换方式,能够保证不同的区块链节点准确地将转换后的信息还原得到原始数据,有效避免了因为操作平台和/或编辑语言之间的差异使得发送者在加密过程中得到的摘要与接收者在解密过程中得到的摘要出现差异的问题,有效提升了交易数据的共识效率,进而改善了交易数据的处理效率。
图4为本申请实施例提供的一种基于区块链的数据处理设备的结构示意图。所述数据处理设备包括:接收单元41、确定单元42和处理单元43,其中:
接收单元41,接收交易数据和所述交易数据对应的格式化信息;
确定单元42,根据所述交易数据对应的交易类型以及交易类型与处理策略之间的预设关系,确定与所述交易数据对应的处理策略,所述处理策略中包含用于转换的数据属性以及所述数据属性对应的转换规则;
处理单元43,根据所述处理策略中包含的转换规则,将所述格式化信息转化成属性值,并确定所述属性值对应的数据属性;并根据所述数据属性的属性值和所述交易数据中包含的所述数据属性的属性值,对接收到的所述交易数据进行验证。
在本申请的另一个实施例中,所述接收单元41在接收交易数据时,接收受理所述交易数据的区块链节点发送的交易类型与处理策略之间的预设关系。
需要说明的是,本申请实施例提供的数据处理设备可以通过软件方式实现,也可以通过硬件方式实现,这里不做具体限定。通过本申请实施例提供的数据处理设采用统一的转换方式,能够保证不同的区块链节点准确地将转换后的信息还原得到原始数据,有效避免了因为操作平台和/或编辑语言之间的差异使得发送者在加密过程中得到的摘要与接收者在解密过程中得到的摘要出现差异的问题,有效提升了交易数据的共识效率,进而改善了交易数据的处理效率。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。