消息推送方法、装置以及系统与流程

文档序号:17071309发布日期:2019-03-08 23:20阅读:143来源:国知局
消息推送方法、装置以及系统与流程

本申请涉及移动互联网通信技术领域,尤其涉及一种消息推送方法、装置以及系统。



背景技术:

随着终端技术以及互联网技术的不断发展,越来越多的用户根据自身需求在终端设备上安装多种应用程序(application,简称app),为了进行app消息推送,除了可以通过app直接进行消息推送,还可以通过终端设备的系统进行消息推送。

现有技术中,通过终端设备的系统向用户推送消息时,需要通过与终端设备匹配的通道进行消息推送,在执行过程中发现这种推送方式下,推送速率容易受到消息推送速率较低的通道限制,很容易出现消息堆积现象,使得消息推送效率较低。



技术实现要素:

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

本申请提出一种消息推送方法、装置以及系统,以解决现有技术中由于采用多通道混合推送的方式,导致各推送通道出现消息拥堵的情况的技术问题,从而缓解了消息推送过程中的消息堆积现象。

本申请第一方面实施例提出了一种消息推送方法,包括:

根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道;

根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将所述目标消息添加到相应推送通道的缓冲队列中;

对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。

本申请实施例的消息推送方法,通过根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道,再根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中,进而对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。该方法将推送消息的通道分为多个缓冲队列,进而将待推送消息通过相应的缓冲队列进行推送,避免了由于推送通道的速度有限,导致各推送通道出现消息拥堵的情况,从而缓解了消息推送过程中的消息堆积现象。

本申请第二方面实施例提出了一种消息推送装置,包括:

查询模块,用于根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道;

获取模块,用于根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将所述目标消息添加到相应推送通道的缓冲队列中;

推送模块,用于对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。

本申请实施例的消息推送装置,通过根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道,再根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中,进而对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。该方法将推送消息的通道分为多个缓冲队列,进而将待推送消息通过相应的缓冲队列进行推送,避免了由于推送通道的速度有限,导致各推送通道出现消息拥堵的情况,从而缓解了消息推送过程中的消息堆积现象。

本申请第三方面实施例提出了一种消息推送系统,所述系统包括缓冲层和推送层;

其中,所述缓冲层,用于根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道;根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将所述目标消息添加到相应推送通道的缓冲队列中;

所述推送层,用于对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。

所述系统还包括:设置于所述缓冲层和所述推送层之间的转换层;

所述转换层,用于对同一推送通道的各缓冲队列,根据优先级顺序,对各缓冲队列中的目标消息进行消息格式转换。

本申请第四方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述实施例中所述的消息推送方法。

本申请第五方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如前述实施例中任一所述的消息推送方法。

本申请第六方面实施例提出了一种计算机程序产品,其特征在于,当所述计算机程序产品中的指令由处理器执行时,执行如前述实施例中任一所述的消息推送方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例所提供的一种消息推送方法的流程示意图;

图2为本申请实施例所提供的另一种消息推送方法的流程示意图;

图3为本申请实施例所提供的一种消息推送装置的结构示意图;

图4为本申请实施例所提供的另一种消息推送装置的结构示意图;

图5为本申请实施例所提供的一种消息推送系统的结构示意图;

图6为本申请实施例所提供的另一种消息推送系统的结构示意图;

图7示出了适于用来实现本申请实施方式的示例性计算机设备的框图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

随着终端技术以及互联网技术的不断发展,消息推送通知已成为一种重要的移动客户端激活用户的方式被广泛应用在各个领域。目前,常用的消息推送方式为多通道混合推送方法,即在推送系统的入口层不区分推送通道,而获取推送消息后在推送系统内部做推送通道区分,将对应不同推送类型终端设备的消息投递到相应的独立队列中,通过队列缓冲机制做出口层控速推送。

但是,现有技术的消息推送方法在推送消息的过程中,无法满足大体量用户客户端的快速下发需求,极易造成系统内部队列消息堆积,导致优先级高的待推送消息来临时需要排队,无法实时下发。并且,由于不同推送通道在整体用户占比和厂商提供推送通道的限速值不成比例,导致不同推送通道混合推送会出现通道之间互相拥堵的现象。

