一种实现异步服务的方法及装置与流程

文档序号:15047361发布日期:2018-07-27 22:59阅读:171来源:国知局

本发明涉及计算机网络技术领域,尤其涉及一种实现异步服务的方法及装置。



背景技术:

随着计算机技术的发展,人们的生活越来越离不开互联网,随之,对互联网数据处理的时效和准确性也要求越来越高。目前,在各大网络系统的后端对于消息处理有异步处理和同步处理两种方式。消息的同步处理是指如消费方在处理消息时必须等待处理方结束以后才能进行后续操作;消息的异步处理是指如消费方在把消息送达消息处理方后可以进行其他操作,消息处理结果采用回调或者无回调方式结束操作。

针对需要高性能高并发的场景,大部分可以采用异步的方式对消息进行处理,通过分布式进行消息的消费;针对需要强一致性的场景通常采用同步方式对消息进行处理,保证消息进行且只进行一次消费。

但实际的应用场景中会存在高性能且一致性的需求,为了满足这个需求,现有技术中,通常将业务流程进行拆分,对影响性能且可以异步的逻辑进行异步化提高性能,再利用可靠性的队列消费进行处理,以保证数据最终一致,如利用redis(是一个开源的使用ansic语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库)、kafka(是一种高吞吐量的分布式发布订阅消息系统)等队列服务外加队列消费模型实现高性能的消息异步化消费,通过简单的分布式部署可以达到平行扩容来满足各种高性能高并发的场景。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:虽然能够利用redis、kafka等队列服务外加队列消费模型实现高性能的消息异步化消费,通过简单的分布式部署可以达到平行扩容来满足各种高性能高并发的场景,但是,无法同时满足强一致性的需求。



技术实现要素:

本发明实施例提供一种实现异步服务的方法及装置,实现了高性能处理任务的同时满足任务的可靠性消费。

一方面,本发明实施例提供了一种实现异步服务的方法,包括:

接收具有唯一标识信息的任务,并根据所述任务的唯一标识信息,判断第一数据库中是否存储所述任务;

若所述第一数据库中未存储所述任务,在所述第一数据库中创建所述任务;

初始化设置所述任务的任务状态为创建,并通过状态机监控所述第一数据库中所述任务的任务状态的变更,以用于控制所述任务的幂等性;

将所述任务插入第二数据库的任务队列中,当接收到所述任务的处理请求时,通过任务处理进程从所述任务队列中获取所述任务;

将获取到的所述任务的任务状态更新为处理中,根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作。

另一方面,本发明实施例提供了一种实现异步服务的装置,包括:

接收及判断单元,用于接收具有唯一标识信息的任务,并根据所述任务的唯一标识信息,判断第一数据库中是否存储所述任务;

创建单元,用于若所述第一数据库中未存储所述任务,在所述第一数据库中创建所述任务;

设置及监控单元,用于初始化设置所述任务的任务状态为创建,并通过状态机监控所述第一数据库中所述任务的任务状态的变更,以用于控制所述任务的幂等性;

插入及获取单元,用于将所述任务插入第二数据库的任务队列中,当接收到所述任务的处理请求时,通过任务处理进程从所述任务队列中获取所述任务;

更新及执行单元,用于将获取到的所述任务的任务状态更新为处理中,根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作。

上述技术方案具有如下有益效果:根据每一个任务存在的唯一标识信息,保证了每一个任务的唯一性,并为保证任务的幂等性提供了重要的前提保障;通过在第一数据库中存储任务的任务状态,为实现通过状态机控制任务的幂等性提供了必要的前提条件,同时,为后续保证任务可靠性消费提供了重要的前提保障;最大限度利任务队列来实现队列的高性能,从而实现了高性能处理任务的同时满足任务的可靠性消费,进一步地,提高了用户的使用体验。

附图说明

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

图1为本发明一个实施例中一种实现异步服务的方法流程图;

图2为本发明另一实施例中一种实现异步服务的装置结构示意图;

