一种数据加载处理方法及装置与流程

文档序号:13421539阅读:166来源:国知局
一种数据加载处理方法及装置与流程

本申请涉及数据处理技术领域,特别涉及一种数据加载处理方法及装置。



背景技术:

近几年,随着大数据处理技术的快速发展,在很多业务场景下需要对大量用户数据进行实时处理。在一个典型的应用场景中,对于电商网络平台而言,经常在重要促销活动日出现用户数据暴涨的情况,对此,电商网络平台需要快速处理暴涨的用户数据,以实时满足用户的需求。在处理用户数据的过程中,各平台往往需要根据用户日志数据从后台数据库中加载所述用户日志数据的关联数据,所述关联数据例如可以包括用户的历史行为数据、用户个人信息资料等。因此,如何快速地获取海量用户日志数据的关联数据是大数据处理过程中亟需解决的问题。

由于数据库中关联数据的数据量较大、数据关系复杂,往往通过多个计算节点并行加载多个用户日志数据的关联数据。将所述关联数据加载至所述计算节点之后,在需要所述关联数据时,可以直接从所述计算节点中获取相关数据。现有技术中,通过多个计算节点加载数据的方式主要包括两种,一种是全量加载方式,即将所有的关联数据加载至所有的计算节点中。但是全量加载方式通常使用在关联数据量较少的情况,一旦数据量较多时,往往造成计算节点内存溢出的情况,无法满足大数据应用场景。第二种方式是最近最少使用加载方式,即在计算节点上缓存部分常用关联数据,该方式虽然可以加载多个用户的关联数据,但是这种方式的处理效率有限,若计算节点缺少部分关联数据时,还需要重新加载,另外对计算节点的存储压力也是相当大。另外,上述两种方式无法实现对计算节点的水平扩展,即无法预先确定各个计算节点能够加载的数据。

因此,现有技术中亟需一种能够快速、实时加载用户关联数据的方式。



技术实现要素:

本申请实施例的目的在于提供一种数据加载处理方法及装置,可以快速、实时地加载大规模用户数据的关联数据。

本申请实施例提供的一种数据加载处理方法及装置具体是这样实现的:

一种数据加载处理方法,所述方法包括:

获取多个用户数据;

计算各个用户数据的散列值;

根据所述散列值,将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。

一种数据记载处理装置,所述装置包括:

用户数据获取单元,用于获取多个用户数据;

散列值计算单元,用于计算各个用户数据的散列值;

数据划分单元,用于根据所述散列值,将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。

一种数据记载处理装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:

获取多个用户数据;

计算各个用户数据的散列值;

根据所述散列值,将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。

本申请提供的数据加载处理方法及装置,可以在对大量用户数据的关联数据进行加载的过程中,计算各个用户数据的散列值,并将具有相同散列值的用户数据划分至同一个计算节点进行加载处理。一方面,根据用户数据的散列值对用户数据进行划分,由于散列值具有随机性,因此,可以将海量用户数据均衡地分配至各个计算节点,发挥各个计算节点的作用,实时、高效地完成对相关数据的加载处理。另一方面,所述计算节点还可以从后台数据库中获取与所述散列值对应的关联数据,提前将关联数据加载至计算节点中,这样,在需要所述用户数据的关联数据时,可以直接从相应的计算节点中读取,提升数据处理的效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的数据加载处理方法的一种实施例的方法流程图;

图2是本申请提供的用户数数据划分方法的一种实施例的方法流程图;

图3是本申请提供的关联数据获取方法的一种实施例的方法流程图;

图4是本申请提供的一种应用场景的示意图;

图5是本申请提供的数据加载处理装置的一种实施例的模块结构示意图;

图6是本申请提供的数据加载处理装置的另一种实施例的模块结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

下面结合附图对本申请所述的数据加载处理方法进行详细的说明。图1是本申请提供的数据加载处理方法的一种实施例的方法流程示意图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的数据加载处理过程中,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

具体的本申请提供的一种数据加载处理方法的一种实施例如图1所示,所述方法可以包括:

s11:获取多个用户数据。

本实施例中,所述用户数据可以包括各种平台上所产生的用户日志等数据,所述用户日志诸如用户搜索数据、用户交易数据、用户浏览数据等多种用户操作数据。在实际的应用场景中,在对所述用户数据进行处理时,往往还需要获取更多的与所述用户数据相关联的数据。例如,在一个典型的场景中,用户a在某个购物平台上点击浏览某商品,对此,该购物平台需要获取用户a关于此类商品更多的历史操作行为,以向用户a推荐合适的商品。用户a的历史操作行为往往存储于该购物平台的后台数据库中,例如,所有用户的数据可以以维表的形式存储于后台数据库中。可以发现,对于大型平台来说,后台数据库中的数据往往达到千万甚至数亿级别,即使是单个用户的数据也是不小的数据量。若在用户数据暴涨的时期,通过从后台数据库中逐条获取各个用户的相关数据,则数据获取效率较低,无法满足对海量数据的实时关联。