针对上述问题,本申请实施例提出了一种消息推送方法,通过根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道,再根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中,最终对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。从而,避免了由于推送通道的速率有限,导致各推送通道出现消息拥堵的情况,进一步的缓解了消息推送过程中的消息堆积现象。

下面参考附图描述本申请实施例的消息推送方法和装置。

图1为本申请实施例所提供的一种消息推送方法的流程示意图。

如图1所示,该消息推送方法包括以下步骤:

步骤101,根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道。

本申请实施例中,客户端,是指与服务器相对应,为客户提供本地服务的程序,可以被配置于任何计算机设备中,其中,计算机设备可以为个人电脑(personalcomputer,简称pc)、云端设备、移动设备等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。

其中,待推送消息,是指通过消息推送系统向客户端推送的消息。推送通道,是消息推送系统向客户端推送消息的通道。

本申请实施例中,将待推送消息推送至客户端之前,首先要在客户端与其对应的程序服务器之间建立长连接,这是因为消息推送是由服务器向客户端主动发送消息,如果客户端和服务器之间不存在一个长连接,那么服务器是无法来主动连接客户端的,因而推送消息的功能是基于服务器与客户端建立的长连接的基础上的。

具体地,每一个计算机设备都有一个自己的设备号,而且计算机设备中下载的客户端也都有自己对应的唯一的包名,因此,待推送消息的服务器能够准确的将各条待推送消息推送至计算机设备中需推送至的客户端。各条待推送消息需推送至的客户端配置于操作系统不同的计算机设备时,各条推送消息适配的推送通道也不相同。由于各条待推送消息推送至客户端的推送通道是提前配置好的,因此,可以根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道。

举例说明,假设待推送消息的服务器要向该待推送消息对应的10个客户端推送某一消息,其中,10个客户端中,有2个客户端配置于操作系统为a的计算机设备,有3个客户端配置于操作系统为b的计算机设备,有5个客户端配置于操作系统为c的计算机设备,此时,服务器向2个配置于操作系统a的客户端推送消息的推送通道为通道d1;服务器向3个配置于操作系统b的客户端推送消息的推送通道为通道d2;服务器向5个配置于操作系统c的客户端推送消息的推送通道为通道d3。因此,可通过各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道。

步骤102,根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中。

其中,各推送通道的推送速率可能相同,也可能各不相同,各推送通道的具体推送速率是根据各推送通道的承载能力预先设定的。

具体地,根据各条待推送消息需推送至的客户端,查询到客户端对应的推送通道,进一步的根据各通道推送消息的速率,从各推送通道所适配的待推送消息中获取该推送通道对应条数的目标消息,进而将获取的目标消息添加到相应推送通道的缓冲队列中。

需要说明的是,各推送通道对应的目标消息的条数是根据各推送通道的推送速率确定的,以确保在推送消息的过程中,输入各推送通道的消息与输出各推送通道的消息大体一致,以避免由于输入各推动通道的消息过多,导致不能及时将消息推送至客户端,出现通道拥堵的现象。

举例说明,假设有一万条待推送消息需推送至客户端,向配置于操作系统a1的计算机设备中的客户端的推送通道为通道b1,向配置于操作系统a2的计算机设备中的客户端的推送通道为通道b2,通道b1推送消息的速率为8000条/秒,通道b2推送消息的速率为2000条/秒,此时,可从一万条待推送消息中选择8000条消息添加到推送通道b1的缓冲对列中,选择2000条消息添加到推送通道b2的缓冲对列中。

步骤103,对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。

具体地,当各推送通道的缓冲队列中添了相应通道对应条数的目标消息后,进一步的,通过相应的推送通道将消息推送至对应的客户端。

本申请实施例的消息推送方法,通过根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道,进而根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中,最终对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。该方法将推送消息的通道分为多个缓冲队列,进而将待推送消息通过相应的缓冲队列进行推送,避免了由于推送通道的速率有限,导致各推送通道出现消息拥堵的情况,从而缓解了消息推送过程中的消息堆积现象。

