Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR OFFLINE DOWNLOAD OF NETWORK RESOURCE FILE
Document Type and Number:
WIPO Patent Application WO/2013/075578
Kind Code:
A1
Abstract:
Disclosed are a system and method for offline download of a network resource file. The system comprises a download client, an offline task management server, an offline download server, a cloud storage server and a file slicing and fragmentation server. The method comprises: an offline download sever logically segmenting a target file which requests offline download into more than one fragmentation file for offline download and monitoring the download status of the fragmentation file; a download client being informed of download after completion of offline download of at least one fragmentation file; and the download client downloading from the offline download server the fragmentation file after completion of offline download. By adopting the technical solution of the present application, the total download time of a network resource file can be shortened, which is especially favourable for the download and distribution of large and extra-large files.

Inventors:
LIU GANG (CN)
WANG FUCHEN (CN)
HUANG YAN (CN)
Application Number:
PCT/CN2012/083973
Publication Date:
May 30, 2013
Filing Date:
November 02, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TENCENT TECH SHENZHEN CO LTD (CN)
International Classes:
H04L12/58; H04L29/08
Foreign References:
CN101465824A2009-06-24
CN101247402A2008-08-20
CN101420349A2009-04-29
Attorney, Agent or Firm:
DEQI INTELLECTUAL PROPERTY LAW CORPORATION (CN)
北京德琦知识产权代理有限公司 (CN)
Download PDF:
Claims:
权利要求书

1、 一种网络资源文件的离线下载系统, 其特征在于, 包括: 下载 客户端、 离线任务管理服务器、 离线下载服务器、 云存储服务器、 文件 切割分片服务器, 其中:

所述下载客户端用于发起离线下载任务请求, 并从所述云存储服务 器下载已经完成离线下载的分片文件;

所述离线任务管理服务器用于管理离线下载过程, 向文件切割分片 服务器发起离线下载任务请求, 并从所述文件切割分片服务器查询分片 文件的下载状态, 在至少一个分片文件离线下载完毕后通知下载客户端 进行下载;

所述文件切割分片服务器用于将请求离线下载的目标文件逻辑分 割为一个以上分片文件, 通知离线下载服务器下载所述分片文件, 并接 收分片文件的下载状态;

所述离线下载服务器用于离线下载所述分片文件到云存储服务器, 监测分片文件的下载状态并同步给文件切割分片服务器。

2、 根据权利要求 1所述的系统, 其特征在于, 所述离线下载服务 器为一个以上的离线下载服务器集群, 且该系统进一步包括离线下载调 度服务器, 用于调度离线下载服务器集群中的服务器进行相应文件的下 载; 所述离线下载服务器监测的分片文件的下载状态先同步给该离线下 载调度服务器, 再由该离线下载调度服务器同步给所述文件切割分片服 务器。

3、 根据权利要求 1所述的系统, 其特征在于, 该系统进一步包括: 离线任务数据库和切片状态数据库, 其中:

所述离线任务数据库与所述离线任务管理服务器和离线下载服务 器连接, 用于保存离线下载过程中的下载任务和下载结果;

所述切片状态数据库与所述文件切割分片服务器连接, 用于保存分 片文件的下载状态信息。

4、 一种网络资源文件的离线下载方法, 其特征在于, 包括: 离线下载服务器端将请求离线下载的目标文件逻辑分割为一个以 上分片文件进行离线下载, 并监测所述分片文件的下载状态; 在至少一 个分片文件离线下载完毕后通知下载客户端进行下载;

下载客户端从离线下载服务器端下载所述已经完成离线下载的分 片文件。

5、 根据权利要求 4所述的方法, 其特征在于, 所述将请求离线下 载的目标文件逻辑分割为一个以上分片文件进行离线下载, 并监测所述 分片文件的下载状态的具体方式为:

将请求离线下载的目标文件在逻辑上分割为一个以上分片文件, 设 置每个分片文件的唯一标识, 并根据每个分片文件的大小和唯一标识确 定每个分片文件在所述目标文件中的偏移量; 按照所述目标文件的下载 地址下载目标文件, 根据所述分片文件在所述目标文件中的偏移量监测 其中每一个分片文件的离线下载状态。

6、 根据权利要求 5 所述的方法, 其特征在于, 所述目标文件为统 一资源定位符 URL标记的文件, 所述设置该目标文件每个分片文件唯 一标识的具体方法为:

计算所述目标文件的 URL的哈希 HASH值, 将该 HASH值作为每 个分片文件的唯一标识的前一部分, 每个分片文件唯一标识的后一部分 为该分片文件在该目标文件内的序号。

7、根据权利要求 5所述的方法,其特征在于,所述目标文件为 ed2k 链接标记的文件, 所述设置该目标文件每个分片文件唯一标识的具体方 法为:

计算所述目标文件的基于文件内容的 HASH值,将该 HASH值作为 每个分片文件的唯一标识的前一部分, 每个分片文件唯一标识的后一部 分为该分片文件在该目标文件内的序号。

