本发明涉及b/s架构中数据推送技术领域,尤其涉及一基于长连接的数据推送方法及系统。
背景技术
现有的b/s架构中,主要采用http协议,而http协议采用的是“请求与应答”模式,即,浏览器发送请求,服务器接收到浏览器发送的请求之后,便将最新的数据推送给浏览器,也就是,需要用户主动的去刷新以请求浏览器,才能获取到最新的数据。
从上述描述可得知,当浏览器未向服务器发送请求时,而浏览器已经更新了与浏览器相关的数据(如浏览器页面上显示的数据)时,在客户端显示的并不是最新的数据,在一些业务场景下,会影响到用户体验。如电商平台中,当用户通过浏览器查看达到商品价格或数量,而在下单之前,服务器中该商品的价格或数量已经更新,导致用户下单时商品的数量或价格在浏览器上观看到商品的数量及价格不同,导致用户购买时的价格与观看到的价格不同或者直接导致用户购买不到该产品,在很大程度上影响了用户体验。
综上分析,现有技术方案中的b/s架构中缺少一种能使浏览器展示的数据为其对应的服务器中的最新数据的数据推送方法及系统。
技术实现要素:
本发明实施例提供一种基于长连接的数据推送方法及系统,以解决现有技术中缺少一种能自动更新数据的数据推送方法的技术问题。
根据本发明实施例提供一种基于长连接的数据推送方法,应用于服务器端,包括:
接收浏览器发送的建立长连接的请求;
根据所述请求,选择服务器与所述浏览器建立长连接;
根据所述服务器中的数据的更新情况,反馈相应的数据信息至所述浏览器。
在一个实施例中,所述根据所述服务器中的数据的更新情况,反馈相应的数据信息至所述浏览器,包括:
若在预设时间段内,所述服务器中的与所述浏览器相关的数据更新,则将所述更新的数据推送至所述浏览器:
若在预设时间段内,所述服务器中的与所述浏览器相关的数据未更新,则将长连接状态发送至所述浏览器。
在一个实施例中,所述选择服务器与所述浏览器建立长连接之后,还包括:
将选择的服务器与所述浏览器建立的长连接状态存储于分布式缓存中。
在一个实施例中,所述将选择的服务器与所述浏览器建立的长连接状态存储于分布式缓存中,具体包括:
采用哈希值算法将所述连接状态存储于分布式缓存的节点中。
在一个实施例中,所述接收浏览器发送的建立长连接的请求之前,还包括:
接收浏览器的当前页面的注册。
根据本发明实施例提供的一种基于长连接的数据推送方法,应用于浏览器端,包括:
发送与服务器建立长连接的请求;
根据所述请求,与所述服务器建立长连接;
接收所述服务器发送的相应的数据信息;
当执行完对所述相关信息的操作之后,再次发送与服务器建立长连接的请求。
在一个实施例中,所述接收所述服务器发送的相关数据,具体包括:
在预设时间段内,若所述服务器中的与所述浏览器相关的数据更新时,则接收所述更新的数据;
在预设时间段内,若所述服务器中的与所述浏览器相关的数据未更新,则接收所述长连接的状态数据。
在一个实施例中,在发送与服务器建立长连接的请求之前,还包括:
当所述浏览器与推送服务器的连接正常时,将浏览器的当前页面注册到服务器。
根据本发明实施例提供的一种基于长连接的数据推送系统,应用于服务器端,包括:
第一接收模块,用于接收浏览器发送的长连接请求;
第一通讯模块,用于根据所述长连接请求,选择服务器与所述浏览器建立长连接;
反馈模块,用于根据所述服务器中的数据的更新情况,反馈相应的数据信息至所述浏览器。
根据本发明实施例提供的一种基于长连接的数据推送系统,应用于浏览器端,包括:
发送模块,用于发送与服务器建立长连接的请求;
第二通讯模块,用于与所述连接请求所请求的服务器建立长连接;
第二接收模块,用于接收与浏览器建立长连接的服务器发送的相应的数据信息;
所述发送模块,还用于当执行完对所述相关信息的操作之后,再次发送与服务器建立长连接的请求。
根据本发明实施例提供的一种基于长连接的数据推送设备,应用于服务器端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的基于长连接的数据推送方法的步骤。
根据本发明实施例提供的一种基于长连接的数据推送设备,应用于浏览器端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的基于长连接的数据推送方法的步骤。
本发明实施例采用的上述至少一个技术方案能够达到以下有益效果:
本发明实施例提供的基于长连接的数据推送方法,在接收到浏览器发送的建立长连接的请求之后,选择服务器与所述浏览器建立长连接,并根据服务器中的与所述浏览器相关的数据的更新情况,反馈相关的数据至浏览器。本方案,服务器在与浏览器建立长连接之后,直接发送与所述浏览器相关的数据的更新情况,如此,有效保障了浏览器上的数据及时更新,避免了数据更新的延迟,有效保障浏览器上展示给用户的是服务器中的最新的数据,极大地提高了用户体验效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例一种基于长连接的数据推送方法的流程图;
图2为本发明实施例中浏览器与对应的服务器建立长连接的示意图;
图3为本发明实施例一种基于长连接的数据推送方法的流程图;
图4为本发明实施例中服务器反馈更新后的数据信息给浏览器的示意图;
图5为本发明实施例中服务器反馈长连接状态给浏览器的示意图;
图6为本发明实施例一种基于长连接的数据推送方法的流程图;
图7为本发明实施例一种基于长连接的数据推送方法的流程图;
图8为本发明实施例一种基于长连接的数据推送方法的流程图;
图9为本发明实施例一种基于长连接的数据推送方法的流程图;
图10为本发明实施例基于长连接的数据推送系统的模块示意图;
图11为本发明实施例基于长连接的数据推送系统的模块示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明各实施例提供的技术方案。
参见图1所示,本发明实施例公开一种基于长连接的数据推送方法,应用于服务器端,所述方法主要包括:
步骤s12、接收浏览器端发送的建立长连接的请求;
在本发明实施例中,在服务器与浏览器建立长连接之前,服务器首先要接收到浏览器发送的请求与其建立长连接的请求。
浏览器发发送的建立长连接的请求可以随同浏览器发送的数据请求一同发出。
在本发明实施例中,在服务器中存储有浏览器端需要及时更新的数据,而该实时更新的数据是通过浏览器展示给用户。如,在电商平台中,商品的信息,如价格、数量等实时更新,而该更新的数据通过浏览器展示给用户
步骤s14、根据所述请求,选择服务器与所述浏览器建立长连接;
在本发明实施例中,可将不同的数据存储在不同的服务器中,在接收到浏览器端发送的建立长连接的请求时,可选择与所述请求相对应的服务器来与所述浏览器建立长连接,也就是根据所述长连接请求中所请求的数据的存储位置选择服务器,以与所述浏览器建立长连接。
如接收到的与浏览器a建立长连接的请求所请求的数据为数据a,而数据a存储于服务器aa中,则根据接收到的请求所请求的数据a的存储位置(服务器aa),将浏览a与服务器aa建立长连接;而当接收到的服务器b建立长连接的请求所请求的数据为数据b,而数据b存储于服务器bb中,则根据接收到的请求所请求的数据b的存储位置(服务器bb),将浏览器b与服务器bb建立长连接,具体参见图2所示。
步骤s16、根据所述服务器中的数据的更新情况,反馈相关的数据信息至所述浏览器。
在本发明实施例中,服务器端在接收到浏览器发送的建立长连接的请求之后,根据所述请求,选择匹配的服务器与所述浏览器连接,在完成浏览器与服务器之间的连接之后,并不是立即反馈连接状态信息给浏览器,而是根据与浏览器建立长连接的服务器中存储的与所述浏览器相关的数据的更新情况,反馈相应的数据信息给服务器。
本发明实施例提供的基于长连接的数据推送方法,在接收到浏览器发送的建立长连接的请求之后,选择服务器与所述浏览器建立长连接,并根据服务器中的与所述浏览器相关的数据的更新情况,推送相应的数据信息至浏览器。本技术方案,浏览器与服务器建立的是长连接,而服务器在与浏览器建立长连接之后,直接发送与所述浏览器相应的数据信息,如此,有效保障了浏览器上的数据及时更新,避免了数据更新的延迟,有效保障浏览器上展示给用户的是服务器中的最新的数据,极大地提高了用户体验效果。
参见图3所示,在一个实施例中,所述步骤s16,具体包括:
步骤s161、若在预设时间段内,所述服务器中的与所述浏览器相关的数据更新,则将所述更新的数据反馈至所述浏览器:
在本发明实施例中,当服务器与浏览器建立长连接之后,并不是立即反馈长连接状态等数据给浏览器,而是要在预设时间段之后,检查存储在服务器中的与浏览器相关的数据是否有更新,如果有更新,则将更新后的数据反馈至所述浏览器;如对于标号为01的商品,其价格为500元,而由于换季清仓等原因,现在对其价格作出调整,将其单价由500元调整至250元,而在该价格更新前的0.1s,接收到浏览器c发送的建立长连接的数据请求,若预设时间间隔为0.2s,则该存储标号为01商品的价格的服务器在该商品的价格更新后的0.1s,将更新后的数据信息(标号为01的商品的价格)反馈给浏览器c。具体参见图4所示示意图。
步骤s162、若在预设时间段内,所述服务器中的与所述浏览器相关的数据未更新,则将长连接状态发送至所述浏览器。
参见图5所示,若时间间隔为0.2s,而在浏览器d发送建立长连接的请求之后的0.2s之内,与浏览器对应的服务器中的与浏览器d相关的数据并未更新,则在0.2s之后,浏览器d将长连接状态发送至浏览器d。具体参见图5所示。
在一个实施例中,参见图6所示,在所述步骤s14之后,还包括:
步骤s15、将选择的服务器与所述浏览器建立的长连接状态存储于分布式缓存中。
在本发明实施例中,在选择具体的服务器与浏览器建立长连接之后,将建立的该长连接的状态存储在分布式缓存中,而若在预设时间间隔之后,该与浏览器建立长连接的服务器并未更新与浏览器相关的数据,则从所述分布式缓存中调取该长连接状态并将该长连接状态反馈至浏览器。
在一个实施例中,所述步骤s15具体包括:
采用哈希值算法的方法将所述连接状态存储于分布式缓存的节点中。
在本发明实施例中,分布式缓存可包括若干个节点,而具体是将该长连接状态存储于哪一个节点中,可以根据哈希值算法来确定,具体方法为:
首先,对服务器及节点分别进行编号,采用从1开始的整数对其进行编号,采用服务器的编号作为key值;采用从0开始的整数对节点进行编号;然后,计算key%n(节点的个数),得到的值为几,则将该编号对应的服务器与浏览器的连接状态存储到相应编号的节点中。
在本发明实施例中,采用哈希值算法来确定将服务器与浏览器的连接状态具体存储在哪个节点中,有效均衡了各节点的存储量。
在一个实施例中,在接收浏览器发送的建立长连接的请求之前,所述方法还包括:
步骤s11、接收浏览器的当前页面的注册。
在本发明实施例中,在接收浏览器发送的建立长连接的请求之前,服务器接收浏览器的通过ajax发送的对当前页面的注册请求,以完成对浏览器的当前页面的注册,以使服务器与浏览器建立关系。此关系可以但不仅限为浏览器与服务器的对应关系。
在本发明实施例中,在接收浏览器的当前页面的注册之前,还包括:
检测消息推送服务器与浏览器的连接正常。
在本发明实施例中,所述相应的反馈信息通过消息推送服务器进行发送,因此,需要检测消息推送服务器与浏览器的连接是否正常,只有在正常的情况下,消息推送服务器才能够将相应的反馈信息(更新的数据或者长连接的状态)推送至浏览器。
对应上述服务器端的基于长连接的数据推送方法,本发明实施例还提供了一种应用于浏览器端基于长连接的数据推送方法,图7所示为本发明一实施例中应用于浏览器端的基于长连接的数据推送方法,如图7所示,该方法包括:
步骤s22、发送与服务器建立长连接的请求;
步骤s24、根据所述请求,与所述服务器建立长连接;
步骤s26、接收所述服务器发送的相关信息;
步骤s28、当执行完对所述相关信息的操作之后,再次发送与服务器建立长连接的请求。
在一个实施例中,参见图8所示,所述步骤s26,具体包括:
步骤s261、在预设时间段内,若所述服务器中的与所述浏览器相关的数据更新时,则接收所述更新的数据;
步骤s262、在预设时间段内,若所述服务器中的与所述浏览器相关的数据未更新,则接收所述长连接的状态数据。
在一个实施例中,若所述相关的数据信息为更新的数据,则对更新的数据的操作可以为显示等处理,则在对该更新的数据操作完之后,继续发送与服务器建立长连接的请求;而若相关的数据信息为长连接的状态,则可以在接收到该长连接的状态之后,继续发送建立长连接的请求。
在一个实施例中,参见图9所示,在步骤s22之前,所述方法还包括:
步骤s21、将浏览器的当前页面注册到服务器。
当浏览器与推送服务器的连接正常时,将浏览器的当前页面注册到服务器。
在一个实施例中,浏览器通过ajax发送请求,以检测其与消息推送服务器的连接是否正常。浏览器通过ajax发送的请求可以是心跳检测请求。若心跳检测请求正常,则表明浏览器与消息推送服务器的连接正常。
本发明实施例提供的基于长连接的数据推送方法,应用于浏览器端,浏览器端在发送与服务器建立长连接的请求并与服务器建立长连接之后,接收服务器发送的相应的数据信息,而不是直接接收连接状态。在接收到服务器发送的相关信息并完成相关的操作之后,继续向服务器短发送建立长连接的请求,如此,有效保证浏览器端显示的数据信息为服务器中最新的数据信息,避免了现有技术方案b/s架构中每次需获取到服务器中的最新数据时均需用户主动去刷新浏览器的技术问题。
对应上述应用于服务器端的基于长连接的数据推送方法,本发明实施例还提供了一种基于长连接的数据推送系统,图8所示为本发明一实施例中基于长连接的数据推送系统的模块图,如图10所示,该系统包括:
第一接收模块102,用于接收浏览器发送的长连接请求;
第一通讯模块104,用于根据所述长连接请求,选择服务器与所述浏览器建立长连接;
反馈模块106,用于根据所述服务器中的数据的更新情况,反馈相应的数据信息至所述浏览器。
在一个实施例中,所述推送模块包括第一推送单元和第二推送单元;
所述第一推送单元,用于若在预设时间段内,所述服务器中的与所述浏览器相关的数据更新,则将所述更新的数据反馈至所述浏览器:
所述第二推送单元,用于若在预设时间段内,所述服务器中的与所述浏览器相关的数据未更新,则将长连接状态反馈至所述浏览器。
在一个实施例中,该系统还包括:
储存模块,用于将选择的服务器与所述浏览器建立的长连接状态存储于分布式缓存中。
在一个实施例中,所述储存模块采用哈希值算法将所述连接状态存储于分布式缓存的节点中。
在一个实施例中,所述第一接收模块102,还用于,接收浏览器的当前页面的注册。
本发明实施例提供的基于长连接的数据推送系统,可应用于服务器端,反馈模块根据所述服务器中的数据的更新情况,反馈相应的数据信息至浏览器,而不是直接反馈连接的状态信息至浏览器,本技术方案有效保证服务器及时向浏览器推送最新的数据。
对应上述应用于浏览器端的基于长连接的数据推送方法,本发明实施例还提供了一种基于长连接的数据推送系统,图11所示为本发明一实施例中基于长连接的数据推送系统的模块图,如图11所示,该系统包括:
发送模块112,用于发送与服务器建立长连接的请求;
第二通讯模块114,用于与所述连接请求所请求的服务器建立长连接;
第二接收模块116,用于接收与浏览器建立长连接的服务器发送的相应的数据信息;
所述发送模块112,还用于当执行完对所述相关信息的操作之后,再次发送与服务器建立长连接的请求。
在一个实施例中,接收模块116包括第一接收单元和第二接收单元:
所述第一接收单元,用于在预设时间段内,若所述服务器中的与所述浏览器相关的数据更新时,则接收所述更新的数据;
所述第二接收单元,用于在预设时间段内,若所述服务器中的与所述浏览器相关的数据未更新,则接收所述长连接的状态数据。
在一个实施例中,所述系统还包括:
注册模块,用于当所述浏览器与推送服务器的连接正常时,将浏览器的当前页面注册到服务器。
本发明实施例提供的应用于浏览器端的基于长连接的数据推送系统,发送模块在发送与服务器建立长连接的请求之后,第二通讯模块与服务器建立长连接,接收模块接收与浏览器建立长连接的服务器发送的相应的数据信息,在完成对相应的数据信息操作之后,继续发送建立长连接的请求。如此,可有效保障浏览器的当前页面展现的是服务器中的最新的数据信息,有效避免了因浏览器显示信息的延迟而影响用户体验的问题。
相应于上述应用于服务器端的基于长连接的数据推送方法、系统,本发明实施例提供一种基于长连接的数据推送设备,应用于服务器端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时,能够实现以下流程:
接收浏览器发送的建立长连接的请求;
根据所述请求,选择服务器与所述浏览器建立长连接;
根据所述服务器中的数据的更新情况,反馈相应的数据信息至所述浏览器。
可选的,计算机应用程序在被处理器执行时,
所述根据所述服务器中的数据的更新情况,反馈相应的数据信息至所述浏览器,包括:
若在预设时间段内,所述服务器中的与所述浏览器相关的数据更新,则将所述更新的数据反馈至所述浏览器:
若在预设时间段内,所述服务器中的与所述浏览器相关的数据未更新,则将长连接状态反馈至所述浏览器。
可选的,计算机应用程序在被处理器执行时,
所述选择服务器与所述浏览器建立长连接之后,还包括:
将选择的服务器与所述浏览器建立的长连接状态存储于分布式缓存中。
可选的,计算机应用程序在被处理器执行时,
所述将选择的服务器与所述浏览器建立的长连接状态存储于分布式缓存中,具体包括:
采用哈希值算法的方法将所述连接状态存储于分布式缓存的节点中。
可选的,计算机应用程序在被处理器执行时,
所述接收浏览器发送的建立长连接的请求之前,还包括:
接收浏览器的当前页面的注册。
本发明实施例提供的应用于服务器端的基于长连接的数据推送设备,处理器在接收到浏览器发送的建立长连接的请求的操作之后,执行选择服务器与所述浏览器建立长连接的操作,及根据服务器中的与所述浏览器相关的数据的更新情况,推送相关的数据至浏览器的操作。本方案,处理器在执行服务器在与浏览器建立长连接的操作之后,执行根据所述浏览器相关的数据的更新情况,反馈相应的数据信息至浏览器的操作。如此,有效保障了浏览器上的数据及时更新,避免了数据更新的延迟,有效保障浏览器上展示给用户的是服务器中的最新的数据,极大地提高了用户体验效果。
相应于上述应用于浏览器端的基于长连接的数据推送方法、系统,本发明实施例提供一种基于长连接的数据推送设备,应用于浏览器端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时,能够实现以下流程:
发送与服务器建立长连接的请求;
根据所述请求,与所述服务器建立长连接;
接收所述服务器反馈的相应的数据信息;
当执行完对所述相关信息的操作之后,再次发送与服务器建立长连接的请求。
可选的,所述计算机程序在被处理器执行时,
所述接收所述服务器发送的相关数据,具体包括:
在预设时间段内,若所述服务器中的与所述浏览器相关的数据更新时,则接收所述更新的数据;
在预设时间段内,若所述服务器中的与所述浏览器相关的数据未更新,则接收所述长连接的状态数据。
可选的,所述计算机程序在被处理器执行时,
在发送与服务器建立长连接的请求之前,还包括:
当所述浏览器与推送服务器的连接正常时,将浏览器的当前页面注册到服务器。
本发明实施例提供的应用于浏览器端的基于长连接的数据推送设备,处理器在执行浏览器端在发送与服务器建立长连接的请求并与服务器建立长连接的操作之后,执行接收服务器发送的相关信息的操作,而不是直接接收连接状态。在接收到服务器发送的相关信息并完成相关的操作之后,继续执行向服务器短发送建立长连接的请求的操作,如此,有效保证浏览器端显示的数据信息为服务器中最新的数据信息,避免了现有技术方案b/s架构中每次需获取到服务器中的最新数据时均需用户主动去刷新浏览器的技术问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。