为了清楚说明上一实施例,本实施例提供了另一种消息推送方法,图2为本申请实施例所提供的另一种消息推送方法的流程示意图。

如图2所示,该消息推送方法可以包括以下步骤:

步骤201,对各条待推送消息,查询需推送至的客户端的标签。

需要说明的是,客户端的标签,是服务器在没有待推送消息或者推送消息的间隙离线查询各客户端对应的推送通道生成的,是用于对客户端进行唯一标识的。其中,标签可以包含有计算机设备的设备信息、用户注册信息、客户端的信息等等。

由于每一个计算机设备对应唯一的设备号,每一个客户端也都有唯一的包名,因此,用户在计算机设备上下载客户端时,该计算机设备的设备号和客户端的包名就可以构成客户端的标签,服务器通过查找设备号与包名就可以定位到某个设备的某一客户端。

具体地,各条待推送消息需推送至的客户端是固定,服务器向不同操作系统的计算机设备下载的客户端推送消息时,适配于不同的推送通道,因此,可通过查询需推送至的客户端的标签,来确定待推送消息适配的推送通道。

步骤202,判断是否查询到需推送至的客户端的标签,如果未查询到需推送至的客户端的标签,则执行步骤203;如果能够查询到需推送至的客户端的标签,则执行步骤204。

具体地,当有待推送消息需推送至客户端时,客户端对应的服务器通过查询待推送消息需推送至的客户端的标签,进而判断是否查询到需推送至的客户端的标签。

步骤203,在线查询客户端的推送通道根据查询到的推送通道,为相应客户端添加标签。

本申请实施例中,当用户首次下载该客户端时,由于服务器没有预先为该用户下载的客户端设置标签,因此,服务器没有查询到待推送消息需推送至的客户端的标签,此时,可以在线查询客户端的推送通道,根据查询到的推送通道,为相应客户端添加标签,进而继续执行步骤205。

可以理解为,待推送消息需推送至的客户端对应的计算机设备的操作系统不同时,向客户端推送消息的推送通道也不相同,当服务器没有查询到待推送消息需推送至的客户端的标签,可以通过确定的客户端的推送通道,为相应的客户端添加标签。

步骤204,根据查询到的标签,确定各条待推送消息适配的推送通道。

本申请实施例中,由于客户端的标签是根据各客户端对应的推送通道生成的,因此,可根据查询到的标签,确定各条待推送消息适配的推送通道。

步骤205,根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息。

本申请实施例中,当确定各条待推送消息适配的推送通道后,可以根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,具体的执行过程可参见上述实施例中步骤102,在此不再赘述。

步骤206,查询目标消息的优先级。

其中,目标消息的优先级,是根据待推送消息的重要程度预先设置的,也就是说待推送消息携带有优先级的信息。

具体地,从各推送通道所适配的待推送消息中获取相应条数的目标消息后,进一步的查询各目标消息的优先级顺序,从而根据消息的优先级顺序对各目标消息进行推送。

步骤207,根据目标消息优先级,从目标消息所适配推送通道的至少两个缓冲队列中,确定与优先级匹配的缓冲队列。

本申请实施例中,各推送通道又被拆分为至少两个缓冲队列,并且每一个缓冲队列推送消息的优先级不同,推送消息的速率也不相同。因此,在对目标消息进行推送时,可以根据目标消息的优先级,从目标消息所适配推送通道的至少两个缓冲队列中,确定与优先级匹配的缓冲队列。

需要说明的是,推送通道的各缓冲队列是有优先级顺序的,并且高优先级的目标消息与所适配推送通道的高优先级的缓冲队列相匹配,低优先级的目标消息与所适配推送通道的低优先级的缓冲队列相匹配。

步骤208,将目标消息添加到与优先级匹配的缓冲队列中。

本申请实施例中,在对待推送目标消息进行推送时,根据目标消息的优先级,从目标消息所适配推送通道的至少两个缓冲队列中,确定与优先级匹配的缓冲队列,将目标消息添加到与优先级匹配的缓冲队列中,优先推送高优先级的目标消息,进而对各目标消息的推送做优先级控制。