8、 根据权利要求 5所述的方法, 其特征在于, 所述目标文件为 BT 种子中包含的文件, 所述设置该目标文件每个分片文件唯一标识的具体 方法为:

计算所述 BT种子的 HASH值, 将该 HASH值加上目标文件在 BT 种子中的序号作为该目标文件的每个分片文件的唯一标识的前一部分, 每个分片文件唯一标识的后一部分为该分片文件在该目标文件内的序 号。

9、 根据权利要求 4所述的方法, 其特征在于, 该方法进一步包括: 下载客户端从离线下载服务器端下载完目标文件的所有分片文件后, 将 所有分片文件组合成一个目标文件。

10、根据权利要求 4所述的方法, 其特征在于, 该方法进一步包括: 下载客户端从离线下载服务器端下载完分片文件后预览该分片文件的 内容。

11、根据权利要求 4所述的方法, 其特征在于, 该方法进一步包括: 所述下载客户端在下载完毕一个分片文件后, 将该分片文件的唯一标识 作为本地文件的标记向点对点 P2P网络, 或点对服务器和点 P2SP网络 中的追踪服务器注册, 作为所述 P2P网络或 P2SP网络中其它客户端下 载该分片文件的数据源。

12、 根据权利要求 4所述的方法, 其特征在于, 所述离线下载服务 器端通知下载客户端下载所述分片文件的具体方法为:

离线下载服务器端将所述分片文件在离线下载服务器端的存储地 址通知给下载客户端 , 下载客户端根据该存储地址从离线下载服务器端 下载对应的分片文件;

或者, 离线下载服务器端将已离线下载的分片文件的唯一标识和存 储地址发布到 P2P网络或 P2SP网络中, 并将分片文件的唯一标识通知 给所述下载客户端; 所述下载客户端通过所述分片文件的唯一标识从所 述 P2P网络或 P2SP网络获取所述分片文件的存储地址, 并根据该存储 地址从离线下载服务器端下载对应的分片文件。

Description:
网络资源文件的离线下载系统和方法 技术领域

本申请涉及网络数据通信技术, 尤其涉及一种网络资源文件的离线 下载系统和方法。 发明背景

网络资源一般是指存储在网络上供用户下载使 用的数字化资源, 包 括: 程序文件、 视频文件、 音频文件等。 目前下载网络资源的常用方式 包括以下几种:

(一)点对服务器技术(P2S, Peer to Server ), 所有的网络资源都 存储在某个大型下载网站的服务器中, 用户直接到该下载网站去下载资 源文件, 该方式的下载速度可以得到保证, 但资源分散、 不易搜索。

(二)点对点技术(P2P, Peer-to-Peer ), 又称为对等技术。 这种技 术依赖网络资源下载参与者设备的计算能力和 带宽, 而不是完全依赖较 少的几台服务器。 P2P技术在文件共享和下载方面得到了广泛的应 用。 P2P一端的下载速度和另一端的上传速度密切相 关, 由于中国用户大多 使用非对称数字用户环路( Asymmetric Digital Subscriber Line, ADSL ) 上网, ADSL的上传速度并不快, 仅几十 K, 一些用户还会人为限制上 传速度, 这导致了 Ρ2Ρ方式的上传带宽资源的缺乏, 因此用户会普遍感 觉 Ρ2Ρ的速度较慢。

(三)点对服务器和点( P2SP, Peer to Server&Peer )技术, 就是下 载不再像传统方式那样只能依赖服务器, 内容的传递可以在网络上的各 个终端机器中进行。 P2SP除了包含 P2P以外, 还包括服务器, 即 P2SP 的 "S"。 P2SP有效地把原本孤立的服务器和其镜像资源 及 P2P资源 整合到了一起。 它在下载的稳定性和下载的速度上, 都比传统的 P2P或 P2S有了非常大的提高。 P2SP基于用户对服务器和用户的机制, 不同于 P2P,也不同于 P2S,它不但支持 P2P技术,同时还通过检索数据库(Data Base, DB )把服务器资源和 P2P资源整合到了一起, 用户下载一个文 件的时候,会自动搜索其它资源,选择合适的 资源进行加速,这使得 P2SP 在下载的稳定性和下载的速度上, 比传统的 P2P有了非常大的提高。

在 P2SP技术中, 当下载一个网络资源文件时, 数据来源分为源下 载链接、 P2P网络、 第三方镜像的辅助源, 然后通过完整文件的唯一标 识, 比如通过消息摘要算法第五版 ( Message Digest Algorithm MD5 )或 者安全散列算法 ( Secure Hash Algorithm, SHA )计算得到的唯一标识, 把文件统一串联起来。 发明内容

有鉴于此, 本申请的主要目的在于提供一种网络资源文件 的离线下 载方法和系统, 以缩短网络资源文件的总体下载时间。

本申请的技术方案是这样实现的:

一种网络资源文件的离线下载系统, 包括: 下载客户端、 离线任务 管理服务器、 离线下载服务器、 云存储服务器、 文件切割分片服务器, 其中:

