一种数据存储及查询的方法和装置与流程

文档序号:21031371发布日期:2020-06-09 20:12阅读:174来源:国知局
一种数据存储及查询的方法和装置与流程

本申请涉及计算机技术领域,尤其涉及一种数据存储及查询的方法和装置。



背景技术:

在电子商务系统中,对交易风险的防控,是保障整个电子商务平台能够顺利运行的一个重要手段,这需要电子商务平台的运营方能够对用户的支付行为和商家的核销情况进行实时的了解和分类统计,从而在出现异常情况时,能够及时发现和警示,由运营人员进行深入的了解,及早予以处理。而现有的平台风控产品,在数据库中只存储了一条条交易行为的明细,缺少对于一个时间段的成交量或成交笔数的统计数据,因而不能快速的响应业务方的查询请求,也就无法进行细粒度级别的风险预警。



技术实现要素:

本申请实施例提供了一种轻量级的数据存储及查询的方法和装置,用于解决现有技术不能快速响应查询请求、不能进行细粒度级别的风险预警的问题。

本申请实施例采用以下技术方案:

本申请实施例提供一个后台页面系统,用于设置统计策略,包括确定统计对象和对统计对象的数据进行计算的方法;

本申请实施例还提供一个数据库系统,包含两类具有多个时间粒度列的表:统计表和去重表,其中,统计表用于存储统计对象的数据在不同的时间粒度下的统计值,并且为一般的统计运算提供数据上的支持,去重表在结构和功能上与统计表类似,主要用于为去重运算提供数据上的支持;

本申请实施例还提供一个运行时系统,用于按照所述统计策略对所述统计对象进行统计,并按照所述对统计对象的数据进行计算的方法,得到所述统计对象的数据在不同的时间粒度下的统计值,并将所述统计值存入所述数据库系统中表的相应时间粒度中。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:业务方在查询时能够快速得到结果,运营平台能够实现细粒度的风险预警和防控。

附图说明

为了更清楚的说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做简单介绍,这些附图仅仅是本说明书记载的一些实施例,用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为整个系统的架构图;

图2为数据库系统中统计表的结构示意图;

图3为数据库系统中去重表的结构示意图;

图4为运行时系统按照统计策略执行统计时的流程图;

图5为在某一天的不同时刻某一统计表中各列的值的变化情况示意图。

具体实施方式

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

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1为本说明书的方案在一种实际应用场景下的整体架构示意图,该方案在架构上包括配置平台、运行时系统和数据库系统三个部分,其工作流程如下:在配置平台上设置统计策略,包括确定统计对象和对所述统计对象的数据进行计算的方法;运行时系统根据所述统计策略,对所述统计对象的数据进行统计,并按照所述对统计对象的数据进行计算的方法,得到统计对象的数据在每个时间粒度下的统计值,存入数据库系统中;数据库系统中包含具有多个时间粒度的表,用于存储统计对象的数据在不同时间粒度下的统计值。当收到业务方的查询需求时,运行时系统可以根据所述查询需求中的统计对象,在数据库系统中快速得到统计结果,返回给业务方。

基于上述整体架构,下面对本说明书的方案进行详细说明。

本说明书实施例提供了一个配置平台,所述配置平台可以是一个后台页面系统,运营人员在登录所述后台页面系统后,能够对统计策略进行设置。在本实施例中,运营人员可以以多种方式登录配置平台:可以通过pc登录,也可以通过手机或者平板电脑登录;可以是通过终端设备上的应用程序客户端登录,也可以是在浏览器上输入网址登录,本方案对于具体的登录方式不做限定。

通过上述配置平台,运营人员可以对要执行的统计策略进行设置。统计策略是运行时系统在实施统计时所依据的规则,统计策略中可以包含统计对象和对所述统计对象的数据进行统计计算的方法,当然根据需要,统计策略中还可以包含其他一些内容。所述统计对象可以包括统计主体和统计客体,其中统计主体表达的是对电子商务平台中的何种对象进行统计,典型的统计主体如商户、买家等;统计客体表达的是对所述统计主体的何种信息进行统计,典型的统计客体如商品类别、交易金额等,平台的运营人员可以对每一个不同的统计对象,确定该统计对象自己对应的统计主体和统计客体。

在确定了统计对象以及该统计对象的统计主体和统计客体之后,还要在统计策略中指定对所述统计对象进行统计计算的所用的方法。在电子商务应用中,经常用到的统计计算的方法包括数据的去重、累加和求和计算等,运营人员在设置统计策略时,可以根据实际需要,选择合适的统计计算方法。比如,要了解一个商户在11月11日当天的销售情况,就可以对该商户当天的交易笔数进行累加计算,得到该商户当天完成了多少笔交易,对该商户每笔交易的销售金额进行求和计算,得到该商户在这一天的总的销售额情况。