图3为本发明一优选实施例中任务的创建流程示意图;

图4为本发明另一优选实施例中实现异步服务的方法中任务处理进程集群从任务队列集群中获取任务的流程示意图;

图5为本发明另一优选实施例中实现异步服务的方法中任务的处理过程流程示意图;

图6为本发明另一优选实施例中实现异步服务的方法中任务修复流程示意图。

具体实施方式

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

如图1所示,为本发明实施例中一种实现异步服务的方法的流程图,包括:

101、接收具有唯一标识信息的任务,并根据所述任务的唯一标识信息,判断第一数据库中是否存储所述任务;

102、若所述第一数据库中未存储所述任务,在所述第一数据库中创建所述任务;

103、初始化设置所述任务的任务状态为创建,并通过状态机监控所述第一数据库中所述任务的任务状态的变更,以用于控制所述任务的幂等性;

104、将所述任务插入第二数据库的任务队列中,当接收到所述任务的处理请求时,通过任务处理进程从所述任务队列中获取所述任务;

105、将获取到的所述任务的任务状态更新为处理中,根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作。

优选地,所述判断第一数据库中是否存储所述任务,具体包括:

根据所述任务的唯一标识信息,判断第一数据库的缓存中是否缓存所述任务;

其中,所述在所述第一数据库中创建所述任务,具体包括:

将所述任务写入所述第一数据库的缓存中;

其中,所述任务状态包括创建、处理中、处理成功和处理失败。

可选地,还包括:

若所述第一数据库中已存储有所述任务,则通过所述第一数据库返回所述任务的任务信息;

其中,所述任务信息包括所述任务已存在的通知信息和所述任务的唯一标识信息。

优选地,所述将所述任务插入第二数据库的任务队列中,当接收到所述任务的处理请求时,通过任务处理进程从所述任务队列中获取所述任务,包括:

将所述任务插入第二数据库的任务队列中,并通过所述第一数据库返回已成功创建的所述任务的任务信息;

当接收到所述任务的处理请求时,基于所述第一数据库返回的所述任务的任务信息,通过任务处理进程从第二数据库的任务队列中获取所述任务;

其中,所述第二数据库的任务队列为基于原子操作的队列。

可选地,还包括:

在所述第二数据库中预创建任务队列集群;

预创建任务处理进程集群;

其中,所述当接收到所述任务的处理请求时,基于所述第一数据库返回的所述任务的任务信息,通过任务处理进程从第二数据库的任务队列中获取所述任务,包括:

当接收到所述任务的处理请求时,判断是否接收到所述第一数据库返回的所述任务的任务信息,所述任务的处理请求中包括所述任务的唯一标识信息;

若接收到,根据所述处理请求中所述任务的唯一标识信息,通过所述任务处理进程集群中的任一任务处理进程从所述第二数据库中预创建的任务队列集群中获取所述任务;

若未接收到,根据所述处理请求中所述任务的唯一标识信息,基于预定获取频率通过所述任务处理进程集群从所述第二数据库中预创建的任务队列集群中获取所述任务。

优选地,所述将获取到的所述任务的任务状态更新为处理中,根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作,包括:

将获取到的所述任务的任务状态更新为处理中,对任务状态为处理中的所述任务执行任务的回调操作,并监控所述任务的回调操作是否超过预定的时间阈值;

若超过,基于预定操作协议,对所述任务执行任务回调;

其中,所述对所述任务执行任务回调,包括:

步骤a,判断对所述任务执行任务回调是否成功;

若回调失败,将所述任务的任务状态更新为处理失败,并基于预定操作协议中的回调次数,再次对所述任务执行任务回调,跳转执行步骤a,直至回调次数达到所述预定操作协议中的回调次数或回调成功;

若回调成功,将所述任务的任务状态更新为处理成功,并结束对所述任务的处理。

可选地,所述任务队列集群中还包括任务修复队列,所述根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作,还包括:

当通过状态机监控到所述第一数据库中存在预定时长内任务状态持续为创建的第一任务时,将所述第一任务插入所述第二数据库中的任务修复队列,以完成所述第一任务的创建;

当通过状态机监控到所述第一数据库中存在预定时长内任务状态持续为处理中的第二任务时,将所述第二任务插入所述任务修复队列,以完成所述第二任务的处理;

其中,所述预定时长大于所述预定获取频率中单位时间的时间长度。

图2所示,为本发明另一实施例中一种实现异步服务的装置结构示意图,包括:

接收及判断单元21,用于接收具有唯一标识信息的任务,并根据所述任务的唯一标识信息,判断第一数据库中是否存储所述任务;

创建单元22,用于若所述第一数据库中未存储所述任务,在所述第一数据库中创建所述任务;

设置及监控单元23,用于初始化设置所述任务的任务状态为创建,并通过状态机监控所述第一数据库中所述任务的任务状态的变更,以用于控制所述任务的幂等性;

插入及获取单元24,用于将所述任务插入第二数据库的任务队列中,当接收到所述任务的处理请求时,通过任务处理进程从所述任务队列中获取所述任务;

更新及执行单元25,用于将获取到的所述任务的任务状态更新为处理中,根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作。

优选地,所述接收及判断单元,具体包括:

判断模块,用于根据所述任务的唯一标识信息,判断第一数据库的缓存中是否缓存所述任务;

其中,所述创建单元,具体用于

将所述任务写入所述第一数据库的缓存中;

其中,所述任务状态包括创建、处理中、处理成功和处理失败。

可选地,还包括:

返回单元,用于若所述第一数据库中已存储有所述任务,则通过所述第一数据库返回所述任务的任务信息;

其中,所述任务信息包括所述任务已存在的通知信息和所述任务的唯一标识信息。

优选地,所述插入及获取单元,包括:

插入及返回模块,用于将所述任务插入第二数据库的任务队列中,并通过所述第一数据库返回已成功创建的所述任务的任务信息;

获取模块,用于当接收到所述任务的处理请求时,基于所述第一数据库返回的所述任务的任务信息,通过任务处理进程从第二数据库的任务队列中获取所述任务;

其中,所述第二数据库的任务队列为基于原子操作的队列。

可选地,还包括:

第一预创建单元,用于在所述第二数据库中预创建任务队列集群;

第二预创建单元,用于预创建任务处理进程集群;

其中,所述获取模块具体用于

当接收到所述任务的处理请求时,判断是否接收到所述第一数据库返回的所述任务的任务信息,所述任务的处理请求中包括所述任务的唯一标识信息;

若接收到,根据所述处理请求中所述任务的唯一标识信息,通过所述任务处理进程集群中的任一任务处理进程从所述第二数据库中预创建的任务队列集群中获取所述任务;

若未接收到,根据所述处理请求中所述任务的唯一标识信息,基于预定获取频率通过所述任务处理进程集群从所述第二数据库中预创建的任务队列集群中获取所述任务。

优选地,所述更新及执行单元,包括:

更新及监控模块,用于将获取到的所述任务的任务状态更新为处理中,对任务状态为处理中的所述任务执行任务的回调操作,并监控所述任务的回调操作是否超过预定的时间阈值;

执行模块,用于若超过,基于预定操作协议,对所述任务执行任务回调;

其中,所述执行模块,包括:

判断子模块,用于判断对所述任务执行任务回调是否成功;

执行及跳转子模块,用于若回调失败,将所述任务的任务状态更新为处理失败,并基于预定操作协议中的回调次数,再次对所述任务执行任务回调,跳转执行判断子模块,直至回调次数达到所述预定操作协议中的回调次数或回调成功;

更新及结束子模块,用于若回调成功,将所述任务的任务状态更新为处理成功,并结束对所述任务的处理。

可选地,所述任务队列集群中还包括任务修复队列,所述更新及执行单元,还包括:

第一插入模块,用于当通过状态机监控到所述第一数据库中存在预定时长内任务状态持续为创建的第一任务时,将所述第一任务插入所述第二数据库中的任务修复队列,以完成所述第一任务的创建;

第二插入模块,用于当通过状态机监控到所述第一数据库中存在预定时长内任务状态持续为处理中的第二任务时,将所述第二任务插入所述任务修复队列,以完成所述第二任务的处理;

其中,所述预定时长大于所述预定获取频率中单位时间的时间长度。

本发明实施例上述技术方案具有如下有益效果:根据每一个任务存在的唯一标识信息,保证了每一个任务的唯一性,并为保证任务的幂等性提供了重要的前提保障;通过在第一数据库中存储任务的任务状态,为实现通过状态机控制任务的幂等性提供了必要的前提条件,同时,为后续保证任务可靠性消费提供了重要的前提保障;最大限度利任务队列来实现队列的高性能,从而实现了高性能处理任务的同时满足任务的可靠性消费,进一步地,提高了用户的使用体验。

以下结合应用实例对本发明实施例上述技术方案进行详细说明:

本发明应用实例旨在满足高性能处理任务的同时满足任务的可靠性消费。

如图1所示,例如,在异步服务a的任务处理过程中,通过api(applicationprogramminginterface,应用程序编程接口)将具有唯一标识信息的任务提交到后端,并通过api接口,使用http请求方法中的post请求方法将数据提交到异步服务,如异步服务a,随后异步服务a接收到具有唯一标识信息的任务,如唯一标识信息为task_id的任务,随后,根据该任务的唯一标识信息task_id,判断第一数据库,如mysql(关系型数据库管理系统),中是否存储该任务,若mysql中未存储任务task_id,在mysql中创建任务task_id;初始化设置任务task_id的任务状态为创建,并通过状态机监控mysql中任务task_id的任务状态的变更,以用于控制所述任务的幂等性;将任务task_id插入第二数据库,如redis,的任务队列中,当接收到任务task_id的处理请求时,通过任务处理进程从该任务队列中获取任务task_id;将获取到的任务task_id的任务状态更新为处理中,根据状态机对任务task_id的任务状态的监控结果,对任务task_id执行与任务task_id的任务状态相匹配的处理操作。

需要说明的是,本领域技术人员可以了解到,在编程中一个幂等操作的特点是指其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。因此,本发明中任务的幂等性是指任意多次执行任务所产生的影响均与一次执行任务的影响相同。

在一优选实施例中,步骤101中所述判断第一数据库中是否存储所述任务的步骤,具体包括:根据所述任务的唯一标识信息,判断第一数据库的缓存中是否缓存所述任务。

其中,步骤102中所述在所述第一数据库中创建所述任务的步骤,具体包括:将所述任务写入所述第一数据库的缓存中。

其中,所述任务状态包括创建、处理中、处理成功和处理失败。

例如,在异步服务a的任务处理过程中,接收具有唯一标识信息的任务,如唯一标识信息为task_id的任务,随后,根据该任务的唯一标识信息task_id,判断第一数据库,如mysql,的缓存中是否缓存任务task_id;若未缓存,在mysql中创建任务task_id,并将任务task_id写入mysql的缓存中,任务task_id的创建流程参考图3。

通过本实施例,为实现任务的可靠性消费提供了必要的前提条件,避免了在第一数据库中已存储有接收到的待处理任务时,在第一数据库中重复创建已存在的该任务的情况发生,节约了系统的资源,从而提高了任务的处理效率。

在一优选实施例中,该方法还包括:若所述第一数据库中已存储有所述任务,则通过所述第一数据库返回所述任务的任务信息。

其中,所述任务信息包括所述任务已存在的通知信息和所述任务的唯一标识信息。