所述下载客户端用于发起离线下载任务请求, 并从所述云存储服务 器下载已经完成离线下载的分片文件;

所述离线任务管理服务器用于管理离线下载过 程, 向文件切割分片 服务器发起离线下载任务请求, 并从所述文件切割分片服务器查询分片 文件的下载状态, 在离线下载完至少一个分片文件后通知下载客 户端进 行下载;

所述文件切割分片服务器用于将请求离线下载 的目标文件逻辑分割 为一个以上分片文件, 通知离线下载服务器下载所述分片文件, 并接收 分片文件的下载状态;

所述离线下载服务器用于离线下载所述分片文 件到云存储服务器, 监测分片文件的下载状态并同步给文件切割分 片服务器。

一种网络资源文件的离线下载方法, 包括:

离线下载服务器端将请求离线下载的目标文件 逻辑分割为一个以上 分片文件进行离线下载, 并监测所述分片文件的下载状态; 在离线下载 完至少一个分片文件后通知下载客户端进行下 载;

下载客户端从离线下载服务器端下载所述已经 完成离线下载的分片 文件。

与现有技术相比, 本申请对大文件和超大文件(比如超过 8G的文 件) 的离线下载, 先在逻辑上对文件进行切割, 对每个分片文件分别维 护下载进度状态, 不需要等整个目标文件下载完毕, 只要有一个分片文 件离线下载完毕即可通知下载客户端从离线下 载服务器端取回 (即下 载)该分片文件, 因此在离线下载服务器端进行离线下载的同时 , 下载 客户端也可以从离线下载服务器端下载, 缩短了网络资源文件的总体下 载时间, 尤其有利于大文件和超大文件的下载和分发。 附图简要说明

图 1为 P2SP技术中网络资源分享和下载的具体控制流 图; 图 2为一种离线下载系统的组成和下载网络资源 件的示意图; 图 3 为本申请所述网络资源文件的离线下载系统的 一种组成示意 图; 图 4为本申请具有离线下载服务器集群的离线下 系统的一种示意 图;

图 5为本申请所述的一种网络资源文件的离线下 方法的主要流程 图。 实施本发明的方式 下面结合附图及具体实施例对本申请再作进一 步详细的说明。

图 1为 P2SP技术中网络资源分享和下载的具体控制流 图。 参见 图 1 ,所述 P2SP网络中包括下载客户端、资源索引服务器 追踪( Tracker ) 服务器、 以及统计服务器。

所述下载客户端主要用于: ( 11 )定期向 Tracker服务器汇报在线情 况和本地拥有的资源信息; ( 12 ) 通过源统一资源定位符 (Universal Resource Locator ,URL)向资源索引服务器查询多资源 URL集合、 哈希 (HASH)及文件校验信息,从 URL集合源下载数据; ( 13 )同时向 Tracker 服务器查询种子 (Peer ); ( 14 ) 完成下载任务后, 向统计服务器汇报本 次下载任务的下载时间、 下载速度、 下载结果、 文件大小, 下载的源链 接和不同 URL源获取的下载速度和下载时间; ( 15 )下载过程中,当发现 下载到完整的数据分片后, 进行校验, 如果发现分片错误, 向统计服务 器上报。

所述资源索引服务器主要用于: (21 )接收下载客户端(包括云端的 离线下载服务器)通过 URL作为索引的入口查询文件 HASH; ( 22 )接 收下载客户端 (包括云端的离线下载服务器)通过 URL作为索引的入 口查询下载的多 URL资源集合; (23 )提供分片文件校验信息, 供下载 客户端校验下载数据的有效性。

所述资源索引数据库主要用于: 保存 P2SP系统中所有 URL资源数 据库的索引和资源记录。

所述 Tracker服务器用于: (31 )为每个申请加入网络的下载客户端 提供注册, 并反馈拥有该资源节点的 IP地址列表; (32 )接收下载客户 端的在线情况汇报, 生成各资源的节点列表并在有节点申请下载该 任务 时进行反馈。

所述统计服务器用于: 接收下载客户端的下载完成和下载过程中 URL下载速度, 下载时间, 连通情况, 下载结果, 文件大小等信息的上 报, 并写成流水日志的方式供后续统计分析。

参见图 1 , P2SP 网络中, 网络资源的下载流程主要包括: (41 )用 户需要下载网络资源的时候从互联网或者资源 网站获取原始 URL链接。

( 42 )用户以原始 URL链接为入口,从资源索引服务器查询多资源 URL 集合及文件 HASH值。 (43 ) 下载客户端从查询到的 URL 下载数据。

( 44 )下载完成后注册文件信息到 Tracker服务器。 (45 )其它下载客户 端可以通过 Tracker服务器查询到 P2P种子, 即已经下载完成的种子和 正在下载的种子。 (46 )其它下载客户端开始查询多源 P2P下载,在 Peer 之间相互交换数据。 ( 47 ) 下载完成以后将相关的统计信息上报给统计 服务器。