在统计策略中,除了可以设置统计对象和对统计对象的数据进行计算的方法之外,还可以根据需要,在统计策略中配置过滤脚本,用于设置该项统计的一些前置条件,以便对要统计的数据进行限定或者筛选。这样在执行统计时,系统就会忽略那些与此次统计无关的信息,只统计符合所述统计策略中所述前置条件的数据记录。例如,要了解一个经营液晶电视的商户,在第三季度中,屏幕尺寸在60寸以上的液晶电视的销售额占该商户全部液晶电视总销售额的比重,就可以为这一查询请求设置两个统计策略,策略a用于统计该商户在第三季度的所有液晶电视的总销售额,前置条件是成交时间从7月1日0点00分至9月30日23:59分,商品类别为液晶电视,这样该商户第三季度中中非液晶电视产品的销售情况,就不被计入此次统计;策略b用于统计该商户在第三季度中屏幕尺寸大于等于60寸的液晶电视的总销售额,其前置条件除了成交时间为从7月1日0点00分至9月30日23:59分、商品类别为液晶电视之外,还要在商品的规格上设置电视的屏幕尺寸大于等于60寸的液晶电视这一条件,这样该商户中屏幕尺寸小于60寸的液晶电视的销售数据,在执行统计时就不会被计入。通过这样的设置,在执行统计时就会排除该商户的其他商品的销售数据,只统计该商户在第三季度的60寸以上液晶电视的销售数据,和该商户第三季度全部液晶电视的销售数据,然后通过求和计算的方法分别得到该商户第三季度60寸以上液晶电视的销售额和第三季度全部液晶电视的总销售额,将两个数据相除即可得到在第三季度中60寸以上液晶电视占全部液晶电视的销售情况比重。通过在统计策略中设置能完成上述任务的脚本,即可实现统计时的过滤功能,只统计符合前置条件的数据记录。

在实际的电子商务应用环境中,一个运营平台上可以同时执行多个不同的统计策略,同时对多个不同的统计对象进行统计,或者同时对一个统计对象进行多个不同维度的数据的统计,为了能够对这些不同的统计策略进行区分,每个统计策略可以带有一个编号作为标识,所述统计策略的编号在一个平台系统内最好是唯一的。

在运行时系统按照所述统计策略的要求,执行完对所述统计对象的相关数据的统计之后,本说明书实施例还可以提供一个hbase数据库,用于存储所述统计对象的数据,通常,可以在所述数据库中设置两类表,其中一类是统计表,用来存储统计对象的数据在每个时间粒度下的统计值;另一类是去重表,为去重的统计提供数据上的支持。下面先介绍统计表,再介绍去重表。

在统计表中,是按照表中的每个第一时间粒度所限定的范围,将每个第一时间粒度内产生的数据,作为表中的一行记录。也就是说每行记录中的数据,都是在第一时间粒度所限定的时间范围内产生的。在大多数情况下,是以日作为第一时间粒度的单位,表中的一行记录,保存的就是关于统计对象在这一天所产生的数据,每一天的数据就是表中的一行记录。

在统计表中,通常可以包含3种不同时间粒度的列,分别为日级、小时级和分钟级。在这种情况下,一日作为统计表中的第一时间粒度,一行记录中存储的就是统计对象的数据在当天的统计值,一行记录中只有一个日级的列,日级的列名可以用6位数字表示为yymmdd的形式,其中左侧的2位数字(yy),表示年份,值的范围从00~99,中间的2位数字(mm),表示月份,值的范围从01~12,右侧的2位数字(dd),表示当月几号,值的范围从01~31,在yymmdd中间没有分隔符,例如,181201即表示2018年12月1日;小时级的列中,存储的是统计对象的数据在一天之中每个小时内的统计值,一行记录中共包含24个小时级的列,分别为00、01、02……23,列名用2位数字表示;分钟级的列中,存储的是统计对象的数据在每一分钟内的统计值,一个统计表中最多可以包含1440个分钟级的列,分钟级的列用4位数字表示成hh:mm的形式,其中冒号左侧的2位数字(hh)表示小时,值的范围从00到23,冒号右侧的两位数字(mm)表示分钟,值的范围从00到59,所以全部分钟级的列是分别从00:00、00:01直到23:59。通过这样的设计,就可以在统计表中按照不同的时间粒度,分别存储统计对象的数据在每日、每小时以及每分钟的统计值。

通过上述的设置,在数据库中用一行就可以存储统计对象的数据在一天之中的所有统计值,只需要约30行就可以存储统计对象的一个月的数据,既实现了对统计数据的明细存储,同时还能够很方便的进行较大的时间跨度的信息查询,在容量和性能上达到了的最佳的平衡效果。