例如,在异步服务a的任务处理过程中,接收具有唯一标识信息的任务,如唯一标识信息为task_id的任务,随后,根据该任务的唯一标识信息task_id,判断第一数据库,如mysql,的数据表中已存储有任务task_id,则通过mysql返回任务task_id的任务信息,如任务task_id已存在的通知信息和任务task_id的唯一标识信息task_id。

又例如,例如,在异步服务a的任务处理过程中,接收具有唯一标识信息的任务,如唯一标识信息为task_id的任务,随后,根据该任务的唯一标识信息task_id,判断第一数据库,如mysql,的缓存中已存储有任务task_id,则通过mysql返回任务task_id的任务信息,如任务task_id已存在的通知信息和任务task_id的唯一标识信息task_id。

在一优选实施例中,步骤104将所述任务插入第二数据库的任务队列中,当接收到所述任务的处理请求时,通过任务处理进程从所述任务队列中获取所述任务,包括:将所述任务插入第二数据库的任务队列中,并通过所述第一数据库返回已成功创建的所述任务的任务信息;当接收到所述任务的处理请求时,基于所述第一数据库返回的所述任务的任务信息,通过任务处理进程从第二数据库的任务队列中获取所述任务。

其中,所述第二数据库的任务队列为基于原子操作的队列。

例如,在异步服务a的任务处理过程中,接收具有唯一标识信息的任务,如唯一标识信息为task_id的任务,随后,将任务task_id存储至第一数据库,如mysql中,设置任务task_id的初始化的任务状态,如任务状态为创建,通过状态机监控mysql中任务task_id的任务状态,随后将任务task_id写入mysql的缓存中,并将任务task_id随机插入第二数据库,如redis,的任一任务队列中,并通过mysql返回已成功创建的任务task_id的任务信息,当接收到任务task_id的处理请求时,基于mysql返回的任务task_id的任务信息,通过任务处理进程从redis的任务队列中获取任务task_id。

需要说明的是,本领域技术人员可以了解到,原子操作是指一个业务逻辑必须是不可拆分的,要么成功执行要么失败完全不执行。本领域技术人员还可以了解到,本发明实施例中的redis数据库中的队列是基于原子操作的队列,原子队列的实现方式有多钟,本发明虽会以特定的原子队列的实现方式为例说明,但在此不做限定。

在一优选实施例中,该方法还包括:在所述第二数据库中预创建任务队列集群;预创建任务处理进程集群。

其中,所述当接收到所述任务的处理请求时,基于所述第一数据库返回的所述任务的任务信息,通过任务处理进程从第二数据库的任务队列中获取所述任务,包括:当接收到所述任务的处理请求时,判断是否接收到所述第一数据库返回的所述任务的任务信息,所述任务的处理请求中包括所述任务的唯一标识信息;若接收到,根据所述处理请求中所述任务的唯一标识信息,通过所述任务处理进程集群中的任一任务处理进程从所述第二数据库中预创建的任务队列集群中获取所述任务;若未接收到,根据所述处理请求中所述任务的唯一标识信息,基于预定获取频率通过所述任务处理进程集群从所述第二数据库中预创建的任务队列集群中获取所述任务。

例如,在第二数据库redis中预创建任务队列集群m,该任务队列集群m包括了多个任务队列,如任务队列1,任务队列2和任务队列3;预创建任务处理进程集群,包括多个任务处理进程,如采用stark(是一个像多进程守护进程一样为了运行php代码的程序库)集群,包括stark1和stark2;在异步服务a的任务处理过程中,当接收到任务task_id的处理请求时,判断是否接收到所述第一数据库mysql返回的任务task_id的任务信息,任务task_id的处理请求中包括该任务的唯一标识信息task_id;若接收到返回的任务task_id的任务信息时,根据任务task_id的唯一标识信息task_id,通过stark集群中的任一任务处理进程,如stark1,从redis中预创建的任务队列集群m中获取任务task_id;若未接收到返回的任务task_id的任务信息时,根据任务task_id的唯一标识信息task_id,基于预定获取频率,如0.01秒/次的获取频率,通过stark集群从redis中预创建的任务队列集群m中获取任务task_id。参考图4中的任务处理进程集群从任务队列集群中获取任务的流程示意图。