不论上述哪种下载技术, 都需要用户下载客户端直接利用上述下载 技术进行网络资源文件的下载。 如果用户要下载一些冷门网络资源或者 较大的文件, 往往要长时间挂机, 不仅浪费时间而且消耗大量的带宽。 因此, 目前业界出现了一种离线下载的技术方案。

所谓离线下载, 就是以服务器高速代理下载某一网络资源, 并将该 网络资源中转到离线空间, 代理下载完毕后由用户下载客户端从该离线 空间下载到本机。 这种离线下载处理方式实现了网络加速的功能 , 目前 获得了广泛的应用。 离线下载的本质就是由下载工具的服务器代替 用户先行下载某个网 络资源。 比如某个资源是冷门资源, 下载速度 ^艮慢, 用户如果直接利用 本机下载客户端下载, 则需要下载很久。 如果用户使用离线下载技术, 就可以让服务商的服务器代替用户下载, 用户则可以关掉下载客户端或 者机器, 从而节约时间、 带宽、 以及耗电量。 等到所述服务器离线下载 完毕后, 用户再从该服务器上高速下到下载客户端的电 脑上。 离线下载 能省却许多挂机等待的时间, 尤其重要的是能够节省出用户带宽资源来 处理其它任务。

具体的, 上述离线下载技术方案具有如下特点:

( 51 )加速下载冷门资源: 离线下载为用户解决冷门资源下载慢、 长时间挂机的问题, 利用离线服务器的强大带宽, 相比于普通民用的 ADSL网络能够更快的将文件下载到用户的专属 务器。 下载完成后, 用户可以把文件从所述专属服务器上高速稳定 地下载到用户本地的计 算机上。 由于离线服务器的带宽远大于 ADSL网络, 离线服务器能够提 供大于 ADSL的下载速度。

( 52 )稳定提升下载速度: 普通任务使用离线下载, 速度更快更稳 定, 专属会员服务器将为会员提供稳定的下载速度 。 如果不采用离线下 载而直接下载时, 则受限于网络环境, 下载速度处于一个波动的状态, 不可预期。 而离线下载能够提供稳定的速度。

( 53 )可以解决网络封杀、网络被限的问题:在诸 P2P网络或 P2SP 网络被限的情况下, 离线下载仍可高速运行, 离线下载的会员专属服务 器将为用户提供 7*24小时不间断高速下载。 使得用户的下载效率更高, 下载时间利用率更高。 用户的专属服务器可以在用户不挂机, 甚至睡觉 的时候, 为用户持续地下载该文件, 从而节省用户宝贵的时间。

图 2为一种离线下载系统的组成和下载网络资源 件的示意图; 参 见图 2, 这种离线下载系统包括: 下载客户端、 离线任务管理服务器、 离线下载调度服务器、 离线下载服务器集群、 离线任务数据库、 以及云 存储服务器。 当然,前述各个服务器可以分别是单独设置的 物理服务器, 也可以是服务功能模块, 设置在一个或一个以上物理服务器之中。

参见图 2, 该离线下载技术方案的主要过程是:

( 61 ) 下载客户端向离线任务管理服务器提交离线下 载任务请求, 其中包括需要下载的文件下载地址, 比如对应文件下载的超文本传送协 议 (HyperText Transfer Protocol, HTTP)链接, 或者电驴 ( Electronic Mule email, eMule )链接或者资源 (BitTorrent, BT)下载种子。

( 62 ) ~ ( 63 ) 离线任务管理服务器接收用户提交的离线下载 任务 请求后, 先从所述离线任务数据库中查询 Db映射记录, 判断当前请求 下载的资源是否已经被下载过且存在云存储服 务器中, 如果是则直接告 知下载客户端离线下载成功, 下载客户端可以直接从云存储服务器下载 资源, 同时还可以使用 P2SP技术进行下载; 否则将离线下载任务请求 的下载地址发送给离线下载调度服务器,如可 以将相应的 HTTP的 URL 链接、 eMule链接、 或者 BT种子文件信息发送给离线下载调度服务器, 同时将该离线下载任务信息写入离线任务数据 库。

( 64 ) 离线下载调度服务器依据离线下载服务器集群 的负载情况进 行离线任务的调度。

( 65 ) 离线下载服务器集群依据所述下载地址开始启 动下载, 从互 联网 (internet)下载数据。 下载过程中, 下载服务器集群可以使用自己的 P2SP下载技术,同时将下载状况信息(包括下 进度、下载速度等信息 ) 上报给离线下载调度服务器, 然后再由离线下载调度服务器上报到离线 任务管理服务器。

( 66 ) ~ ( 67 ) 下载完成的数据同时同步到云存储服务器, 同时将 下载结果写入离线任务数据库, 即在离线任务数据库中保存离线下载生 成的最终文件的 HASH 结果数据,并使其与对应的下载任务请求的原 链接形成映射记录。

