软件升级数据包的下载方法和装置转让专利

申请号 : CN200910007114.8

文献号 : CN101795203B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 梁秀品

申请人 : 华为软件技术有限公司

摘要 :

本发明实施例提供一种软件升级数据包的下载方法和装置。该方法包括接收升级服务器发送的软件升级资源列表,软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包; 在点到点网络中,根据地址信息向至少一个客户端发送下载软件升级数据包的第一请求消息;接收客户端根据第一请求消息发送的软件升级数据包。本发明实施例中客户端通过与升级服务器的信令交互获知能够提供软件升级数据包的种子源,客户端从种子源上下载所需数据。通用客户端之间P2P和断点续传进行软件升级,适应终端并发量大的情况,占用出口带宽较小,减少服务器的带宽和负荷;而且可以提高软件升级的下载速度和软件升级成功率,提高服务质量。

权利要求 :

1.一种软件升级数据包的下载方法,其特征在于,包括:

接收升级服务器发送的软件升级资源列表,所述软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包;

在点到点网络中,根据所述地址信息向至少一个客户端发送下载所述软件升级数据包的第一请求消息;

接收所述客户端根据所述第一请求消息发送的所述软件升级数据包;

其中,所述接收升级服务器发送的软件升级资源列表之后,在点到点网络中,根据所述地址信息向至少一个客户端发送下载所述软件升级数据包的第一请求消息之前包括:加入到所述点到点网络中的软件升级多播组,并向所述软件升级资源列表中的处于所述软件升级多播组的所述客户端发送成为升级伙伴的第三请求消息;

接收所述客户端发送的所述第三请求消息的成功响应消息,并与所述客户端建立升级伙伴关系。

2.根据权利要求1所述的软件升级数据包的下载方法,其特征在于,所述接收升级服务器发送的软件升级资源列表之前包括:向所述升级服务器发送进行软件版本升级的第二请求消息,以便于所述升级服务器根据所述第二请求消息返回所述软件升级资源列表,所述第二请求消息包括新版本信息。

3.根据权利要求1所述的软件升级数据包的下载方法,其特征在于,所述接收所述客户端根据所述第一请求消息发送的所述软件升级数据包,包括:应用断点续传技术,接收所述客户端根据所述第一请求消息发送的所述软件升级数据包的分片数据。

4.根据权利要求3所述的软件升级数据包的下载方法,其特征在于,所述方法还包括:在接收所述客户端发送分片数据的过程中,向所述客户端发送用于监测所述客户端是否在线的心跳消息。

5.根据权利要求1至4所述的任一软件升级数据包的下载方法,其特征在于,若所述接收所述客户端根据所述第一请求消息发送的所述软件升级数据包发生中断,则所述方法还包括:在所述点到点网络中,根据所述地址信息向所述软件升级资源列表中的其他客户端发送下载所述软件升级数据包中未下载的分片数据的第四请求消息;

接收所述其他客户端根据所述第四请求消息发送的所述分片数据。

6.根据权利要求1至4所述的任一软件升级数据包的下载方法,其特征在于,若所述接收所述客户端根据所述第一请求消息发送的所述软件升级数据包发生中断,则所述方法还包括:向资源服务器发送下载所述软件升级数据包中未下载的分片数据的第五请求消息;

接收所述资源服务器根据所述第五请求消息发送的所述分片数据。

7.一种用户设备,其特征在于,包括:

第一接收模块,用于接收升级服务器发送的软件升级资源列表,所述软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包;

第一数据请求模块,用于在点到点网络中,根据所述地址信息向至少一个客户端发送下载所述软件升级数据包的第一请求消息,并接收所述客户端根据所述第一请求消息发送的所述软件升级数据包;

其中,所述第一数据请求模块还用于,加入到所述点到点网络中的软件升级多播组,并向所述软件升级资源列表中的处于所述软件升级多播组的所述客户端发送成为升级伙伴的第三请求消息;

接收所述客户端发送的所述第三请求消息的成功响应消息,并与所述客户端建立升级伙伴关系。