s12:计算各个用户数据的散列值。

本实施例中,可以分别计算各个用户数据的散列值。在对所述多个用户数据进行处理时,可以通过多个计算节点并行处理,所述计算节点可以为单个服务器,也可以为多个服务器组成的服务器集群,本申请在此不做限制。本实施例中的所述计算节点用于加载所述用户数据的关联数据,所述关联数据即为与所述用户数据相关联的用户历史数据、用户个人资料等数据。将所述用户数据的关联数据加载至所述计算节点之后,在需要所述关联数据时,即可以直接从所述计算节点读取。

既然由多个计算节点对所述用户数据进行加载处理,这样会导致一些问题,即如何相对均衡地将海量用户数据分配至各个计算节点进行处理。由于所述多个用户数据的实时性和并发性,往往无法及时地对用户数据进行排序之后再分配至各个计算节点。这样,很容易导致各个计算节点分配到的用户数据不均衡,部分计算节点的用户数据较大,进而导致部分计算节点的加载压力较大,处理效率较低,整体上无法实时响应大数据请求。

本实施例中,可以对所述用户数据进行散列计算,获取各个用户数据的散列值。本实施例中,在计算所述用户数据的散列值的过程中,可以对所述用户数据的所有数据或者部分数据进行散列计算。一般地,所述用户数据具有固定的数据格式,典型的用户数据是由若干个字段所组成的字符串,每个字段包含一种用户信息,例如所述用户数据可以为{用户id+数据类型+操作时刻+关联商品+…}这样的数据格式。在本申请的一个实施例中,在对所述用户数据进行散列计算时,可以对所述用户数据中的唯一标识信息进行计算,具体地,所述计算各个用户数据的散列值包括:

ss1:从所述用户数据中获取用户的唯一标识信息;

ss2:计算所述唯一标识信息的散列值,将所述唯一标识信息的散列值作为所述用户数据的散列值。

本实施例中,所述唯一标识信息可以包括用户的id信息、电话信息、身份证信息、地址信息等能够唯一标识用户数据的信息,所述唯一标识信息当然还可以包括以上信息的任意组合。将用户唯一标识信息的散列值作为所述用户数据的散列值可以提升用户数据的个性化,计算得到的散列值也更加具有随机性,因此,利于所述散列值可以将用户数据均衡地分配至各个计算节点进行处理。

在本申请的一个实施例中,所述唯一标识信息的散列值可以包括下述中的一种:

所述唯一标识信息的哈希值;从所述唯一标识信息哈希值中截取的部分序列。

本实施例中,所述散列值的计算方式可以包括哈希算法,利用哈希算法可以计算得到哈希值,所述哈希算法诸如消息摘要2(md2)、消息摘要4(md4)、消息摘要5(md5)、安全散列算法-1(sha-1)等。哈希算法可以将任意长度的数据转换成固定长度的二进制数据,例如128位或者256位的二进制编码。本实施例中,可以将所述唯一标识信息的哈希值作为所述唯一标识信息的散列值。在其他实施例中,还可以将从所述唯一标识信息哈希值中截取的部分序列作为所述唯一标识信息的散列值。在一个示例中,可以将从二进制哈希值中截取的前16位二进制序列作为所述唯一标识信息的散列值。当然,还可以将所述从所述哈希值任意部分截取的序列作为所述唯一标识信息的散列值,本申请在此不做限制。

当然,在其他实施例中,还可以计算整个用户数据的哈希值,并将所述哈希值的全部或者部分序列作为所述用户数据的散列值。一般地,所述用户数据以用户id值为开头,因此,将整个用户数据的哈希值开始的部分序列作为所述用户数据的散列值也可以个性化地表征所述用户数据,提升散列值的随机性。

s13:根据所述散列值,将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。

本实施例中,可以将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。在一个具体的示例中,某平台共设置若干个计算节点对所述用户数据的关联数据进行加载处理。本示例中,在计算得到各个用户数据的散列值之后,可以根据所述散列值的数值大小将所述用户数据划分至对应的计算节点进行数据加载处理。例如,将所述用户数据所对应用户id值的哈希值的前16位二进制序列作为所述用户数据的散列值,则所述散列值的数值范围为0000-ffff,此时,可以将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理,例如,可以将散列值为0000、0101、1c01的用户数据划分至计算节点1进行数据记载处理,将散列值为0010、b111、0ef1的用户数据划分至计算节点2进行数据加载处理,依次类推。这样,可以将用户数据进行随机分组处理,均衡地将海量用户数据分配至各个计算节点进行数据加载处理。

如图2所示,所述将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理可以包括:

s21:获取与所述多个用户数据相关联的多个关联数据;

s22:分别获取各个关联数据的散列值,将散列值与计算节点所处理的用户数据散列值相匹配的关联数据加载至所述计算节点中。

本实施例中,所述多个关联数据例如可以存储于各个平台的后台数据库,所述关联数据可以以数据维表的数据格式进行存储,所述数据维表可以由多个事实表相互关联而成,所述事实表例如可以包括用户资料、交易维表、时间维表、地域维表等。因此,根据所述用户数据中的用户id、用户电话等唯一标识信息,可以从所述关联数据中获取用户所在城市、用户历史操作行为等多种信息。本实施例中,还可以分别获取各个关联数据的散列值,例如可以利用同样的方式计算各个关联数据所对应用户id的哈希值。在获取到各个关联数据的散列值之后,可以将散列值与计算节点所处理的用户数据散列值相匹配的关联数据加载至所述计算节点中。这样,可以以较高的处理效率提前将所述用户数据的关联数据加载至各个计算节点中,当需要所述用户数据的关联数据时,可以直接从指定的计算节点中读取即可,而不需要所述计算节点再实时从后台数据库中搜索、加载。

具体的,所述用户数据散列值与所述关联数据散列值相匹配可以包括下述中的至少一种:

所述用户数据散列值与所述关联数据散列值相同;

所述关联数据散列值与所述用户数据散列值满足预设算法对应关系。

其中,所述关联数据散列值与所述用户数据散列值相同可以包括所述关联数据散列值与所述用户数据散列值的内容相同。当确定所述关联数据散列值与所述用户数据散列值相同时,可以认为关联数据散列值与用户数据散列值相匹配。或者,所述关联数据散列值与所述用户数据散列值满足预定算法对应关系,例如可以对关联数据散列值的二进制数码进行加权运算,得到加权运算后的关联数据散列值,当确定加权运算后的关联数据散列值与用户数据散列值相同时,可以认为与用户数据散列值相匹配。当然,用户数据散列值与关联数据散列值的匹配方式不限于上述举例,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。

本实施例中,如图3所示,在将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理之后,所述方法还可以包括:

s31:当需要用户数据的关联数据时,计算所述用户数据的散列值;

s32:根据所述散列值确定处理所述散列值所对应用户数据的计算节点;

s33:从所述计算节点中获取所述用户数据的关联数据。

由上述可知,当确定计算节点所处理用户数据的散列值之后,可以根据所述散列值将所述用户数据的所有关联数据加载至对应的计算节点中。这样,当计算得到某个用户数据的散列值,并已知该散列值所对应用户数据的关联数据已经加载至计算节点时,则可以直接从所述计算节点中读取所需要的关联数据。具体地,本实施例中,在需要所述用户数据的关联数据时,可以计算所述用户数据的散列值。在获取所述散列值之后,可以根据所述散列值确定处理所述散列值所对应的计算节点。在确定所述计算节点时,可以从所述计算节点中获取所述用户数据的关联数据。

下面通过一个具体的应用场景说明本申请实施例方法。某网购平台举办盛大优惠购物节期间,在购物节前夕以及当日,由于用户的浏览、收藏、购买、付款等操作行为次数的剧增,该网购平台相对于非购物节时期产生大规模的用户数据。网购平台在获取这些用户数据之后,需要对这些用户数据进行处理。例如,为了能够预测出用户的偏好,需要根据用户的浏览、收藏等行为数据从网购平台的后台数据库中获取用户的历史行为数据,以进行数据学习,预测出用户可能偏好的商品,并将预测出的商品推荐给用户。对此,所述网购平台需要设置一些计算节点以从后台数据库中加载用户数据的关联数据。如图4所示,将计算节点b0-bn作为处理数据加载的计算节点。利用上述本申请实施例方式,可以计算各个用户数据的哈希值,由于用户数据中包含用户的唯一标识信息,如用户id、用户电话等信息。由于用户数据的数据量极大,所述网购平台也可以设置多个计算节点用户读取所述用户数据,并计算所述用户数据的哈希值。如图4所示,可以设置a0-am作为计算所述用户数据的计算节点。u0、u1、…、u2005、…可以表征所述用户数据中的唯一标识信息,用于唯一地标识用户。

本场景中,可以计算所述用户数据所对应用户id的哈希值,并截取所述哈希值的前16位二进制序列作为所述用户数据的散列值。如图4所示,在计算节点a0处理的用户数据中,计算得到用户u0的哈希值的前16位二进制序列为0000,u8的哈希值的前16位二进制序列为0010,u120的哈希值的前16位二进制序列为0100。由于预先设置计算节点b0所处理的哈希值16位二进制序列范围为0000-0111,而用户u0、u8、u120哈希值的前16位二进制序列均落入计算节点b0所处理序列的范围,因此,可以将用户u0、u8、u120的用户数据划分至计算节点b0进行数据加载处理。计算节点b0在进行数据加载的过程中,可以从数据库中获取u0、u8、u120所对应的关联数据。如图4所示,数据库中将各个哈希值所对应的用户进行统计,因此,计算节点b0可以缩小搜索范围,从所述数据库中快速获取相关用户的关联数据。同样地,对于其他用户的用户数据的处理方式与上述处理方式相同,本申请在此不再赘述。