为了对不同的记录进行标识和区分,在统计表中,每行记录可以带有一个行键(rowkey),并且每个行键的值在同一个表中都是唯一的,所述行键(rowkey)的值是一段字符串,通常是由4个参数(当然,根据需要也可以设置更多或更少的参数个数)通过下划线(“_”)连接而构成,其中,前3个参数分别为统计策略的编号、统计主体的编号和此行记录生成时的日期,第4个参数是对上述前3个参数组成的数据进行哈希运算所生成的哈希值或哈希值的一部分,因此在统计表中每个行键的值可以用数学表达式表述为rowkey=hash_strategyid_mid_date。其中,所述strategyid是统计策略的编号,在一个平台内strategyid的值最好是唯一的;所述mid是统计主体的编号,常用的商家的编号,在一个平台内mid的值是唯一的;所述date表示当前记录生成时的日期,可以用6位数字表示成“yymmdd”的形式,其中最左侧的2位数字(yy)表示年份,取年份的后两位,值的范围从00~99,中间的2位数字(mm)表示月份,值的范围从01~12,右侧的2位数字(dd)表示当月几号,值的范围从01~31,在yymmdd之间没有分隔符,以减少行键的长度,例如,181201即表示2018年12月1日;所述hash=hash(strategyid_mid_date).sub(4),表示对由统计策略的编号、统计主体的编号和记录生成时的日期组成的字符串进行哈希运算,并取所生成哈希值的后4位。通过这样的设计方式,可以确保每一行记录的行键在表中都是唯一的,并且兼顾了长度适中和分布散列的特点,能够实现最佳的查询性能,易于使用。

如前所述,在本实施例中,还提供了一类去重表,用于支持去重统计的计算。去重表在结构上可以设计得和统计表相类似,也是包含一个行键和日级、小时级和分钟级这3种不同时间粒度的列,只不过在去重表中,一行记录的行键的值为hash_strategyid_mid_sid_date,相比于统计表的行键,增加了一个sid,表示统计客体的编号。当在某些情况下需要进行去重运算时,系统会先通过“主体+客体”的二元键对表中的数据进行重复判断,如果在去重表中查到了某行记录,则不在统计表中对这行记录进行统计,只有不在去重表的记录才会被统计。

例如,要统计一个商户在一天之中有多少独立的顾客,由于有可能有买家在这天在这家商户进行了多次购物,就需要将这些买家只计算一次,即在去重表中查询由“商户id+顾客id”组成的二元键,对包含此二元键的记录,不进行统计,只有对那些不包含此二元键的记录,才进行累加计算。

运行时系统在根据统计策略的要求执行统计时,会先判断所述统计策略在设置上是否有效,然后按照顺序一条条的执行有效的统计策略,以完成对一个输入的所有相关维度的统计。下文所述,即是对具体的统计执行过程的详细描述。

图4是本实施例提供的一种统计执行过程的流程图,该流程可以包含以下步骤:

s401:运行时系统通过统计策略中的过滤脚本,对统计中所涉及到的参数进行校验,确认要统计的主体和客体以及运算条件是否符合要求,如果符合要求,则运行时系统将执行该统计策略;

s402:根据要执行的统计策略中的关于要统计的主体和客体的脚本,得到要统计的主体和客体的实际内容;

s403:根据统计策略中设置的统计计算方法,对统计对象的数据进行统计。

该步骤中的统计包括两种:去重和非去重的统计,一般而言,去重和非去重的统计可以分开进行:

1.非去重的统计:对于非去重的统计,在进行求和时直接使用hbase提供的increment接口,完成原子性的数据累加。例如要统计一个商户在2018年12月1日这一天的交易金额,假设这个商户在这天的12:35有第一笔10元的交易,则在统计表中日列的列名为”20181201”这一行的记录中,日列中的值是10,小时级的12列中的值是10,分钟级的12:35列中的值是10,其他所有列中的值都是0;然后在12:41有第二笔交易20元,这时这行记录中日列中的值变为30,小时级12中的值也为30,分钟级的12:35中的值仍是10,但分钟级的12:41中的值为20,其他列中的值仍然为0;在13:21有第三笔交易5元,这时在这一行的记录中,各个列中的值分别为:日181201=35,小时12=30,小时13=5,分钟12:35=10,分钟12:41=20,分钟13:21=5,其他列中的值为0。这行记录的各列在当天不同时刻的值的变化情况如图5所示,图中每一行表示在当前的时刻各列在统计表中的值,图中用省略号表示的那些列,其值一直为0。需要说明的是,在实际的统计表中,这行记录一直是一行,当有新的交易发生时,是这行记录中相关的列中的值发生变化,但并不会生成新的一行记录。

2.去重的统计:对于去重的统计,在统计时会先在去重表中查询“主体+客体”在各个维度是否存在,只有在去重表中不存在的记录,才进行去重统计。例如要统计一个商户在一天的去重的顾客数,就需要先用“商户id+顾客id”组成的key查询已经交易的顾客,这些顾客所在的记录不进行统计。