8.根据权利要求7所述的用户设备,其特征在于,还包括:版本升级请求模块,用于向所述升级服务器发送进行软件版本升级的第二请求消息,以便于所述升级服务器根据所述第二请求消息返回所述软件升级资源列表,所述第二请求消息包括新版本信息。

9.根据权利要求7或8所述的用户设备,其特征在于,所述第一数据请求模块还用于:在所述点到点网络中,根据所述地址信息向所述软件升级资源列表中的其他客户端发送下载所述软件升级数据包中未下载的分片数据的第四请求消息,并接收所述其他客户端根据所述第四请求消息发送的所述分片数据。

10.根据权利要求7或8所述的用户设备,其特征在于,所述第一数据请求模块还用于:向资源服务器发送下载所述软件升级数据包中未下载的分片数据的第五请求消息,并接收所述资源服务器根据所述第五请求消息发送的所述分片数据。

11.根据权利要求7或8所述的用户设备,其特征在于,还包括:第一存储模块,用于存储所述软件升级数据包。

说明书 :

软件升级数据包的下载方法和装置

技术领域

[0001] 本发明实施例涉及通信技术领域,尤其涉及一种软件升级数据包的下载方法和装置。

背景技术

[0002] 无论是企业产品还是个人产品软件,软件自动升级是必不可少的,但随着用户量的增多及软件安装包容量的增大,对服务器压力性能、带宽要求越来越高。但由于服务器带宽资源有限,在用户量不断增加的情况下,软件自动升级的出错率及下载速度日益表明,现有软件升级技术已经无法达到用户的要求。若通过每天限定软件升级的用户数量,将造成升级周期过长,而且不同版本的客户端相互通讯存在较大的兼容性问题。
[0003] 现有技术软件升级方案中主要是基于服务器式的自动升级,具体包括客户端通过向服务器查询最新的版本号与自己的版本号进行对比,若不一致则向服务器发送下载请求,服务器根据下载请求向客户端发送所需数据包,进行版本升级。
[0004] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:客户端与服务器之间进行信令和数据的交互完成软件升级,服务器所能支持的客户端并发量有限,服务器负载更重,甚至导致服务器故障,客户端软件升级成功率低;客户端数据包下载速度较慢,升级时间较长,甚至会出现一些客户端版本兼容性问题,为了满足客户端的软件升级要求服务器提供下载的安装版本兼容性过高,软件升级具有一定的局限性。
[0005] 发明内容
[0006] 本发明实施例提供一种软件升级数据包的下载方法和装置,用以解决现有技术中的服务器负载重、数据包下载速度慢、软件升级成功率低等缺陷,实现软件升级过程中的信令和数据分离,提高软件升级成功率。
[0007] 本发明实施例提供一种软件升级数据包的下载方法,包括:
[0008] 接收升级服务器发送的软件升级资源列表,所述软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包;
[0009] 在点到点网络中,根据所述地址信息向至少一个客户端发送下载所述软件升级数据包的第一请求消息;
[0010] 接收所述客户端根据所述第一请求消息发送的所述软件升级数据包。
[0011] 本发明实施例提供一种用户设备,包括:
[0012] 第一接收模块,用于接收升级服务器发送的软件升级资源列表,所述软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包;
[0013] 第一数据请求模块,用于在点到点网络中,根据所述地址信息向至少一个客户端发送下载所述软件升级数据包的第一请求消息,并接收所述客户端根据所述第一请求消息发送的所述软件升级数据包。
[0014] 本发明实施例提供一种升级服务器,包括:
[0015] 第二接收模块,用于接收用户设备发送的进行软件版本升级的第二请求消息,所述第二请求消息包括新版本信息;
[0016] 第一发送模块,用于根据所述第二请求消息向所述用户设备发送软件升级资源列表,所述软件升级资源列表包括数个客户端的地址信息,所述客户端存储有与所述新版本信息对应的软件升级数据包。
[0017] 本发明实施例提供一种资源服务器,包括:
[0018] 第三接收模块,用于接收用户设备发送的下载所述软件升级数据包中分片数据的第五请求消息;
[0019] 第二发送模块,用于根据所述第五请求消息向所述用户设备发送所述分片数据。
[0020] 本发明实施例提供一种软件升级数据包下载系统,包括:
[0021] 升级服务器,用于接收用户设备发送的进行软件版本升级的第二请求消息,所述第二请求消息包括新版本信息,并根据所述第二请求消息向所述用户设备发送软件升级资源列表,所述软件升级资源列表包括数个客户端的地址信息,所述客户端存储有与所述新版本信息对应的软件升级数据包;
[0022] 处于点到点网络中的数个客户端,用于接收所述用户设备根据所述地址信息发送的下载所述软件升级数据包的第一请求消息,并根据所述第一请求消息发送的所存储的所述软件升级数据包。
[0023] 本发明实施例提供的软件升级数据包的下载方法和装置,客户端通过与升级服务器的信令交互获知能够提供软件升级数据包的种子源,客户端从种子源上下载所需数据。通用客户端之间P2P和断点续传进行软件的自动升级,适应终端并发量大的情况,占用出口带宽较小,减少服务器的带宽和负荷;而且可以提高软件升级的下载速度和软件升级成功率,提高服务质量。