通过本实施例,最大限度利用了redis队列的高性能和stark分布式消费模型来提高系统的性能,从而极大程度地实现了任务消费的高性能。

在一优选实施例中,步骤105将获取到的所述任务的任务状态更新为处理中,根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作,包括:将获取到的所述任务的任务状态更新为处理中,对任务状态为处理中的所述任务执行任务的回调操作,并监控所述任务的回调操作是否超过预定的时间阈值;若超过,基于预定操作协议,对所述任务执行任务回调。

其中,所述对所述任务执行任务回调,包括:步骤a,判断对所述任务执行任务回调是否成功;若回调失败,将所述任务的任务状态更新为处理失败,并基于预定操作协议中的回调次数,再次对所述任务执行任务回调,跳转执行步骤a,直至回调次数达到所述预定操作协议中的回调次数或回成功;若回调成功,将所述任务的任务状态更新为处理成功,并结束对所述任务的处理。

例如,在异步服务a的任务处理过程中,当任务处理进程集群,如stark集群,已获取到任务task_id的任务信息后,将已获取到的任务task_id的任务状态更新为处理中,对任务状态为处理中的任务task_id执行任务的回调操作,如回调任务task_id对应的业务接口的操作,并监控任务task_id的回调操作是否超过预定的时间阈值,如5分钟;若超过预定的时间阈值5分钟,基于预定操作协议,如与业务方达成协议为当任务的回调操作超过预定的时间阈值时,对该任务再次执行1次回调操作的协议,随后,对任务task_id执行任务回调操作,并判断对任务task_id执行任务回调是否成功,若回调失败,将任务task_id的任务状态更新为处理失败,并基于预定操作协议中的回调次数1次,再次对任务task_id执行任务回调;若回调成功,将任务task_id的任务状态更新为处理成功,并结束对任务task_id的处理。任务的处理过程参考图5。

在一优选实施例中,所述任务队列集群中还包括任务修复队列,步骤105中所述根据状态机对所述任务的任务状态的监控结果,对所述任务执行与所述任务的任务状态相匹配的处理操作的步骤,还包括:当通过状态机监控到所述第一数据库中存在预定时长内任务状态持续为创建的第一任务时,将所述第一任务插入所述第二数据库中的任务修复队列,以完成所述第一任务的创建;当通过状态机监控到所述第一数据库中存在预定时长内任务状态持续为处理中的第二任务时,将所述第二任务插入所述任务修复队列,以完成所述第二任务的处理。

其中,所述预定时长大于所述预定获取频率中单位时间的时间长度。例如,预定时间段为的时间长度为10分钟,则预定获取频率的单位时间的时间长度要小于10分钟。

例如,在异步服务a的任务处理过程中,当通过状态机监控到mysql中存在预定时间段内,如10分钟内,任务状态持续为创建的任务task_01时,利用crontab(crontab命令常见于unix和类unix的操作系统之中,用于设置周期性被执行的指令)将任务task_01插入redis中的任务修复队列,以继续完成创建任务task_01,直至在任务修复队列中完成创建任务task_01。参考图6中的任务修复流程示意图。

又例如,在异步服务a的任务处理过程中,当通过状态机监控到mysql中存在预定时间段内,如10分钟内,任务状态持续为处理中的任务task_02时,利用crontab将任务task_02插入redis中的任务修复队列,以继续完成处理任务task_02,直至在任务修复队列中完成处理任务task_02。参考图6中的任务修复流程示意图。

通过本实施例,实现了在任务消费时对异常任务进行修复,保证异常任务也能被执行,从而保证了任务的可靠性消费,实现了在高性能处理任务的同时满足任务的可靠性消费。

本发明实施例提供了一种实现异步服务的装置,可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。

应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。

在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。

为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogicalblock),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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