举例说明,假如与某一推送通道所适配的待推送消息中有目标消息x1、x2、x3,通过查询得知目标消息的优先级顺序为x1<x2<x3,该推送通道被拆分为缓冲队列y1、y2、y3,缓冲队列的优先级顺序为y1>y2>y3,根据目标消息的优先级确定与优先级匹配的缓冲队列,即目标消息x3与缓冲队列y1相匹配,目标消息x2与缓冲队列y2相匹配,目标消息x1与缓冲队列y3相匹配,进一步的,将目标消息添加到与优先级匹配的缓冲队列中,进而使得高优先级的消息先推送到对应的客户端。

步骤209,对同一推送通道的各缓冲队列,根据优先级顺序,对各缓冲队列中的目标消息进行消息格式转换。

需要说明的是,由于各缓冲队列推送目标消息的格式不通过,因此,将目标消息添加到与优先级匹配的缓冲队列后,需要对各缓冲队列中的目标消息进行消息格式转换,使得各目标消息转换成不同推送通道相应的数据。

具体地,对同一推送通道的各缓冲队列,若高优先级的缓冲队列中目标消息的条数不为零,则说明高优先级缓冲队列中存在待推送的高优先级的目标消息,需要对高优先级的缓冲队列中的目标消息进行消息格式转换,使得高优先级的缓冲队列中的目标消息格式转换成适合该缓冲队列推送的格式。直至高优先级的缓冲队列中目标消息的条数为零时,对低优先级的缓冲队列中的目标消息进行消息格式转换。

步骤210,通过相应的推送通道,对格式转换后的目标消息进行推送。

本申请实施例中,对于格式转换后的目标消息,通过相应的推送通道进行推送至对应的客户端。

本申请实施例的消息推送方法,通过对各条待推送消息,查询需推送至的客户端的标签,判断是否查询到需推送至的客户端的标签,当查询到需推送至的客户端的标签后,根据查询到的标签,确定各条待推送消息适配的推送通道,根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,进一步的,查询目标消息的优先级,根据目标消息优先级,从目标消息所适配推送通道的至少两个缓冲队列中,确定与优先级匹配的缓冲队列,再将目标消息添加到与优先级匹配的缓冲队列中,对同一推送通道的各缓冲队列,根据优先级顺序,对各缓冲队列中的目标消息进行消息格式转换,最终通过相应的推送通道,对格式转换后的目标消息进行推送。由此,通过查询待推送目标消息的优先级顺序,进而将目标消息添加到与优先级匹配的缓冲队列中,使得高优先级的目标消息可以随时插队,得到优先推送,从而解决了现有技术中各推送通道的推送速率受到限制,导致待推送消息堆积,使得高优先级的消息无法及时推送出去的技术问题。

为了实现上述实施例,本申请还提出一种消息推送装置。

图3为本申请实施例提供的一种消息推送装置的结构示意图。

如图3所示,该消息推送装置100包括:查询模块110、获取模块120以及推送模块130。

查询模块110,用于根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道。

获取模块120,用于根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中。

推送模块130,用于对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。

作为一种可能的实现方式,参见图4,获取模块120,还可以包括:

查询单元121,用于查询目标消息的优先级;

第一确定单元122,用于根据优先级,从目标消息所适配推送通道的至少两个缓冲队列中,确定与优先级匹配的缓冲队列。

添加单元123,用于将目标消息添加到与优先级匹配的缓冲队列中。

作为另一种可能的实现方式,推送模块130,还可以包括:

转换单元131,用于对同一推送通道的各缓冲队列,根据优先级顺序,对各缓冲队列中的目标消息进行消息格式转换。

推送单元132,用于通过相应的推送通道,对格式转换后的目标消息进行推送。

作为另一种可能的实现方式,转换单元131,具体用于对同一推送通道的各缓冲队列,若高优先级的缓冲队列中目标消息的条数不为零,对所述高优先级的缓冲队列中的目标消息进行消息格式转换,直至所述高优先级的缓冲队列中目标消息的条数为零时,对低优先级的缓冲队列中的目标消息进行消息格式转换。

