消息推送方法、装置和系统
技术领域
本申请涉及互联网技术领域,特别涉及一种消息推送方法、装置和系统。
背景技术
虽然服务器推送技术很早就已经出现,但是由于之前的浏览器技术水平难以有效支持服务器推送技术,因此服务器推送技术并未广泛应用。随着AJAX技术(AsynchronousJava script and XML,一种创建交互式网页应用的网页开发技术)的发展和普及,浏览器可通过异步传输数据的方式实现网页的局部更新,解决了IE的加载显示问题。这为服务器推送技术提供了很好的技术支持,因此服务器推送技术已逐步应用在各个领域。例如,股票交易行情分析、聊天室和网页版在线游戏等均可通过服务器推送技术来实现。
通过AJAX技术实现服务器推送时,服务器端会阻塞请求直到有数据传递或超时才返回至客户端,并断开连接;客户端的JavaScript响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接;当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达,这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。但是,由于重新建立连接需要耗费一定的时间,因此在不断的消息推送过程中会因不断的断开-重新建立连接浪费大量时间。此外,由于受到服务器端单机HTTP请求的处理能力的限制,当HTTP请求量较大时,例如超过10万级别以上时,难以通过单台服务器完成请求的处理,需要通过大批量部署分布式及其集群服务器的方式处理,部署成本高,且易造成资源浪费。
发明内容
本申请旨在至少在一定程度上解决上述技术问题。
为此,本申请的第一个目的在于提出一种消息推送方法,该方法节省了消息推送时间,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
本申请的第二个目的在于提出一种消息推送装置。
本申请的第三个目的在于提出一种消息推送系统。
为达上述目的,根据本申请第一方面实施例提出了一种消息推送方法,包括:接收客户端的第一连接请求;根据所述第一连接请求建立并维持与所述客户端的连接;接收应用服务器反馈的推送消息;以及利用所维持的连接将所述推送消息转发至对应的客户端。
本申请实施例的消息推送方法,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
本申请第二方面实施例提供了一种消息推送装置,包括:第一接收模块,用于接收客户端的第一连接请求;连接模块,用于根据所述第一连接请求建立并维持与所述客户端的连接;第二接收模块,用于接收应用服务器反馈的推送消息;以及第一发送模块,用于利用所维持的连接将所述推送消息转发至对应的客户端。
本申请实施例的消息推送装置,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
本申请第三方面实施例提供了一种消息推送系统,包括:至少一个客户端,用于分别发送第一连接请求;代理服务器,用于接收所述第一连接请求,并根据所述第一连接请求建立并维持与所述客户端的连接,以及接收推送消息,并利用所维持的连接将所述推送消息转发至对应的客户端;以及应用服务器,用于向所述代理服务器发送所述推送消息。
本申请实施例的消息推送系统,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请一个实施例的消息推送方法的流程图;
图2为根据本申请另一个实施例的消息推送方法的流程图;
图3为根据本申请一个实施例的消息推送装置的结构示意图;
图4为根据本申请另一个实施例的消息推送装置的结构示意图;
图5为根据本申请一个具体实施例的消息推送装置的结构示意图;
图6为根据本申请一个实施例的消息推送系统的结构示意图;
图7为根据本申请一个实施例的消息推送系统的流程图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
下面参考附图描述根据本申请实施例的消息推送方法、装置和系统。
为了解决在传统服务器推送技术中需要集群服务器来处理大批量HTTP请求的问题,本申请提出了一种消息推送方法。
图1为根据本申请一个实施例的消息推送方法的流程图。如图1所示,根据本申请实施例的消息推送方法,可由代理服务器执行,该方法包括:
S101,代理服务器接收客户端的第一连接请求。
在本申请的实施例中,客户端可为浏览器等web网页应用程序,第一连接请求可为HTTP请求。第一连接请求中包括发送该第一连接请求的客户端的客户端标识信息。具体地,当用户终端需要接收应用服务器的推送消息时,首先需要通过用户终端中的客户端向代理服务器发送第一连接请求,以请求与代理服务器建立连接。其中,客户端标识信息为客户端ID等能够唯一标识客户端的信息;用户终端可为手机、笔记本电脑、平板电脑等移动终端,也可为台式电脑等电子设备等。
在本申请的一个实施例中,代理服务器可为NGINX(engine x)服务器,是一种高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。NGINX是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,其将源代码以类BSD(BerkeleySoftware Distribution,伯克利软件套件)许可证的形式发布,稳定性好、具有丰富的功能集、示例配置文件,并且系统资源消耗低。在本申请的其他实施例中,也可为其他具有相同或相似功能的代理服务器,本申请对此不做限定。
S102,代理服务器根据第一连接请求建立并维持与客户端的连接。
在本申请的实施例中,代理服务器在接收到第一连接请求之后,可根据第一连接请求与相应的客户端建立连接,并维持与相应的客户端的连接。
在本申请的一个实施例中,代理服务器在与相应的客户端建立连接之后,可将第一连接请求发送至推送网关,以使推送网关对第一连接请求进行解析以获取第一连接请求对应的客户端标识信息以及第一连接请求对应的路由信息。进而推送网关可建立并存储该客户端标识信息与该路由信息的对应关系,或者根据该客户端标识信息以及相应的路由信息对已经存储的对应关系进行更新。其中,路由信息为发送第一连接请求对应的IP地址、网络地址、网络掩码等能够唯一表明第一连接请求的连接地址的信息。
S103,代理服务器接收应用服务器反馈的推送消息。
在本申请的实施例中,应用服务器为产生推送消息的服务器。代理服务器通过推送网关接收应用服务器反馈的推送消息。具体地,当应用服务器产生推送消息时,可将该推送消息发送至推送网关。其中,推送消息中包括该推送消息的目标客户端的客户端标识信息,进而推送网关可根据该推送消息中的客户端的标识信息查询已经存储的客户端标识信息与路由信息的对应关系,以获取与目标客户端的客户端标识信息相应的路由信息,并根据获取到的路由信息将该推送消息发送至代理服务器。
S104,代理服务器将推送消息转发至对应的客户端。
在本申请的实施例中,代理服务器可根据推送消息中的客户端标识信息将推送消息发送至对应的客户端。客户端接收到代理服务器发送的推送消息后,可对web网页相应的位置进行局部更新,以显示该推送消息。
应当理解,在上述方法的执行过程中,代理服务器与客户端建立连接之后,可一直维持该连接。
本申请实施例的消息推送方法,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
为了进一步减小应用服务器的请求数据量,可通过代理服务器将来自多个客户端的多个第一连接请求拼接为第二连接请求发送至推送网关。图2为根据本申请另一个实施例的消息推送方法的流程图。如图2所示,
S201,代理服务器接收多个客户端的多个第一连接请求。
在本申请的实施例中,代理服务器可分别接收来自多个客户端发送的多个第一连接请求。
S202,代理服务器分别根据多个第一连接请求建立并维持与多个客户端的连接。
S203,代理服务器将来自多个客户端的多个第一连接请求拼接成第二连接请求。
具体地,代理服务器在接收来自多个客户端的多个第一连接请求时,需要获取接收到的多个第一连接请求的个数,并判断接收到的多个第一连接请求的个数是否达到预设阈值(例如100个),如果达到,则可将接收到的多个第一连接请求拼接为第二连接请求。或者,获取当前时间与上一次拼接第二连接请求的时间的时间隔,并判断该时间将是否大于预设时间阈值(例如50毫秒),如果大于,则即使接收到的第一连接请求的个数未达到预设阈值,也将在上一次拼接第二连接请求的时间到当前时间内接收到的多个第一连接请求拼接为本申请第二连接请求。其中,预设阈值与预设时间阈值可根据代理服务器的请求处理能力以及实际使用情况进行设定,本申请对二者的取值不做具体限定。
S204,代理服务器将第二连接请求发送至推送网关。
在本申请的实施例中,代理服务器在将第二连接请求发送至推送网关之后,推送网关对第二连接请求进行解析以获取多个第一连接请求对应的多个客户端标识信息以及多个第一连接请求对应的多个路由信息。进而推送网关可建立并存储多个客户端标识信息与多个路由信息的对应关系,或者根据多个客户端标识信息以及相应的多个路由信息对已经存储的对应关系进行更新。
S205,代理服务器接收推送网关反馈的推送信息。
在本申请的实施例中,如果应用服务器产生推送消息,会将该推送消息发送至推送网关,其中该推送消息中包括其对应的客户端标识信息,即推送消息的目标客户端的客户端标识信息。进而推送网关可根据目标客户端的客户端标识信息以及多个客户端标识信息和多个路由信息的对应关系获取各个推送消息对应的路由信息,并根据获取到的路由信息将推送消息分别发送至代理服务器相应的端口。
S206,代理服务器将推送消息转发至对应的客户端。
在本申请的实施例中,代理服务器可根据推送消息中的客户端标识信息将推送消息发送至对应的客户端。客户端接收到代理服务器发送的推送消息后,可对web网页相应的位置进行局部更新,以显示该推送消息。
本申请实施例的消息推送方法,通过代理服务器将来自多个客户端的第一连接请求拼接为一个第二连接请求,并通过推送网关发送至应用服务器,大大减小了应用服务器处理连接请求的数据量,突破了传统方法单机处理请求的瓶颈问题,减小了应用服务器的压力,进一步降低了集群服务器的数量,节约成本和资源。
为了实现上述实施例,本申请还提出一种消息推送装置。
图3为根据本申请一个实施例的消息推送装置的结构示意图。
如图3所示,根据本申请实施例的消息推送装置,包括:第一接收模块110、连接模块120、第二接收模块130以及第一发送模块140。
具体地,第一接收模块110用于接收客户端的第一连接请求。
在本申请的实施例中,客户端可为浏览器等web网页应用程序,第一连接请求可为HTTP请求。第一连接请求中包括发送该第一连接请求的客户端的客户端标识信息。具体地,当用户终端需要接收应用服务器的推送消息时,首先需要通过用户终端中的客户端向代理服务器发送第一连接请求,以请求与代理服务器建立连接。其中,客户端标识信息为客户端ID等能够唯一标识客户端的信息;用户终端可为手机、笔记本电脑、平板电脑等移动终端,也可为台式电脑等电子设备等。
连接模块120用于根据本申请第一连接请求建立并维持与本申请客户端的连接。在本申请的实施例中,第一接收模块110在接收到第一连接请求之后,可根据第一连接请求与相应的客户端建立连接,并维持与相应的客户端的连接。
在本申请的一个实施例中,第一接收模块110在与相应的客户端建立连接之后,可将第一连接请求发送至推送网关,以使推送网关对第一连接请求进行解析以获取第一连接请求对应的客户端标识信息以及第一连接请求对应的路由信息。进而推送网关可建立并存储该客户端标识信息与该路由信息的对应关系,或者根据该客户端标识信息以及相应的路由信息对已经存储的对应关系进行更新。其中,路由信息为发送第一连接请求对应的IP地址、网络地址、网络掩码等能够唯一表明第一连接请求的连接地址的信息。
第二接收模块130用于接收应用服务器反馈的推送消息。在本申请的实施例中,应用服务器为产生推送消息的服务器。第二接收模块130通过推送网关接收应用服务器反馈的推送消息。具体地,当应用服务器产生推送消息时,可将该推送消息发送至推送网关。其中,推送消息中包括该推送消息的目标客户端的客户端标识信息,进而推送网关可根据该推送消息中的客户端的标识信息查询已经存储的客户端标识信息与路由信息的对应关系,以获取与目标客户端的客户端标识信息相应的路由信息,并根据获取到的路由信息将该推送消息发送至第二接收模块130。
第一发送模块140用于将本申请推送消息转发至对应的客户端。在本申请的实施例中,第一发送模块140可根据推送消息中的客户端标识信息将推送消息发送至对应的客户端。客户端接收到第一发送模块140发送的推送消息后,可对web网页相应的位置进行局部更新,以显示该推送消息。
本申请实施例的消息推送装置,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
在本申请的一个实施例中,消息推送装置可为NGINX(engine x)服务器,是一种高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。NGINX是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,其将源代码以类BSD(BerkeleySoftware Distribution,伯克利软件套件)许可证的形式发布,稳定性好、具有丰富的功能集、示例配置文件,并且系统资源消耗低。在本申请的其他实施例中,也可为其他具有相同或相似功能的代理服务器,本申请对此不做限定。
图4为根据本申请另一个实施例的消息推送装置的结构示意图。
如图4所示,根据本申请实施例的消息推送装置,包括:第一接收模块110、连接模块120、第二接收模块130、第一发送模块140、拼接模块150和第二发送模块160。
具体地,拼接模块150用于将来自多个客户端的多个第一连接请求拼接成第二连接请求。拼接模块150在接收来自多个客户端的多个第一连接请求时,需要通过获取接收到的多个第一连接请求的个数,并判断接收到的多个第一连接请求的个数是否达到预设阈值(例如100个),如果达到,则可将接收到的多个第一连接请求拼接为第二连接请求。或者,获取当前时间与上一次拼接第二连接请求的时间的时间隔,并判断该时间将是否大于预设时间阈值(例如50毫秒),如果大于,则即使接收到的第一连接请求的个数未达到预设阈值,也将在上一次拼接第二连接请求的时间到当前时间内接收到的多个第一连接请求拼接为本申请第二连接请求。其中,预设阈值与预设时间阈值可根据代理服务器的请求处理能力以及实际使用情况进行设定,本申请对二者的取值不做具体限定。
更具体地,如图5所示,为根据本申请一个具体实施例的消息推送装置的结构示意图。拼接模块150可进一步包括第一获取单元151、第一判断单元152、第一拼接单元153、第二获取单元154、第二判断单元155和第二拼接单元156。
其中,第一获取单元151用于获取本申请多个第一连接请求的个数。
第一判断单元152用于判断本申请多个第一连接请求的个数是否达到预设阈值。
第一拼接单元153用于在本申请多个第一连接请求的个数达到本申请预设阈值时,将本申请多个第一连接请求拼接为本申请第二连接请求。
第二获取单元154用于获取当前时间与上一次拼接第二连接请求的时间的时间隔。
第二判断单元155用于判断本申请时间间隔是否大于预设时间阈值。
第二拼接单元156用于在本申请时间间隔大于本申请预设时间阈值时,将在上一次拼接第二连接请求的时间到本申请当前时间内接收到的多个第一连接请求拼接为本申请第二连接请求。
在本申请的一个实施例中,第二获取单元154、第二判断单元155和第二拼接单元156是可选的。
第二发送模块160用于将本申请第二连接请求发送至本申请推送网关。在本申请的实施例中,第二发送模块160在将第二连接请求发送至推送网关之后,推送网关对第二连接请求进行解析以获取多个第一连接请求对应的多个客户端标识信息以及多个第一连接请求对应的多个路由信息。进而推送网关可建立并存储多个客户端标识信息与多个路由信息的对应关系,或者根据多个客户端标识信息以及相应的多个路由信息对已经存储的对应关系进行更新。
本申请的消息推送装置,通过代理服务器将来自多个客户端的第一连接请求拼接为一个第二连接请求,并通过推送网关发送至应用服务器,大大减小了应用服务器处理连接请求的数据量,突破了传统方法单机处理请求的瓶颈问题,减小了应用服务器的压力,进一步降低了集群服务器的数量,节约成本和资源。
为了实现上述实施例,本申请还提出一种消息推送系统。
图6为根据本申请一个实施例的消息推送系统的结构示意图。图7为根据本申请一个实施例的消息推送系统的流程图。
如图6和图7所示,该消息推送系统包括:代理服务器100、至少一个客户端200、应用服务器300、推送网关400。
具体地,至少一个客户端200用于分别向代理服务器100发送第一连接请求。其中,第一连接请求中包括发送该第一连接请求的客户端的客户端标识信息。具体地,当用户终端需要接收应用服务器的推送消息时,首先需要通过用户终端中的客户端200向代理服务器100发送第一连接请求,以请求与代理服务器建立连接。
代理服务器100用于接收至少一个客户端200发送的至少一个第一连接请求,并根据本申请第一连接请求建立并维持与本申请客户端200的连接,以及接收推送消息,并将本申请推送消息转发至对应的客户端200。
在本申请的一个实施例中,代理服务器100可为NGINX(engine x)服务器,是一种高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。NGINX是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,其将源代码以类BSD(BerkeleySoftware Distribution,伯克利软件套件)许可证的形式发布,稳定性好、具有丰富的功能集、示例配置文件,并且系统资源消耗低。在本申请的其他实施例中,也可为其他具有相同或相似功能的代理服务器,本申请对此不做限定。
应用服务器300用于向本申请代理服务器100发送本申请推送消息。
在本申请的实施例中,代理服务器100可通过推送网关400与本申请应用服务器建立连接以接收本申请应用服务器反馈的推送消息。
在本申请的一个实施例中,代理服务器100在与相应的客户端200建立连接之后,可将第一连接请求发送至推送网关400,以使推送网关400对第一连接请求进行解析以获取第一连接请求对应的客户端标识信息以及第一连接请求对应的路由信息。进而推送网关400可建立并存储该客户端标识信息与该路由信息的对应关系,或者根据该客户端标识信息以及相应的路由信息对已经存储的对应关系进行更新。
当应用服务器300产生推送消息时,可将该推送消息发送至推送网关400。其中,推送消息中包括该推送消息的目标客户端的客户端标识信息,进而推送网关400可根据该推送消息中的客户端的标识信息查询已经存储的客户端标识信息与路由信息的对应关系,以获取与目标客户端的客户端标识信息相应的路由信息,并根据获取到的路由信息将该推送消息发送至代理服务器100。
在本申请的实施例中,代理服务器100可根据推送消息中的客户端标识信息将推送消息发送至对应的客户端200。客户端200接收到代理服务器100发送的推送消息后,可对web网页相应的位置进行局部更新,以显示该推送消息。
在本申请的一个实施例中,代理服务器100在接收来自多个客户端的多个第一连接请求时,需要获取接收到的多个第一连接请求的个数,并判断接收到的多个第一连接请求的个数是否达到预设阈值(例如100个),如果达到,则可将接收到的多个第一连接请求拼接为第二连接请求。或者,获取当前时间与上一次拼接第二连接请求的时间的时间隔,并判断该时间将是否大于预设时间阈值(例如50毫秒),如果大于,则即使接收到的第一连接请求的个数未达到预设阈值,也将在上一次拼接第二连接请求的时间到当前时间内接收到的多个第一连接请求拼接为本申请第二连接请求。其中,预设阈值与预设时间阈值可根据代理服务器的请求处理能力以及实际使用情况进行设定,本申请对二者的取值不做具体限定。
推送网关400在接收到第二连接请求之后,可对第二连接请求进行解析以获取多个第一连接请求对应的多个客户端标识信息以及多个第一连接请求对应的多个路由信息。进而推送网关可建立并存储多个客户端标识信息与多个路由信息的对应关系,或者根据多个客户端标识信息以及相应的多个路由信息对已经存储的对应关系进行更新。
本申请的消息推送系统,通过代理服务器接收到客户端的连接请求后,并与客户端建立并维持连接,并将应用服务器反馈的推送消息及时的转发至客户端,无需在客户端处理推送消息时断开连接,大大节省了消息推送时间。此外,客户端并不直接与应用服务器相连,而是与具有丰富的功能集和示例配置文件、性能稳定且系统资源消耗低的代理服务器间接与应用服务器相连,减少了应用服务器的请求处理数量,减小了应用服务器的压力,从而有效降低了集群服务器的数量,节约成本和资源。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同限定。