( 68 ) 离线任务管理服务器根据上报的下载状况信息 得知网络资源 文件下载完毕后, 通知下载客户端从所述云存储服务器下载对应 的文 件, 此时下载客户端可以直接从云存储服务器下载 所述文件。

随着数字内容的爆炸式增长, 网络资源文件的体积也越来越大。 例 如网络游戏下载客户端安装包的大小从几百 M到几个 G, 十几个 G都 很常见; 再例如高清视频中的蓝光格式电影文件, 一般一部蓝光电影文 件动辄就 20多 G; 另外, 一些系统备份软件、 安装程序、 专业图片或 者是演示文稿设计能手 (Power Point, PPT)等无法分割的文件, 其大小都 有逐步加大的趋势, 也使得目前互联网上大文件的内容越来越多, 大文 件的分发下载也成为一个重要的问题。

大文件下载时间非常长, 比如 1部 20G 的高清电影,按照现在用户 通常 2M 的 典型 ADSL 带 宽全速下 载 , 需要时 间 为 20GB/2Mb=10*1000*8s=80000s=22.22小时,如果是 4M的网络下载,也 需要 11个多小时。

但是, 上述离线下载技术中, 无论文件的大小如何, 都必须等到服 务器端下载完成以后才能下载取回到下载客户 端本地, 服务器下载完成 的部分数据也不能给本地正在进行的文件下载 进行加速, 部分完成的数 据文件不能发挥任何作用。 因此对于大型文件 (例如超过 8G的超大文 件), 目前的离线下载方案存在如下缺陷: 用户等待大文件下载完毕的时间太长。 其中不但离线下载服务器下 载完成的时间很长, 而且下载客户端从云存储服务器下载取回本地 的时 间也^艮长, 两者不能同时进行, 导致大文件的总体下载时间过长。 本申 请在上述离线下载系统引入文件切割分片服务 器和切片状态数据库, 对 上述离线下载系统进行修改和整合, 构成一整套完整的大文件和超大文 件切割分发下载的系统。 图 3 为本申请所述网络资源文件的离线下载系统的 一种组成示意 图。 参见图 3 , 该离线下载系统包括: 下载客户端、 离线任务管理服务 器、 离线任务数据库、 离线下载服务器、 云存储服务器以及文件切割分 片服务器和切片状态数据库。 其中: 所述离线任务管理服务器用于: (71 )接收下载客户端提交的离线 下载任务, 为每个独立的离线下载任务生成唯一的标识编 号; (72 )将 离线下载任务的原始链接信息写入所述离线任 务数据库; (73 )通过离 线任务数据库的 DB映射记录判断当前请求下载的资源是否已经 下载 过且存在云存储服务器中, 如果是则直接告知下载客户端离线下载成 功, 下载客户端可以直接从云存储服务器下载资源 , 同时还可以使用 P2SP技术进行下载; 否则将离线下载任务请求发送给离线下载服务 器;

( 74 )接收离线下载服务器上报的下载进度, 同时供下载客户端查询离 线下载进度; (75 ) 当下载客户端需要取回离线下载完成的数据时 , 提 供下载客户端取回数据的入口地址 URL, 作为下载客户端下载的源;