计算节点b0在进行数据加载的过程中,可以直接从所述数据库中将u0、u8、u120所有数据加载至节点处。后续地,计算节点b0可以将已经加载完成数据的用户信息通知给计算节点a0-am。此时,当计算节点a1在处理到用户u8的用户数据时,可以直接从计算节点b0中读取用户u8的关联数据。

本申请提供的数据加载处理方法,可以在对大量用户数据的关联数据进行加载的过程中,计算各个用户数据的散列值,并将具有相同散列值的用户数据划分至同一个计算节点进行加载处理。一方面,根据用户数据的散列值对用户数据进行划分,由于散列值具有随机性,因此,可以将海量用户数据均衡地分配至各个计算节点,发挥各个计算节点的作用,实时、高效地完成对相关数据的加载处理。另一方面,所述计算节点还可以从后台数据库中获取与所述散列值对应的关联数据,提前将关联数据加载至计算节点中,这样,在需要所述用户数据的关联数据时,可以直接从相应的计算节点中读取,提升数据处理的效率。

本申请另一方面还提供一种数据加载处理装置,图5是本申请提供的数据加载处理装置的一种实施例的模块结构示意图,如图5所示,所述装置50可以包括:

用户数据获取单元51,用于获取多个用户数据;

散列值计算单元52,用于计算各个用户数据的散列值;

数据划分单元53,用于根据所述散列值,将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。

本申请提供的数据加载处理装置,可以在对大量用户数据的关联数据进行加载的过程中,计算各个用户数据的散列值,并将具有相同散列值的用户数据划分至同一个计算节点进行加载处理。一方面,根据用户数据的散列值对用户数据进行划分,由于散列值具有随机性,因此,可以将海量用户数据均衡地分配至各个计算节点,发挥各个计算节点的作用,实时、高效地完成对相关数据的加载处理。另一方面,所述计算节点还可以从后台数据库中获取与所述散列值对应的关联数据,提前将关联数据加载至计算节点中,这样,在需要所述用户数据的关联数据时,可以直接从相应的计算节点中读取,提升数据处理的效率。

可选的,在本申请的一个实施例中,所述将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理可以包括:

获取与所述多个用户数据相关联的多个关联数据;

分别获取各个关联数据的散列值,将散列值与计算节点所处理的用户数据散列值相匹配的关联数据加载至所述计算节点中。

可选的,在本申请的一个实施例中,所述用户数据散列值与所述关联数据散列值相匹配可以包括下述中的至少一种:

所述用户数据散列值与所述关联数据散列值相同;

所述关联数据散列值与所述用户数据散列值满足预设算法对应关系。

可选的,在本申请的一个实施例中,所述计算各个用户数据的散列值可以包括:

从所述用户数据中获取用户的唯一标识信息;

计算所述唯一标识信息的散列值,将所述唯一标识信息的散列值作为所述用户数据的散列值。

可选的,在本申请的一个实施例中,所述唯一标识信息的散列值可以包括下述中的一种:

所述唯一标识信息的哈希值;从所述唯一标识信息哈希值中截取的部分序列。

可选的,在本申请的一个实施例中,所述装置还可以包括:

散列值确定单元,用于当需要用户数据的关联数据时,计算所述用户数据的散列值;

节点确定单元,用于根据所述散列值确定处理所述散列值所对应用户数据的计算节点;

关联数据获取单元,用于从所述计算节点中获取所述用户数据的关联数据。

图6是本申请提供的数据记载处理装置的另一种实施例的模块结构示意图,如图6所示,所述装置包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现:

获取多个用户数据;

计算各个用户数据的散列值;

根据所述散列值,将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理。

可选的,在本申请的一个实施例中,所述处理器在实现步骤将具有相同散列值的用户数据划分至同一个计算节点进行数据加载处理时可以包括:

获取与所述多个用户数据相关联的多个关联数据;

分别获取各个关联数据的散列值,将散列值与计算节点所处理的用户数据散列值相匹配的关联数据加载至所述计算节点中。

可选的,在本申请的一个实施例中,所述处理器执行所述指令时还可以实现:

当需要用户数据的关联数据时,计算所述用户数据的散列值;

根据所述散列值确定处理所述散列值所对应用户数据的计算节点;

从所述计算节点中获取所述用户数据的关联数据。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上客户端或服务器时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1