附图说明

[0024] 图1为本发明软件升级数据包的下载方法实施例一流程图;
[0025] 图2为本发明软件升级数据包的下载方法实施例二信令图;
[0026] 图3为本发明客户端间建立P2P网络组实施例信令图;
[0027] 图4为本发明P2S下载交互实施例信令图;
[0028] 图5为本发明P2P下载交互实施例信令图;
[0029] 图6为本发明用户设备实施例一结构示意图;
[0030] 图7为本发明用户设备实施例二结构示意图;
[0031] 图8为本发明升级服务器实施例结构示意图;
[0032] 图9为本发明资源服务器实施例结构示意图;
[0033] 图10为本发明软件升级数据包下载系统实施例结构示意图。

具体实施方式

[0034] 下面结合附图和具体实施例进一步说明本发明实施例的技术方案。
[0035] 图1为本发明软件升级数据包的下载方法实施例一流程图,如图1所示,该方法包括:
[0036] 步骤100,接收升级服务器发送的软件升级资源列表,所述软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包;
[0037] 安装有软件的客户端为了保证所安装的软件的版本是最新版本,可以周期性地从升级服务器中查询获知最新版本信息,若发现软件版本有更新,则向升级服务器发送进行软件版本升级的第二请求消息,所述第二请求消息包括新版本信息,以便于升级服务器可以根据该第二请求消息返回数据下载所用的软件升级资源列表。升级服务器接收到该第二请求消息后,会根据所请求的新版本信息查询种子源,也就是说查询有哪些客户端已经存储有与发送升级请求的客户端所请求的新版本信息对应的软件升级数据包,并将查询获得的至少一个的种子源的地址信息合成软件升级资源列表发送的发送请求的客户端,供其进行下载升级。由上可知所述软件升级资源列表中包括至少一个地址信息,而且每个地址信息均对应一个客户端,某个客户端上均存储有发送升级请求的客户端所需的软件升级数据包。客户端之间是对等式的,升级服务器可以通过广播式进行种子源搜索,搜索的范围可配置,例如最多可以支持5个。
[0038] 所述的升级服务器仅用于对软件的版本信息和种子源信息进行管理,并不为客户端提供软件升级数据包的下载功能,客户端通过升级服务器的信令交互可以获得能够下载所需软件升级数据包的种子源信息,而数据包是由其他客户端或功能实体提供。
[0039] 步骤101,在点到点网络中,根据所述地址信息向至少一个客户端发送下载所述软件升级数据包的第一请求消息;
[0040] 当发送软件升级请求的客户端接收到升级服务器发送的软件升级资源列表后,要加入到点到点网络即P2P网络中,并在该P2P网络中查找是否存在软件升级资源列表中提供的存储有软件升级数据包的客户端,具体地为发送软件升级请求的客户端首先要加入P2P网络中的升级多播组中,在加入到软件升级多播组后,向软件升级资源列表中提供的、同样也加入到软件升级多播组中的客户端发送成为升级伙伴的第三请求消息,请求与该种子源建立升级伙伴关系,作为种子源的客户端接收到第三请求消息后,若同意建立升级伙伴关系,则返回成功响应消息。发送软件升级请求的客户端接收作为种子源的客户端发送的第三请求消息的成功响应消息,并与其建立升级伙伴关系,即可以从该作为种子源的客户端上下载所需的软件升级数据包。在P2P网络中,各个客户端之间是对等的,即客户端既可以是数据接收者,也可以是数据发送者。
[0041] 发送软件升级请求的客户端与作为种子源的客户端建立完成升级伙伴关系后,发送软件升级请求的客户端向作为种子源的客户端中的至少一个客户端发送第一请求消息,请求下载软件升级数据包。具体为,发送软件升级请求的客户端根据软件升级资源列表中的地址信息,向至少一个客户端发送所述第一请求消息,即可以是根据软件升级资源列表中一个地址信息向该地址信息对应的一个客户端发送第一请求消息,也可以是根据软件升级资源列表中多个地址信息向该多个地址信息对应的多个客户端发送第一请求消息。选择一个客户端还是多个客户端进行数据下载可以由发送软件升级请求的客户端根据实际情况决定。
[0042] 步骤102,接收所述客户端根据所述第一请求消息发送的所述软件升级数据包。
[0043] 作为种子源的客户端接收到第一请求消息后,将本身存储的软件升级数据包返回给发送软件升级请求的客户端,发送软件升级请求的客户端接收种子源发送的软件升级数据包。为了防止因异常情况发生数据下载中断造成数据下载失败,本实施例中在进行数据下载的过程中可以采用断点续传技术,以实现在中断后可以在所下载的数据的基础上继续进行软件升级数据包的下载,而无需重新下载,避免资源浪费,提高数据传输效率。发送软件升级请求的客户端应用断点续传技术,接收种子源根据第一请求消息发送的软件升级数据包的分片数据。为了进一步提高数据的下载速度,可以将一数据包划分成多个分片数据,这样,发送软件升级请求的客户端可以同时从多个不同的种子源客户端上下载不同的分片数据,通过并行下载的方式实现整个软件升级数据包的下载。
[0044] 在本实施例中为了避免提供软件升级数据包的客户端因异常下线,数据传输中断,造成资源的浪费,可以在进行软件升级数据包过程的同时,由发送软件升级请求的客户端向种子源客户端发送心跳消息,监测该客户端是否处于在线状态,若种子源客户端在线,则在接收到心跳消息后,会即时返回响应表明可以继续提供数据的下载。若发送软件升级请求的客户端在发送完心跳消息后没有接收任何响应,则表明种子源客户端已经异常下线无法正常提供所需的软件升级数据包,则发送软件升级请求的客户端可以向其他种子源客户端发送的下载请求实现数据下载。
[0045] 本实施例提供的软件升级数据包的下载方法中,客户端通过与升级服务器的信令交互获知能够提供软件升级数据包的种子源,客户端从种子源上下载所需数据。通用客户端之间P2P和断点续传进行软件的自动升级,适应终端并发量大的情况,占用出口带宽较小,减少服务器的带宽和负荷;而且可以提高软件升级的下载速度和软件升级成功率,提高服务质量。
[0046] 在上述实施例中,若发送软件升级请求的客户端接收种子源客户端根据第一请求消息发送的软件升级数据包发生中断,则在P2P网络中,发送软件升级请求的客户端根据地址信息向软件升级资源列表中的其他客户端发送下载软件升级数据包中未下载的分片数据的第四请求消息,也就是说当一个种子源客户端因异常下线导致数据包传输中断,则可以在软件升级资源列表中查找另一个能够提供软件升级数据包的种子源客户端,并根据对应的地址信息发送第四请求消息,在已经下载的分片数据的基础上请求下载尚未下载的分片数据。另一种子源客户端接收到第四请求消息后,将返回所请求的分片数据,发送软件升级请求的客户端接收另一种子源客户端发送的所述分片数据。
[0047] 若发送软件升级请求的客户端接收种子源客户端根据第一请求消息发送的软件升级数据包括发生中断,而且软件升级资源列表中没有能够提供软件升级数据包的种子源客户端时,发送软件升级请求的客户端向资源服务器发送下载软件升级数据包中未下载的分片数据的第五请求消息,资源服务器接收到第五请求消息后,返回存储的所请求的软件升级数据包的分片数据,发送软件升级请求的客户端在已经下载的分片数据的基础上接收资源服务器发送的尚未下载的分片数据。
[0048] 其中,资源服务器中存储有各种软件新版本所对应的软件升级数据包,当P2P网络中的种子源客户端不能为发送的请求的客户端提供所需数据的时候,发送的请求的客户端可以直接向资源服务器发送数据请求,并从中获得所需数据。本实施例中,将现有用于提供软件升级服务的服务器进行分离,形成资源服务器与升级服务器,所述的升级服务器仅用于对软件的版本信息和种子源信息进行管理,负责与客户端进行信令交互;而资源服务器用于对软件升级数据包进行管理,通过资源服务器与升级服务器实现数据和信令的分离,可实现并行扩展。
[0049] 本实施例提供一种基于P2P网络的客户端软件的自动升级,利用已升级了或已部分升级的客户端之间相互进行断点续传进行自动升级,充分利用客户端的带宽资源,大大降低了资源服务器的负荷,减少带宽的占有率。既降低了服务器的运营成本,还能够提高服务质量。
[0050] 图2为本发明软件升级数据包的下载方法实施例二信令图,如图2所示,该方法包括:
[0051] 步骤1a,客户端A向升级服务器查询新版本,并携带当前版本号;
[0052] 步骤2a,升级服务器返回响应消息,携带最新版本号;
[0053] 步骤3a,客户端A根据最新版本号判断是否需要进行软件升级;
[0054] 步骤4a,若需要,则向升级服务器发送获取新版本的请求消息;
[0055] 步骤5a,升级服务器根据请求消息合成软件升级资源列表,该软件升级资源列表中包括数个存储有软件升级数据包的客户端的地址信息;
[0056] 步骤6a,升级服务器向客户端A发送软件升级资源列表;
[0057] 步骤7a,客户端A加入P2P网络;
[0058] 步骤8a,客户端A判断P2P网络中是否存在拥有最新版本的伙伴客户端;
[0059] 步骤9a,若存在,则向客户端B发送支持断点续传下载数据请求;
[0060] 步骤10a,客户端B对请求进行响应,返回下载数据;
[0061] 步骤11a,数据下载过程中,客户端A向客户端B发送心跳消息;
[0062] 步骤12a,客户端A通过心跳消息获知客户端B已不在P2P网络中,则向客户端B发送断开P2P连接的消息;
[0063] 步骤13a,若客户端A上数据下载尚未完成,则继续建立新的P2P进行下载;
[0064] 步骤14a,在客户端B已下载的文件基础上,继续向客户端C发送断点续传下载数据请求;
[0065] 步骤15a,客户端C对请求进行响应,返回下载数据;
[0066] 步骤19a,判断是否下载完毕;
[0067] 步骤20a,若下载完毕,则再进行数据校验;
[0068] 步骤21a,校验成功后,提示用户进行软件升级。
[0069] 在上述实施例中,若客户端A的数据下载尚未完成,也可以不在例如客户端C等其它种子源上下载数据,而直接向资源服务器请求下载未下载的数据,因此可以应用以下的步骤16a、步骤17a和步骤18a替换上述流程中的步骤13a、步骤14a和步骤15a,具体为:
[0070] 步骤16a,若在客户端A上数据下载尚未完成,则从资源服务器上进行数据下载;
[0071] 步骤17a,在客户端B已下载的文件基础上,继续向资源服务器发送断点续传下载数据请求;
[0072] 步骤18a,资源服务器对请求进行响应,返回下载数据;
[0073] 客户端A进行完软件升级后,将升级从成功信息和升级后的软件版本信息发送给升级服务器,作为P2P种子源为其它客户端提供软件升级数据包。
[0074] 应该说明的是在上述实施例中,客户端A向客户端B发送心跳消息是在整个数据下载流程中不间断地进行,以保证数据有效地下载。
[0075] 图3为本发明客户端间建立P2P网络组实施例信令图,如图3所示,该方法包括:
[0076] 步骤1b,客户端A、客户端B和客户端C分别加入到升级多播组中;
[0077] 步骤2b,客户端A进行组播寻找升级伙伴,向客户端C发送加为升级伙伴请求;
[0078] 步骤3b,客户端C判断是否同意将客户端A加为升级伙伴;
[0079] 步骤4b,若同意,则向客户端A发送同意加为升级伙伴的响应消息;
[0080] 步骤5b,客户端A将客户端C加为升级伙伴;
[0081] 步骤6b,客户端A进行组播寻找升级伙伴,向客户端B发送加为伙伴请求;
[0082] 步骤7b,客户端B判断是否同意将客户端A加为升级伙伴;
[0083] 步骤8b,若同意,则向客户端A发送同意加为升级伙伴的响应消息;
[0084] 步骤9b,客户端A将客户端B加为升级伙伴。
[0085] 本实施例子中客户端A向客户端B和客户端C发送加为升级伙伴请求并不分先后顺序,也可以同时进行。这里的升级多播组可以是虚拟组,在各客户端均加入到P2P网络的升级多播组中后,其中的任意一个客户端均可以向其它其客户端请求下载数据,而每一个客户端均可以作为种子源为其它客户端提供所需的数据。
[0086] 图4为本发明P2S下载交互实施例信令图,如图4所示,该方法包括:
[0087] 步骤1c,客户端向资源服务器发送下载软件升级数据包的分片数据即文件片段的请求消息;
[0088] 步骤2c,资源服务器向客户端发送所需的文件片段;
[0089] 步骤3c,客户端判断是否已经下载了所有的文件片段;
[0090] 步骤4c,若已经下载完所有的文件片段,则对文件进行校验;
[0091] 步骤5c,若校验失败则要重新进行文件数据的下载;
[0092] 步骤6c,若校验成功则提示用户安装该文件,进行软件升级。
[0093] 本实施例提供的方法中,在升级服务器为数据下载请求客户端发送的软件升级资源列表中涉及的种子源客户端由于下线等原因不能为请求数据下载的客户端提供所需数据时,客户端与资源服务器进行交互从资源服务器中下载所需数据。当然客户端也可以直接与资源服务器交互进行数据下载,采用何种数据下载方式可以依据实际网络资源分配和负载情况而定。
[0094] 图5为本发明P2P下载交互实施例信令图,如图5所示,该方法包括:
[0095] 步骤1d,客户端A向客户端B发送数据请求消息,请求下载软件升级数据包的分片数据;
[0096] 步骤2d,客户端B向客户端A返回数据请求响应消息,携带所需的分片数据;
[0097] 步骤3d,客户端A向客户端B发送心跳消息,监测客户端B是否在线;
[0098] 步骤4d,客户端B向客户端A返回心跳消息;
[0099] 步骤5d,客户端A判断是否已经下载了所有的分片数据;
[0100] 步骤6d,若已经下载完所有的分片数据,则对文件进行校验;
[0101] 步骤7d,若校验成功则提示用户安装该文件,进行软件升级。
[0102] 步骤8d,客户端A向客户端B发送断开P2P连接的消息。
[0103] 客户端A进行完软件升级后,将升级从成功信息和升级后的软件版本信息发送给升级服务器,作为P2P种子源为其它客户端提供软件升级数据包。
[0104] 应该说明的是在上述实施例中,客户端A向客户端B发送心跳消息是在整个下载流程中不间断地进行,以保证数据有效地下载。
[0105] 上述各实施例中通用客户端之间P2P和断点续传进行软件的自动升级,适应终端并发量大的情况,充分利用客户端的带宽资源,减少服务器的带宽和负荷;而且可以提高软件升级的下载速度和软件升级成功率,既降低了服务器的运营成本,还可以提高服务质量。
[0106] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0107] 图6为本发明用户设备实施例一结构示意图,如图6所示,该用户设备包括第一接收模块11和第一数据请求模块12,其中第一接收模块11用于接收升级服务器发送的软件升级资源列表,该软件升级资源列表包括至少一个地址信息,每个地址信息对应的客户端存储有软件升级数据包;第一数据请求模块12用于在P2P网络中,根据该地址信息向至少一个客户端发送下载软件升级数据包的第一请求消息,并接收客户端根据第一请求消息发送的软件升级数据包。
[0108] 用户设备若发现自身所维护的软件的当前版本与最新版本不同,则向升级服务器发送第二请求消息,请求进行软件版本升级。升级服务器接收到请求消息后,会根据所请求的新版本信息查询种子源,也就是说查询有哪些客户端已经存储有与发送升级请求的客户端所请求的新版本信息对应的软件升级数据包,并将查询获得的至少一个种子源的地址信息合成软件升级资源列表发送的发送请求的客户端,供其进行下载升级。由上可知所述软件升级资源列表中包括至少一个地址信息,而且每个地址信息均对应一个客户端,某个客户端上均存储有发送升级请求的客户端所需的软件升级数据包。第一接收模块11接收到升级服务器发送的软件升级资源列表后,通过第一数据请求模块12向软件升级资源列表中涉及的客户端中的至少一个客户端发送下载软件升级数据包的第一请求消息,具体为,用户设备即发送软件升级请求的客户端根据软件升级资源列表中的地址信息,向至少一个客户端发送所述第一请求消息,即可以是根据软件升级资源列表中一个地址信息向该地址信息对应的一个客户端发送第一请求消息,也可以是根据软件升级资源列表中多个地址信息向该多个地址信息对应的多个客户端发送第一请求消息。选择一个客户端还是多个客户端进行数据下载可以由发送软件升级请求的用户设备根据实际情况决定。客户端根据请求返回所需数据后,用户设备通过第一数据请求模块12接收下载软件升级数据包的各分片数据。
[0109] 本实施例所述的用户设备也可称为客户端,其通过与升级服务器的信令交互获知能够提供软件升级数据包的种子源,客户端从种子源上下载所需数据。通用客户端之间P2P和断点续传进行软件的自动升级,适应终端并发量大的情况,占用出口带宽较小,减少服务器的带宽和负荷;而且可以提高软件升级的下载速度和软件升级成功率,提高服务质量。
[0110] 图7为本发明用户设备实施例二结构示意图,如图7所示,该用户设备包括第一接收模块11和第一数据请求模块12,还包括版本升级请求模块13用于向升级服务器发送进行软件版本升级的第二请求消息,该第二请求消息包括新版本信息,以便于升级服务器根据所述第二请求消息返回软件升级资源列表。上述实施例中涉及的用户设备要向升级服务器查询软件最新的版本信息可以通过版本升级请求模块13完成。
[0111] 当用户设备从一个种子源客户端请求软件升级数据包中断,则可以通过第一数据请求模块12在P2P网络中,根据软件升级资源列表中的地址信息向其他客户端发送下载该软件升级数据包中未下载的分片数据的第四请求消息,其它客户端继续根据请求向用户设备发送所需数据,用户设备通过第一数据请求模块12接收其他客户端根据第四请求消息发送的分片数据。
[0112] 当用户设备从一个种子源客户端请求软件升级数据包中断,而且P2P网络中没有能够为该用户设备提供所需数据的客户端时,用户设备还可以通过第一数据请求模块12向资源服务器发送下载该软件升级数据包中未下载的分片数据的第五请求消息,并接收资源服务器根据第五请求消息发送的所需的分片数据。
[0113] 用户设备中还可以包括一个用于存储所述软件升级数据包的第一存储模块14,当用户需要进行软件升级时,根据升级指示从第一存储模块14中获取升级文件进行软件升级。
[0114] 本实施例所述的用户设备可以通过向不同的客户端或升级服务器请求数据,适应不同软件升级情况。通用客户端之间P2P和断点续传进行软件的自动升级,适应终端并发量大的情况,减少服务器的带宽和负荷;而且可以提高软件升级的下载速度和软件升级成功率,提高服务质量。
[0115] 图8为本发明升级服务器实施例结构示意图,如图8所示,该升级服务器包括第二接收模块21和第一发送模块22,其中第二接收模块21用于接收用户设备发送的进行软件版本升级的第二请求消息,该第二请求消息包括新版本信息;第一发送模块22用于根据该第二请求消息向用户设备发送软件升级资源列表,该软件升级资源列表包括数个客户端的地址信息,客户端存储有与新版本信息对应的软件升级数据包。
[0116] 具体地,用户设备请求获得新版本信息,升级服务器中的第二接收模块21接收到该请求后,将携带的新版本信息发送给第一发送模块22,第一发送模块22根据用户设备所需的新版本信息合成软件升级资源列表,在该软件升级资源列表中包括数个能够为用户设备提供其所需的软件升级数据包的地址信息,用户设备可以根据该地址信息从对应的客户端上获取软件升级数据包。
[0117] 本实施例提供的升级服务器实现对升级版本和种子源客户端信息的管理,仅与用户设备进行信令交互,而不提供数据下载服务,降低升级服务器的负荷,用户设备在点到点网络中从客户端上下载所需数据,进一步提高用户设备数据下载的并发性和数据下载的速度,提高软件升级成功率,提高服务质量。
[0118] 图9为本发明资源服务器实施例结构示意图,如图9所示,该资源服务器包括第三接收模块3 1和第二发送模块32,其中第三接收模块31用于接收用户设备发送的下载软件升级数据包中分片数据的第五请求消息;第二发送模块32用于根据第五请求消息向用户设备发送分片数据。
[0119] 具体地,当用户设备根据升级服务器发送的软件升级资源列表中的客户端均不能为用户设备提供数据,则用户设备可以在原有下载数据的基础上,转向升级服务器请求下载尚未完成的数据。资源服务器中的第三接收模块31接收用户设备的请求后,根据请求通过第二发送模块32向用户设备发送所需的分片数据。资源服务器中还可以包括用于存储所述软件升级数据包的第二存储模块33,第二发送模块32可以从第二存储模块33获取相应数据向用户设备发送。
[0120] 本实施例提供的资源服务器实现软件升级数据包的文件管理,不负责与用户设备进行信令交互,仅用于为用户提供数据资源,降低资源服务器的负荷,用户设备在点到点网络中从客户端上下载所需数据,进一步提高用户设备数据下载的并发性和数据下载的速度,提高软件升级成功率,提高服务质量。
[0121] 图10为本发明软件升级数据包下载系统实施例结构示意图,如图10所示,该软件升级数据包下载系统包括升级服务器2和处于点到点网络中的数个客户端1,其中升级服务器2用于接收用户设备发送的进行软件版本升级的第二请求消息,所述第二请求消息包括新版本信息,并根据所述第二请求消息向用户设备发送软件升级资源列表,所述软件升级资源列表包括数个客户端的地址信息,客户端1存储有与所述新版本信息对应的软件升级数据包;客户端1用于接收用户设备根据所述地址信息发送的下载所述软件升级数据包的第一请求消息,并根据所述第一请求消息发送的所存储的所述软件升级数据包。所述的用户设备特指请求进行软件升级的客户端。
[0122] 系统还包括资源服务器3。资源服务器3用于接收用户设备发送的下载所述软件升级数据包中分片数据的第五请求消息,并根据所述第五请求消息向用户设备发送所存储的所述分片数据。
[0123] 本实施例中涉及的升级服务器和资源服务器可以采用前述各实施例提供的升级服务器和资源服务器,此处不再赘述。
[0124] 本实施例提供的软件升级数据包下载系统中,将原有的一个服务器划分成两个独立的服务器,并分别用于完成信令和数据的交互,实现了信令和数据控制的分离,可实现并行扩展,提高自动升级速度和效率,减少服务器的带宽和负荷,提高软件升级成功率,提高服务质量。
[0125] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。