作为另一种可能的实现方式,查询模块110,可以包括:

第一查询单元111,用于对各条待推送消息,查询需推送至的客户端的标签;其中,标签是通过离线查询各客户端对应的推送通道生成的。

第二确定单元112,用于根据标签,确定各条待推送消息适配的推送通道。

作为另一种可能的实现方式,查询模块110,还可以包括:

第二查询单元113,用于在未查询到客户端的标签,在线查询客户端的推送通道。

添加单元114,用于根据查询到的推送通道,为相应客户端添加标签。

本申请实施例的消息推送装置,通过根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道,再根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中,进而对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。该方法将推送消息的通道分为多个缓冲队列,进而将待推送消息通过相应的缓冲队列进行推送,避免了由于推送通道的速度有限,导致各推送通道出现消息拥堵的情况,从而缓解了消息推送过程中的消息堆积现象。

需要说明的是,前述对消息推送方法实施例的解释说明也适用于该实施例的消息推送装置,此处不再赘述。

为了实现上述实施例,本申请还提出一种消息推送系统。

图5为本申请实施例提供的一种消息推送系统的结构示意图。

如图5所示,该消息推送系统200包括缓冲层2100和推送层2300。

缓冲层2100,用于根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道;根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中;

推送层2300,用于对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。

其中,对应同一推送通道的缓冲队列为至少两个,至少两个缓冲队列具有不同的优先级。

作为另一种可能的实现方式,该消息推送系统,还包括:

转换层2200,用于对同一推送通道的各缓冲队列,根据优先级顺序,对各缓冲队列中的目标消息进行消息格式转换。

作为一种示例,参见图6,图6为本申请实施例提供的一种消息推送系统的结构示意图。

如图6所示,该消息推送系统包括:缓冲层、转换层以及推送层。

其中,缓冲层,是消息推送系统层的入口,并且不同推送渠道有至少两个相互独立的缓冲层做推送通道隔离单独控速,推送渠道拆分成多个优先级缓冲队列,按照目标消息优先级不同分别插入到不同的缓冲队列,做优先级控制,使得高优先级的目标消息能够及时的推送出去。

此外,当没有查询到需推送至的客户端的标签时,此时需推送至的客户端可能为新用户,可以通过在线访问服务器查询适配的推送通道,为该客户端添加相应的标签,然后将待推送目标消息插入相应通道的缓冲队列中。

图6中的老用户是指已在服务器中注册的,能够查询到相应标签的客户端;新用户是指首次使用该客户端,未在服务器中注册的,不能够查询到相应标签的客户端。

转换层,用于消息格式转换的,将待推送消息转换成不同推送通道相应的格式数据。

推送层,用于将各待推送消息推送至对应的客户端,并在消息推送系统的出口层加控速队列保证推送到各个通道的速度更加平滑。

需要说明的是,图6中的消息推送系统仅作为一个示例,系统中的计算机设备可以为个人电脑(personalcomputer,简称pc)、云端设备、移动设备等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备,在此不做限定。图6中的推送消息的通道和缓冲队列的个数也仅作为一种示例。

本申请实施例的消息推送系统,通过根据各条待推送消息需推送至的客户端,查询各条待推送消息适配的推送通道,进而根据各推送通道的推送速率,从各推送通道所适配的待推送消息中获取相应条数的目标消息,并将目标消息添加到相应推送通道的缓冲队列中,最终对各推送通道的缓冲队列中的目标消息,通过相应的推送通道进行消息推送。由此,避免了由于推送通道的速度有限,导致各推送通道出现消息拥堵的情况,从而缓解了消息推送过程中的消息堆积现象。

为了实现上述实施例,本申请还提出了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述实施例中任一所述的消息推送方法。

为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,实现如上述实施例中任一所述的消息推送方法。

为了实现上述实施例,本申请还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上述实施例中任一所述的消息推送方法。

图7示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图7显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

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