经过上述的统计过程,即可得到一个统计对象的数据在各个时间粒度下的统计值,并且将这些数据的统计值存储在数据库系统相应的表中,当业务方输入某个具体的查询需求时,运行时系统可以根据数据库系统中相关统计对象的数据的统计值,快速的向业务方返回查询结果。

在本实施例中,本发明提供两种类型的查询接口供外部使用,分别为明细查询和区间求和。下面对这两种示例性的查询分别进行介绍:

1.明细查询:在本实施例中,在数据库系统的表中为统计数据设置了三种时间粒度,因此,本系统可以直接执行三种时间粒度的明细查询:通过hbase的get接口,即可直接在统计表中得到统计对象在任一天、任一小时和任一分钟的统计结果。业务方输入查询请求后,可以快速得到所需要的统计数据,从而能够方便的绘制业务的明细报表或者监控大图。

2.区间求和:通过s303所述的统计过程可以看出,统计对象的数据在每一天、每一小时、每一分钟的统计值都已经保存在数据库系统中了,因此可以通过对这些统计值求和的方法,快速得到任意一个时间段的统计值,其求和的算法可以归纳为:第一天的统计值加上跨天的统计值加上最后一天的统计值,其中第一天和最后一天的统计值需要用到小时级和分钟级的求和,而跨天的统计值只需要日级的求和即可,相比之前要将所在时间段内的每一笔交易的金额都进行求和的方法,计算量有显著的降低。例如要查询某个商户从2018年12月12日10:23分到2018年12月15日15:40分这一时间段内的总的销售额,其计算过程可以分为以下步骤:

(1)计算第一天的销售额:

第一天即2018-12-12日,这天的销售额可以分解为10:23~10:59的销售额加上11:00~23:59的销售额,所以取10:23~10:59这36个分钟级的统计值,加上11~23这13个小时级的统计值,即得到第一天的销售额;

(2)计算跨天的销售额:

从2018-12-12日10:23到2018-12-15日15:40,包括2018-12-13日和2018-12-14日两个整天,所以跨天的销售额为2018-12-13日的日级的统计值加上2018-12-14日的日级的统计值;

(3)计算最后一天的销售额:

最后一天是2018-12-15日,这天的销售额可以分解为0~15这15个小时级的统计值,加上15:00~15:39这39个分钟级的统计值,即可得到最后一天的销售额;

(4)计算总的销售额:

将(1)、(2)、(3)中得到的三个销售额相加,即可得到从2018年12月12日10:23分到2018年12月15日15:40分这一时间段的总的销售额。

通过上述的方法,业务方就能够在需要的情况下,实时的获取一个商户在任意一个时间段的交易总额,从而如果有商户或者买家的交易出现异常情况时,电子商务平台可以立即发现风险,并进行报警提示,提醒进行人工排查与核实,以充分保障买家和商户的财产安全,有效降低整个交易系统的风险。

需要说明的是,在前文的描述中,在数据库的表中是分别以日、小时和分钟为单位,设置了3种时间粒度的列,但在实际的应用中,平台方也可以根据需要,以其他的时间单位设置时间粒度,例如以小时、分钟和秒为单位设置时间粒度,以实现更为精细的数据统计和存储,或者以年、月、日为单位设置时间粒度,以实现更大时间跨度的数据统计和存储。例如电影公司在上映一部电影时,通常都会同步发布该电影的实时票房销售情况,在这种情况下就没有必要将票房数据精确到每一分钟,只要将统计数据精确到小时就可以了,这时就可以在表中设置周、日和小时三个时间粒度的列,在数据库中存储每周、每日和每小时的票房数据,从而依照前述的区间求和的方法,快速地得到一部电影的实时总票房。与此类似,在有些情况下也可能会需要精确到秒的数据统计,比如商家要对店铺中一款商品的秒杀活动时的销售情况进行统计,这时就可以分别以小时、分钟和秒为单位设置时间粒度,从而可以便捷而精确的了解到此次秒杀活动的效果,为以后的行销活动提供参考依据。

进一步地,数据库的表中的时间粒度的数量,也并非必须是3种,也可以少于3种,有些情况下设置1种或者2种时间粒度就可以了。而由于计算机硬件的限制以及hbase数据库本身的一些特点,最好不要设置3种以上的时间粒度,否则会对整体的系统性能造成较大的影响,当然,如果系统硬件没有这些限制,则设置时间粒度数量的限制则可以消除。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书实施例提供的装置、电子设备、非易失性计算机存储介质与方法是对应的,因此,装置、电子设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、电子设备、非易失性计算机存储介质的有益技术效果。

在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、atmelat91s-am、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

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

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

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

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

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

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

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

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

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

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

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

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

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

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