( 76 )所述离线任务管理服务器还用于在收到下载 户端的离线下载任 务请求后, 判断该请求的目标文件(即请求下载的文件) 的大小是否超 过预设的阈值(例如 8G ), 如果是则判定该文件为大文件, 需要进行逻 辑切割处理, 将该离线下载任务请求发送给文件切割分片服 务器处理; 否则按照现有技术的处理方式进行处理; (77 )所述离线任务管理服务 器还可以按照文件大小分片规则, 确定文件每个分片的唯一标记和文件 状态, 接收离线下载服务器的下载状态查询; (78 )还可以通过文件切 割分片服务器查询切片状态数据库中的分片文 件下载状态, 在至少一个 分片文件离线下载完毕后通知下载客户端进行 下载。 所述文件切割分片服务器用于: 按照不同协议、 不同类型的文件对 应的文件切割分片规则将请求离线下载的目标 文件逻辑分割为一个以 上分片文件, 通知离线下载服务器下载所述分片文件, 同时还可以初始 化分片文件的状态到切片状态数据库中, 接收离线下载服务器返回的分 片文件的下载状态并存储在切片状态数据库中 , 即离线下载服务器中的 分片文件的下载状态被同步到该文件切割分片 服务器并存储到切片状 态数据库中。 所述切片状态数据库用于: 保存大文件切割分片后每个分片文件对 应的下载状态; 并为文件切割分片服务器提供分片文件下载状 态的查 询; 其中, 切片数据库记录的主键就是分片文件的唯一标 识。 当然所述 切片状态数据库也可以是可选部件, 也可以将所述下载状态记录在所述 切割分片服务器中的一个数据文件中。 所述离线下载服务器用于: 从离线任务数据库中获取离线下载请求 的原始链接,进行云端下载, 即离线下载所述分片文件到云存储服务器, 并监测分片文件的下载状态信息(包括下载进 度和速度等信息)返回给 文件切割分片服务器和离线任务管理服务器; 还可以为离线下载完成以 后下载客户端取回离线下载的结果数据提供服 务支持, 能够用保留的带 宽输出用户需要的数据;并将离线下载生成的 最终文件的 HASH结果数 据写入离线任务数据库。 当然所述离线下载服务器集群在筒单的场景下 也可以只是一个服务器。 所述离线任务数据库用于: 保存离线下载任务的原始链接信息并供 离线下载服务器查询;保存离线下载生成的最 终文件的 HASH结果数据 并与对应的下载任务请求的原始链接形成映射 记录, 供离线任务管理服 务器查询。 当然所述离线任务数据库也可以是可选部件, 可以将所述离 线任务数据库由离线任务管理服务器中的一个 数据文件来代替。 所述云存储服务器用于: 保存离线下载服务器下载完成的数据; 作 为下载客户端下载离线取回数据的数据源。 所述下载客户端可以是具有现有 P2S、 P2P、 或 P2SP下载客户端功 能的下载客户端, 除了具有上述下载客户端的功能外, 还可以进一步用 于向离线任务管理服务器提交离线下载任务请 求, 同时查询离线任务的 进度信息; 从所述云存储服务器下载所述已经完成离线下 载的分片文 件。 下载完成一个大文件的分片文件后, 还可以将该分片文件的唯一标 识作为本地文件的标记向 P2P网络或 P2SP网络中的 Tracker服务器注 册。 通过此操作来将本地的该分片文件作为 P2P网络或 P2SP网络中的 其它下载客户端的一个下载源。 该下载客户端还用于从离线下载服务器 端下载完分片文件后预览该分片文件的内容, 从而使用户判断目标文件 是否为自己需要的。 在本申请的一个实施例中, 所述离线下载服务器也可以为一个以上 的离线下载服务器集群。 如图 4为本申请具有离线下载服务器集群的离 线下载系统的一种示意图。 参见图 4, 该系统在包括离线下载服务器集群的情况下, 进一步包 括离线下载调度服务器, 主要用于: (81 )接收离线下载服务器集群节 点上报的负载信息; (82 ) 收到离线任务管理服务器的离线下载任务请 求后根据离线下载服务器的负载情况, 动态地将离线下载任务调度到离 线下载服务器集群的不同节点上执行具体的目 标文件和分片文件的下 载任务; (83 )接收离线下载服务器节点汇报的目标文件和 片文件的 下载状况信息 (包括下载进度、 下载速度等信息), 同时把下载状况信 息发送给离线下载任务管理服务器和文件切割 分片服务器, 在图 4所示 实施例中, 所述离线下载服务器监测的分片文件的下载状 态先同步给该 离线下载调度服务器, 再由该离线下载调度服务器同步给所述文件切 割 分片服务器; 并且, 离线下载调度服务器还将分片文件的下载状态 同步 给离线任务管理服务器, 由离线任务管理服务器生成目标文件的总的下 载进度同步给下载客户端供用户查看; (84 )对相同的离线下载请求进 行过滤, 同一个离线下载请求只需要向离线下载服务器 群发送一次, 不 同的用户可以共享同一个任务的离线下载进度 信息。 所述离线下载服务器集群除了上述具体离线下 载服务器的功能外, 还用于: 向离线下载调度服务器注册自己的地址,并上 报自身磁盘空间、 中央处理器 (Central Processing Unit, CPU)负载信息, 供离线下载调度服 务器按照负载进行动态均衡的下载调度; 接收离线下载调度服务器的调 度,从离线任务数据库中获取离线下载请求的 原始链接,进行云端下载。 本申请中, 前述各个服务器可以分别是单独设置的物理服 务器, 也 可以是服务功能模块, 设置在一个或一个以上物理服务器之中。 下面介绍本申请所述离线下载系统实现的网络 资源文件的离线下 载方法。 图 5为本申请所述的一种网络资源文件的离线下 方法的主要流程 图, 参见图 5 , 该方法包括: 步骤 501、 离线下载服务器端将请求离线下载的目标文件 逻辑分割 为一个以上分片文件进行离线下载, 并监测所述分片文件的下载状态; 在至少一个分片文件离线下载完毕后通知下载 客户端进行下载; 所述离 线下载服务器端就是指上述图 3 和图 4 所述离线下载系统中的服务器 端。具体来说, 图 3中的离线下载服务器端指的是离线任务管理 务器, 文件切割分片服务器, 切片状态数据库, 离线下载服务器, 离线任务数 据库以及云存储服务器。 图 4中的离线下载服务器端指的是离线任务管 理服务器, 离线下载调度服务器, 文件切割分片服务器, 切片状态数据 库, 离线下载服务器集群, 离线任务数据库以及云存储服务器。 步骤 502、 下载客户端从离线下载服务器端下载所述已经 完成离线 下载的分片文件。 本申请主要是用于对大文件和超大文件 (例如大于 8G的文件) 的 下载过程进行切割分解, 例如对一个超大文件按照确定的逻辑切割规则 进行逻辑切割, 分解为指定大小或指定数目的多个分片文件, 每个分片 文件都是一个独立的整体, 且监测维护每个分片文件的下载进度状态, 不需要等整个文件下载完毕, 只需要下载完成至少一个分片文件, 即部 分文件内容, 就可以通知下载客户端用户从离线下载服务器 端下载取 回。 下面介绍本申请所述方法的详细执行过程, 具体包括: 步骤 601、 下载客户端向离线任务管理服务器提交离线下 载任务请 求, 其中包括需要下载的目标文件的大小等信息和 下载地址, 比如对应 文件下载的 HTTP链接, 或者 eMule链接或者 BT下载种子。 步骤 602、 离线任务管理服务器判断请求离线下载的目标 文件的大 小是否大于预设的阈值(例如可以设置为 8G ), 如果是则判断目标文件 为大文件或超大文件, 需要进行切割分片下载, 执行后续步骤; 否则判 定不需要进行切割分片下载, 按照现有的处理方式进行处理。 当然, 本 步骤 602为可选步骤, 也可以省略该步骤, 对所有的目标文件都进行切 割分片下载。 步骤 603、 离线任务管理服务器从所述离线任务数据库中 查询下载 结果记录, 判断当前请求下载的目标文件是否已经被下载 过且存储在云 存储服务器中, 如果是, 则直接告知下载客户端离线下载成功, 并通知 下载客户端该目标文件的各分片文件的下载信 息, 下载客户端可以依据 下载信息直接从云存储服务器下载分片文件, 同时还可以使用 P2SP技 术从其它客户端的下载源进行下载, 之后结束本处理流程; 否则, 离线 任务管理服务器将离线下载任务请求发送给文 件切割分片服务器, 如可 以将相应的 HTTP的 URL链接、 eMule链接、 或者 BT种子文件信息发 送给文件切割分片服务器, 同时将该离线下载任务信息写入离线任务数 据库。 步骤 604、 文件切割分片服务器按照不同协议、 不同类型的文件对 应的文件切割分片规则将请求离线下载的目标 文件逻辑分割为一个以 上分片文件。 此步骤中, 由于此时目标文件还没有下载, 因此只是将请求离线下 载的目标文件在逻辑上分割为一个以上分片文 件, 并设置每个分片文件 的唯一标识。 所述逻辑分割的具体方式为: 对于超大文件按照文件大小对大文件进行切割 分片。 分片文件规 则可以和文件大小关联起来, 文件越大, 分片就越大。 此处具体的分割 方法有二种: 第一种是按照固定分片数目的方式在逻辑上进 行分割, 即 片数确定, 每个分片文件的大小不确定; 第二种是按照固定每个分片文 件大小的方式在逻辑上进行分割, 即除了最后一个分片文件为余数外, 其余每个分片文件的大小确定, 片数不确定, 比如都是 100M, 但是分 片文件的总的数目不确定。 实际处理过程中可以依据需要确定具体的切 割方式。 通常文件越大, 比如 50G以上, 可以采用第一种方法, 其它的 采用第二种方法。 比如, 按照文件下载的进度将文件切分为 1024等份, 每一份占总体进度约为千分之一, 1 个 100G 的文件, 每个分片就是 100M , 如果定义大文件为 8G 以上的文件, 那么 1 个分片就是 8G/1024=8M。 通常, 没有切割分片之前, 每一个目标文件都有唯一的 1个 HASH 值作为标记, 所述设置该目标文件每个分片文件唯一标识的 具体方法根 据目标文件的类型不同会有所不同, 主要包括以下三种:

( 1 )所述目标文件为 URL标记的文件, 则计算该目标文件的 URL 的 HASH值, 将该 HASH值作为每个分片文件的唯一标识的前一部 , 每个分片文件在目标文件中都有唯一的一个序 号, 用一个整数标识, 每 个分片的唯一标识的后一部分为该分片文件在 该目标文件内的序号, 组 合在一起构成 24个字节的唯一标识。

( 2 )如果请求离线下载的是 eMule任务, 即所述目标文件为电驴 2000网络 (eDonkey2000 network, ed2k)链接标记的文件, 则计算所述目 标文件的基于文件内容的 HASH值(如 MD5信息, 通常为 16个字节), 将该 HASH值作为每个分片文件的唯一标识的前一部 ,每个分片文件 唯一标识的后一部分为该分片文件在该目标文 件内的序号。 ( 3 )如果请求离线下载的是 BT种子文件, 则情况复杂一些, 由于 BT种子是一个文件下载集合。 一个 BT种子中可能包含一个以上文件。 对 BT种子中的每个目标文件, 计算所述 BT种子(即 Torrent文件) 的 HASH值, 将该 HASH值加上目标文件在 BT种子中的序号作为该目标 文件的每个分片文件的唯一标识的前一部分, 每个分片文件唯一标识的 后一部分为该分片文件在该目标文件内的序号 。 在后续处理中, 每个分 片文件都对应一个唯一的下载状态。 如果 BT中间文件是小文件, 没有 达到进行超大文件切割的界限就不需要进行切 割。 步骤 605、 文件切割分片服务器根据逻辑分割后的每个分 片文件的 大小和唯一标识(实质上是该唯一标识中的序 号)确定该分片文件在所 述目标文件内的偏移量, 并将包含目标文件的下载地址和每个分片文件 的唯一标识和在目标文件内的偏移量的离线下 载请求发送给离线下载 服务器以离线下载目标文件, 同时还可以初始化分片文件的状态到切片 状态数据库中, 初始化就是将分片文件的唯一标识和下载进度 为 0的状 态设置到所述切片状态数据库中。 如果是离线下载服务器集群, 则将上 述离线下载请求发送给离线下载调度服务器, 由该离线下载调度服务器 根据离线下载服务器集群中的负载情况调度一 个或一个以上的离线下 载服务器对目标文件进行离线下载。 步骤 606、 离线下载服务器按照所述目标文件的下载地址 下载目标 文件, 即进行云端下载, 下载过程中, 离线下载服务器可以使用自身的 P2SP下载技术。在下载目标文件的过程中, 实时根据所述分片文件在所 述目标文件中的偏移量监测其中每一个分片文 件的离线下载状态(至少 包括下载进度, 还可以包括下载速度等信息), 即下载的最小粒度就是 分片文件。 并且, 离线下载服务器将分片文件的下载状态信息实 时同步 给文件切割分片服务器, 并由文件切割分片服务器存储到切片状态数据 库中, 将总目标文件的下载状态信息同步给离线任务 管理服务器。 或者 在使用离线下载服务器集群的情况下, 将分片文件的下载状态信息和目 标文件的总下载状态信息同步给离线任务调度 服务器, 再由离线下载调 度服务器将分片文件的下载状态信息同步给所 述文件切割分片服务器, 并由文件切割分片服务器存储到切片状态数据 库中; 离线下载调度服务 器还将目标文件的总下载状态信息同步给离线 任务管理服务器。 步骤 607、 当离线下载服务器下载分片文件时, 将所下载的分片文 件数据同步存储到云存储服务器中。 云存储服务器将该分片文件的存储 地址(此处为该分片文件在云存储服务器上存 储的 URL地址)返回给 离线下载服务器, 并由离线下载服务器将该分片文件的唯一标识 和存储 地址返回给离线任务管理服务器, 或通过离线下载调度服务器返回给离 线任务管理服务器。 或者离线下载服务器只返回分片文件的唯一标 识给 离线任务管理服务器, 离线任务管理服务器根据与云存储服务器计算 存 储地址相同的算法计算出该唯一标识对应的存 储地址。 离线下载服务器 还将每一分片文件的存储地址写入离线任务数 据库, 离线下载服务器下 载完毕目标文件的所有分片文件后, 还要将下载结果写入离线任务数据 库。 步骤 608、 当文件切割分片服务器通过所述同步的下载状 态信息判 定某一分片文件被离线下载服务器下载完毕后 , 通知离线任务管理服务 器。 离线任务管理服务器将该分片文件的存储地址 发送给下载客户端。 下载客户端根据该存储地址从所述云存储服务 器下载分片文件; 或者, 离线任务管理服务器也可以只将该分片文件的 唯一标识发送给下载客 户端, 并将分片文件的唯一标识和存储地址发布到与 该离线下载系统连 接的 P2P网络或 P2SP网络中的资源索引数据库中, 所述下载客户端通 过所述分片文件的唯一标识从所述 P2P网络或 P2SP网络获取所述分片 文件的存储地址, 并根据该存储地址从云存储服务器下载对应的 分片文 件。 步骤 609、 下载客户端从离线下载服务器端下载完分片文 件后, 由 于该分片文件是一个独立的文件, 因此还可以进一步预览该分片文件的 内容, 从而可以事先知道自身下载的目标文件是否是 自己需要的, 尤其 对于视频文件, 下载部分内容后可以进行内容的预览, 相对于现有技术 需要下载完全部目标文件到客户端本地后才能 查看文件内容的方案, 本 申请可以减少不必要的等待时间, 如果发现目标文件并不是用户需要 的, 则可以及时放弃下载, 避免浪费带宽和时间。 步骤 610、 所述下载客户端在下载完毕一个分片文件后, 还可以将 该分片文件的唯一标识作为本地文件的标记向 与本客户端连接的 P2P网 络或 P2SP网络中的 Tracker服务器注册。通过此操作来将本地的该 片 文件作为 P2P网络或 P2SP网络中的其它下载客户端的一个下载源, 所 述云存储服务器作为一个稳定源, 这样可以进一步提高整体目标文件的 下载速度。 步骤 611、 下载客户端下载完目标文件的所有分片文件后 , 可以按 照分片文件的大小和唯一标识计算每个分片文 件在目标文件中的偏移 量, 并根据该偏移量将所有分片文件组合成一个目 标文件。