网络资源文件的离线下载系统和方法

文档序号:7985527阅读:261来源:国知局
专利名称:网络资源文件的离线下载系统和方法
技术领域
本发明涉及网络数据通信技术,尤其涉及一种网络资源文件的离线下载系统和方法。
背景技术
网络资源一般是指存储在网络上供用户下载使用的数字化资源,包括:程序文件、视频文件、音频文件等。目前下载网络资源的常用方式包括以下几种:(一 )点对服务器技术(P2S,Peer to Server),所有的网络资源都存储在某个大型下载网站的服务器中,用户直接到该下载网站去下载资源文件,该种方式的下载速度可以得到保证,但资源分散、不易搜索。(二)点对点技术(P2P,Peer-to-Peer),又称为对等技术。这种技术依赖网络资源下载参与者设备的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P技术在文件共享和下载方面得到了广泛的应用。P2P —端的下载速度和另一端的上传速度密切相关,由于中国用户大多使用ADSL上网,ADSL的上传速度并不快,仅几十K速度,一些用户还会人为限制上传速度,这导致了 P2P方式的上传带宽资源的缺乏,因此用户会普遍感觉P2P的速度较慢慢。(三)点对服务器和点(P2SP,Peerto Server&Peer)技术,就是下载不再像传统方式那样只能依赖服务器,内容的传递可以在网络上的各个终端机器中进行。P2SP除了包含P2P以外,还包括服务器,即P2SP的“S”。P2SP有效地把原本孤立的服务器和其镜像资源以及P2P资源整合到了一起。它在下载的稳定性和下载的速度上,都比传统的P2P或P2S有了非常大的提高。P2SP基于用户对服务器和用户机制,不同于P2P,也不同于P2S,它不但支持P2P技术,同时还通过检索数据库(DB,data base)把服务器资源和P2P资源整合到了一起,用户下载一个文件的时候,会自动搜索其他资源,选择合适的资源进行加速,这使得P2SP在下载的稳定性和下载的速度上,比传统的P2P有了非常大的提高。在P2SP技术当中,下载一个网络资源文件,数据来源分为源下载链接、P2P网络、第三方镜像的辅助源,然后通过完整文件的唯一标识,比如通过消息摘要算法第五版(MD5)或者安全散列算法(SHA)计算得到的唯一标识,把文件统一串联起来。图1为现有的P2SP技术中网络资源分享和下载的具体控制流程图。参见图1,所述P2SP网络中包括下载客户端、资源索引服务器、追踪(Tracker)服务器、以及统计服务器。所述下载客户端主要用于:(11)定期向Tracker服务器汇报在线情况和本地拥有的资源信息;(12)通过源URL向资源索引服务器查询多资源URL集合、HASH及文件校验信息,从URL集合源下载数据;(13)同时向Tracker服务器查询种子(Peer) ; (14)完成下载任务后,向统计服务器汇报本次下载任务的下载时间、下载速度、下载结果、文件大小,下载的源链接和不同URL源获取的下载速度和下载时间;(15)下载过程当中发现下载到完成的数据分片后,进行校验,如果发现分片错误,向统计服务器上报。所述资源索引服务器主要用于:(21)接收下载客户端(包括云端的离线下载服务器)通过URL作为索引的入口查询文件HASH; (22)接收下载客户端(包括云端的离线下载服务器)通过URL作为索引的入口查询下载的多URL资源集合;(23)提供分片文件校验信息,供下载客户端校验下载数据的有效性。所述资源索引数据库主要用于:保存P2SP系统中所有URL资源数据库的索引和资源记录。所述Tracker服务器用于:(31)为每个申请加入网络的下载客户端提供注册,并反馈其所拥有该资源节点的IP地址列表;(32)接收下载客户端的在线情况汇报,生成各资源的节点列表并在有节点申请下载该任务时进行反馈;(33)接收带宽调度服务器同步的Peer在线控制策略,在Peer登陆的时候下发到Peer下载客户端。所述统计服务器用于:接受下载客户端的下载完成和下载过程中URL下载速度,下载时间,连通情况,下载结果,文件大小等信息的上报,并写成流水日志的方式供后续统计分析。参见图1,P2SP网络中,网络资源的下载流程主要包括:(41)用户需要下载网络资源的时候从互联网或者资源网站获取原始URL链接。(42)用户以原始URL链接为入口,从资源索引服务器查询多资源URL集合及文件哈希(HASH)值。(43)下载客户端从查询到的URL下载数据。(44)下载完成后注册文件信息到Tracker服务器。(45)其他下载客户端可以通过Tracker服务器查询到P2P种子,即已经下载完成的种子(Peer)和正在下载的Peer0 (46)其它下载客户端开始查询多源P2P下载,在Peer之间相互交换数据。(47)下载完成以后将相关的统计信息上报给统计服务器。不论上述哪种下载技术,都需要用户下载客户端直接利用上述下载技术进行网络资源文件的下载。如果用户要下载一些冷门网络资源或者较大的文件,往往要长时间挂机,不仅浪费时间而且消耗大量的带宽。因此,目前业界出现了一种离线下载的技术方案。所谓离线下载,就是以服务器高速代理下载某一网络资源,并将该网络资源中转到离线空间,代理下载完毕后由用户下载客户端从该离线空间下载到本机。这种离线下载处理方式实现了网络加速的功能,目前获得了广泛的应用。离线下载的本质就是由下载工具的服务器代替用户先行下载某个网络资源。比如某个资源是冷门资源,下载速度很慢,用户如果直接利用本机下载客户端下载,则需要下载很久。如果用户使用离线下载技术,就可以让服务商的服务器代替用户下载,用户则可以关掉下载客户端或者机器,从而节约时间、带宽、以及耗电量。等到所述服务器离线下载完毕后,用户再从该服务器上高速下到下载客户端的电脑上。离线下载能省却许多挂机等待的时间,尤其重要的是能够节省出用户带宽资源来处理其它任务。具体的,现有的离线下载技术方案具有如下特点:(51)加速下载冷门资源:离线下载为用户解决冷门资源下载慢、长时间挂机的问题,利用离线服务器的强大带宽,相比于普通民用的非对称数字用户环路(ADSL,Asymmetric Digital Subscriber Line)网络能够更快的将文件下载到你的专属服务器。下载完成后,用户可以把文件从所述专属服务器上高速稳定地下载到用户本地的计算机上。由于离线服务器的带宽远大于ADSL网络,离线服务器能够提供大于ADSL的下载速度。(52)稳定提升下载速度:普通任务使用离线下载速度,速度更快更稳定,专属会员服务器将为会员提供稳定的下载速度。如果不采用离线下载而直接下载时,则受限于网络环境的影响,下载速度是处于一个波动的状态,不可预期。而离线下载能够提供稳定的速度。(53)可以解决网络封杀、网络被限的问题:在诸如P2P网络或P2SP网络被限的情况下,离线下载仍可高速下载,离线下载的会员专属服务器将为用户提供7*24小时不间断高速下载。使得用户的下载效率更高,下载时间利用率更高。用户的专属服务器可以在用户不挂机,甚至睡觉的时候,为用户持续地下载该文件,从而节省用户宝贵的时间。图2为现有技术中的一种离线下载系统的组成和下载网络资源文件的示意图;参见图2,现有的这种离线下载系统包括:下载客户端、离线任务管理服务器、离线下载调度服务器、离线下载服务器集群、离线任务数据库、以及云存储服务器。当然,前述各个服务器可以分别是单独设置的物理服务器,也可以是服务功能模块,设置在一个或一个以上物理服务器之上。参见图2,现有的离线下载技术方案的主要过程是:(61)下载客户端向离线任务管理服务器提交离线下载任务请求,其中包括需要下载的文件下载地址,比如对应文件下载的HTTP链接,或者eMule链接或者BT下载种子。(62) (63)离线任务管理服务器接受用户提交的离线下载任务请求后,先从所述离线任务数据库中查询Db映射记录,判断当前请求下载的资源是否已经被下载过且存在云存储服务器中,如果是则直接告知下载客户端离线下载成功,下载客户端可以直接从云存储服务器下载资源,同时还可以使用P2SP技术进行下载;否则将离线下载任务请求的下载地址发送给离线下载调度服务器,如可以将相应的HTTP的URL链接、eMule链接、或者BT种子文件信息发送给离线下载调度服务器,同时将该离线下载任务信息写入离线任务数据库。(64)离线下载调度服务器依据离线下载服务器集群的负载情况进行离线任务的调度。(65)离线下载服务器集群依据所述下载地址开始启动下载,从internet下载数据。下载过程中,下载服务器集群可以使用自己的P2SP下载技术,同时将下载状况信息(包括下载进度、下载速度等信息)上报给离线下载调度服务器,然后再由离线下载调度服务器上报到离线任务管理服务器。(66) (67)下载完成的数据同时同步到云存储服务器,同时将下载结果写入离线任务数据库,即在离线任务数据库中保存离线下载生成的最终文件的HASH结果数据并于对应的下载任务请求的原始链接形成映射记录。(68)离线任务管理服务器根据上报的下载状况信息得知网络资源文件下载完毕后,通知下载客户端从所述云存储服务器下载对应的文件,此时下载客户端可以直接从云存储服务器下载所述文件。随着数字内容的爆炸式增长,网络资源文件的体积也越来越大。例如网络游戏下载客户端安装包的大小从几百M到几个G,十几个G都很常见;再例如高清视频中的蓝光格式电影文件,一般一部蓝光电影文件动辄就20多G ;另外,一些系统备份软件、安装程序、专业图片或者是PPT等无法分割的文件,其大小都有逐步加大的趋势,也使得目前互联网上大文件的内容越来越多,大文件的分发下载也成为一个重要的问题。大文件下载时间非常长,比如I部20G的高清电影,按照现在用户通常2M的典型ADSL带宽下载全速下载,需要时间为20GB/2Mb = 10*1000*8s = 80000s = 22.22小时,如果是4M的网络下载,也需要11个多小时。但是,现有的离线下载技术中,无论文件的大小如何,都必须等到服务器端下载完成以后才能下载取回到下载客户端本地,服务器下载完成的部分数据也不能给本地正在进行的文件下载进行加速,部分完成的数据文件不能发挥任何作用。因此对于大型文件(例如超过8G的超大文件),目前的离线下载方案存在如下缺陷:用户等待大文件下载完毕的时间太长。其中不但离线下载服务器下载完成的时间很长,而且下载客户端从云存储服务器下载取回本地的时间也很长,两者不能同时进行,导致大文件的总体下载时间过长。

发明内容
有鉴于此,本发明的主要目的在于提供一种网络资源文件的离线下载方法和系统,以缩短网络资源文件的总体下载时间。本发明的技术方案是这样实现的:一种网络资源文件的离线下载系统,包括:下载客户端、离线任务管理服务器、离线下载服务器、云存储服务器、文件切割分片服务器,其中:所述下载客户端用于发起离线下载任务请求,并从所述云存储服务器下载已经完成离线下载的分片文件;所述离线任务管理服务器用于管理离线下载过程,向文件切割分片服务器发起离线下载任务请求,并从所述文件切割分片服务器查询分片文件的下载状态,在离线下载完至少一个分片文件后通知下载客户端进行下载;所述文件切割分片服务器用于将请求离线下载的目标文件逻辑分割为一个以上分片文件,通知离线下载服务器下载所述分片文件,并接收分片文件的下载状态;所述离线下载服务器用于离线下载所述分片文件到云存储服务器,监测分片文件的下载状态并同步给文件切割分片服务器。一种网络资源文件的离线下载方法,包括:离线下载服务器端将请求离线下载的目标文件逻辑分割为一个以上分片文件进行离线下载,并监测所述分片文件的下载状态;在离线下载完至少一个分片文件后通知下载客户端进行下载;下载客户端从离线下载服务器端下载所述已经完成离线下载的分片文件。与现有技术相比,本发明对大文件和超大文件(比如超过SG的文件)的离线下载,先在逻辑上对文件进行切割,对每个分片文件分别维护下载进度状态,不需要等整个目标文件下载完毕,只要有一个分片文件离线下载完毕即可通知下载客户端从离线下载服务器端取回(即下载)该分片文件,因此在离线下载服务器端进行离线下载的同时,下载客户端也可以从离线下载服务器端下载,缩短了网络资源文件的总体下载时间,尤其有利于大文件和超大文件的下载和分发。


图1为现有的P2SP技术中网络资源分享和下载的具体控制流程图2为现有技术中的一种离线下载系统的组成和下载网络资源文件的示意图;图3为本发明所述网络资源文件的离线下载系统的一种组成示意图;图4为具有离线下载服务器集群的离线下载系统的一种示意图;图5为本发明所述的一种网络资源文件的离线下载方法的主要流程图。
具体实施例方式下面结合附图及具体实施例对本发明再作进一步详细的说明。本发明是在现有的离线下载系统引入文件切割分片服务器和切片状态数据库,对现有的离线下载系统进行修改和整合,构成一整套完整的大文件和超大文件切割分发下载的系统。图3为本发明所述网络资源文件的离线下载系统的一种组成示意图。参见图3,该离线下载系统包括:下载客户端、离线任务管理服务器、离线任务数据库、离线下载服务器、云存储服务器以及文件切割分片服务器和切片状态数据库。其中:所述离线任务管理服务器用于:(71)接收下载客户端提交的离线下载任务,为每个独立的离线下载任务生成唯一的标识编号;(72)将离线下载任务的原始链接信息写入所述离线任务数据库;(73)通过离线任务数据库的DB映射记录判断当前请求下载的资源是否已经被下载过且存在云存储服务器中,如果是则直接告知下载客户端离线下载成功,下载客户端可以直接从云存储服务器下载资源,同时还可以使用P2SP技术进行下载;否则将离线下载任务请求发送给离线下载调度服务器;(74)接收离线下载调度服务器上报的下载进度,同时供下载客户端查询离线下载进度;(75)下载客户端需要取回离线下载完成的数据时候,提供下载客户端取回数据的入口地址URL,作为下载客户端下载的源;(76)所述离线任务管理服务器还用于在收到下载客户端的离线下载任务请求后,判断该请求的目标文件(即请求下载的文件)的大小是否超过预设的阈值(例如8G),如果是则判定该文件为大文件,需要进行逻辑切割处理,将该离线下载任务请求发送给文件切割分片服务器处理;否则按照现有技术的处理方式进行处理;(77)所述离线任务管理服务器还可以按照确定文件大小分片规则,确定文件每个分片的唯一标记和文件状态,接受离线下载调度服务器的下载状态调度;(78)还可以通过文件切割分片服务器查询切片状态数据库中的分片文件下载状态,在离线下载完至少一个分片文件后通知下载客户端进行下载。所述文件切割分片服务器用于:按照不同协议、不同类型的文件对应的文件切割分片规则将请求离线下载的目标文件逻辑分割为一个以上分片文件,通知离线下载服务器下载所述分片文件,同时还可以初始化分片文件的状态到切片状态数据库中,并接收离线下载服务器返回的分片文件的下载状态并存储在切片状态数据库中,即离线下载服务器中的分片文件的下载状态被同步到该文件切割分片服务器并存储到切片状态数据库中。所述切片状态数据库用于:保存大文件切割分片后每个分片文件对应的下载状态;并为文件切割分片服务器提供分片文件下载状态的查询;其中,切片数据库记录的主键就是分片文件的唯一标识。当然所述切片状态数据库也可以是可选部件,也可以将所述下载状态记录在所述切割分片服务器中的一个数据文件中。所述离线下载服务器用于:从离线任务数据库中获取离线下载请求的原始链接,进行云端下载,即离线下载所述分片文件到云存储服务器,并监测分片文件的下载状态信息(包括下载进度和速度等信息)返回给文件切割分片服务器和离线任务管理服务器;还可以为离线下载完成以后下载客户端取回离线下载的结果数据提供服务支持,能够用保留的带宽吐出用户需要的数据;并将离线下载生成的最终文件的哈希(HASH)结果数据写入离线任务数据库。当然所述离线下载服务器集群在简单的场景下也可以只是一个服务器。所述离线任务数据库用于:保存离线下载任务的原始链接信息并供离线下载服务器查询;保存离线下载生成的最终文件的HASH结果数据并与对应的下载任务请求的原始链接形成映射记录,供离线任务管理服务器查询。当然所述离线任务数据库也可以是可选部件,可以将所述离线任务数据库由离线任务管理服务器中的一个数据文件来代替。所述云存储服务器用于:保存离线下载服务器下载完成的数据;作为下载客户端下载离线取回数据的数据源。所述下载客户端可以是具有现有P2S、P2P、或P2SP下载客户端功能的下载客户端,除了具有上述下载客户端的功能外,还可以进一步用于向离线任务管理服务器提交离线下载任务请求,同时查询离线任务的进度信息;从所述云存储服务器下载所述已经完成离线下载的分片文件。下载一个大文件完成的分片文件后,还可以将该分片文件的唯一标识作为本地文件的标记向PSP网络或P2SP网络中的Tracker服务器注册。通过此操作来将本地的该分片文件作为P2P网络或P2SP网络中的其它下载客户端的一个下载源。该下载客户端还用于从离线下载服务器端下载完分片文件后预览该分片文件的内容,从而使用户判断目标文件是否为自己需要的。在本发明的一种实施例中,所述离线下载服务器也可以为一个以上的离线下载服务器集群。如图4为具有离线下载服务器集群的离线下载系统的一种示意图。参见图4,该系统在包括离线下载服务器集群的情况下,进一步包括离线下载调度服务器,主要用于:(81)接受离线下载服务器集群节点上报的负载信息;(82)收到离线任务管理服务器的离线下载任务请求后根据离线下载服务器的负载情况,动态地将离线下载任务调度到离线下载服务器集群的不同节点上执行具体的目标文件和分片文件的下载任务;(83)接受离线下载服务器节点汇报的目标文件和分片文件的下载状况信息(包括下载进度、下载速度等信息),同时把下载状况信息发送给离线下载任务管理服务器和文件切割分片服务器,在图4所示实施例中,所述离线下载服务器监测的分片文件的下载状态先同步给该离线下载调度服务器,再由该离线下载调度服务器同步给所述文件切割分片服务器;并且,离线下载调度服务器还将分片文件的下载状态同步给离线任务管理服务器,由离线任务管理服务器生成目标文件的总的下载进度同步给下载客户端供用户查看;(84)对相同的离线下载请求进行过滤,同一个离线下载请求只需要向离线下载服务器群发送一次,不同的用户可以共享同一个任务的离线下载进度信息。所述离线下载服务器集群除了上述具体离线下载服务器的功能外,还用于:向离线下载调度服务器注册自己的地址,并上报自身磁盘空间、CPU负载信息,供离线下载调度任务离线下载调度服务器按照负载进行动态均衡的下载调度;接收离线下载调度服务器的调度,从离线任务数据库中获取离线下载请求的原始链接,进行云端下载。本发明中,前述各个服务器可以分别是单独设置的物理服务器,也可以是服务功能模块,设置在一个或一个以上物理服务器之上。下面介绍本发明所述离线下载系统实现的网络资源文件的离线下载方法。
图5为本发明所述的一种网络资源文件的离线下载方法的主要流程图,参见图5,该方法包括:步骤501、离线下载服务器端将请求离线下载的目标文件逻辑分割为一个以上分片文件进行离线下载,并监测所述分片文件的下载状态;在离线下载完至少一个分片文件后通知下载客户端进行下载;所述离线下载服务器端就是指上述图3和图4所述离线下载系统中的服务器端。步骤502、下载客户端从离线下载服务器端下载所述已经完成离线下载的分片文件。本发明主要是用于对大文件和超大文件(例如大于SG的文件)的下载过程进行切割分解,例如对一个超大文件按照确定的逻辑切割规则进行逻辑切割,分解为指定大小或指定数目的多个分片文件,每个分片文件都是一个独立的整体,且监测维护每个分片文件的下载进度状态,不需要等整个文件下载完毕,只需要下载完成部分文件内容,就可以通知下载客户端用户从离线下载服务器端下载取回。下面介绍本发明所述方法的详细执行过程,具体包括:步骤601、下载客户端向离线任务管理服务器提交离线下载任务请求,其中包括需要下载的目标文件的大小等信息和下载地址,比如对应文件下载的HTTP链接,或者eMule链接或者BT下载种子。步骤602、离线任务管理服务器判断请求离线下载的目标文件的大小是否大于预设的阈值(例如可以设置为8G),如果是则判断目标文件为大文件或超大文件,需要进行切割分片下载,执行后续步骤;否则判定不需要进行切割分片下载,按照现有的处理方式进行处理。当然,本步骤602为可选步骤,也可以省略该步骤,对所有的目标文件都要进行切割分片下载。步骤603、离线任务管理服务器从所述离线任务数据库中查询下载结果记录,判断当前请求下载的目标文件是否已经被下载过且存在云存储服务器中,如果是则直接告知下载客户端离线下载成功,并通知下载客户端该目标文件的各分片文件的下载信息,下载客户端可以依据下载信息直接从云存储服务器下载分片文件,同时还可以使用P2SP技术从其他客户端的下载源进行下载,之后结束本处理流程;否则,离线任务管理服务器将离线下载任务请求发送给文件切割分片服务器,如可以将相应的HTTP的URL链接、eMule链接、或者BT种子文件信息发送给文件切割分片服务器,同时将该离线下载任务信息写入离线任务数据库。步骤604、文件切割分片服务器按照不同协议、不同类型的文件对应的文件切割分片规则将请求离线下载的目标文件逻辑分割为一个以上分片文件。此步骤中,由于此时目标文件还没有下载,因此只是将请求离线下载的目标文件在逻辑上分割为一个以上分片文件,并设置每个分片文件的唯一标识。所述逻辑分割的具体方式为:对于超大文件按照文件大小对大文件进行切割分片。分片文件规则可以和文件大小关联起来,文件越大,分片就越大。此处具体的分割方法有二种:第一种是按照固定分片数目的方式在逻辑上进行分割,即片数确定,每个分片文件的大小不确定;第二种是按照固定每个分片文件大小的方式在逻辑上进行分割,即除了最后一个分片文件为余数外,其余每个分片文件的大小确定,片数不确定,比如都是100M,但是分片文件的总的数目不确定。实际处理过程中可以依据需要确定具体的切割方式。通常文件越大,比如50G以上,可以采用第一种方法,其它的采用第二种方法。比如,按照文件下载的进度将文件切分为1024等份,每一份占总体进度约为千份之一,I个100G的文件,每个分片就是100M,如果定义大文件为8G以上的文件为大文件,那么I个分片就是8G/1024 = 8M。通常,没有切割分片之前,每一个目标文件都有唯一的I个HASH值作为标记,所述设置该目标文件每个分片文件唯一标识的具体方法根据目标文件的类型不同会有所不同,主要包括以下三种:(I)所述目标文件为URL标记的文件,则计算该目标文件的URL的HASH值,将该HASH值作为每个分片文件的唯一标识的前一部分,每个分片文件在目标文件中都有唯一的一个序号,用一个整数标识,每个分片的唯一标识的后一部分为该分片文件在该目标文件内的序号,组合在一起构成24个字节的唯一标识。(2)如果请求离线下载的是eMule任务,即所述目标文件为ed2k链接标记的文件,则计算所述目标文件的基于文件内容的HASH值(如MD5信息,通常为16个字节),将该HASH值作为每个分片文件的唯一标识的前一部分,每个分片文件唯一标识的后一部分为该分片文件在该目标文件内的序号。(3)如果请求离线下载的是BT种子文件,则情况复杂一些,由于BT种子是一个文件下载集合。一个BT种子当中可能包含一个以上文件。对BT种子中的每个目标文件,计算所述BT种子(即Torrent文件)的HASH值,将该HASH值加上目标文件在BT种子中的序号作为该目标文件的每个分片文件的唯一标识的前一部分,每个分片文件唯一标识的后一部分为该分片文件在该目标文件内的序号。在后续处理中,每个分片文件都对应一个唯一的下载状态。如果BT中间文件是小文件,没有到达到进行超大文件切割的界限就不需要进行切割。步骤605、文件切割分片服务器根据逻辑分割后的每个分片文件的大小和唯一标识(实质上是该唯一标识中的序号)确定该分片文件在所述目标文件内的偏移量,并将包含目标文件的下载地址和每个分片文件的唯一标识和在目标文件内的偏移量的离线下载请求发送给离线下载服务器以离线下载目标文件,同时还可以初始化分片文件的状态到切片状态数据库中,初始化就是将分片文件的唯一标识和下载进度为O的状态设置到所述切片状态数据库中。如果是离线下载服务器集群,则将上述离线下载请求发送给离线下载调度服务器,由该离线下载调度服务器根据离线下载服务器集群中的负载情况调度一个或一个以上的离线下载服务器进行离线下载目标文件。步骤606、离线下载服务器按照所述目标文件的下载地址下载目标文件,即进行云端下载,下载过程中,离线下载服务器可以使用自身的P2SP下载技术。在下载目标文件的过程中,实时根据所述分片文件在所述目标文件中的偏移量监测其中每一个分片文件的离线下载状态(至少包括下载进度,还可以包括下载速度等信息),即下载的最小粒度就是分片文件。并且,离线下载服务器将分片文件的下载状态信息实时同步给文件切割分片服务器并由文件切割分片服务器存储到切片状态数据库中,将总目标文件的下载状态信息同步给离线任务管理服务器。或者在使用离线下载服务器集群的情况下将分片文件的下载状态信息和目标文件的总下载状态信息同步给离线任务调度服务器,再由离线下载调度服务器将分片文件的下载状态信息同步给所述文件切割分片服务器,并由文件切割分片服务器存储到切片状态数据库中;离线下载调度服务器还将目标文件的总下载状态信息同步给离线任务管理服务器。步骤607、当离线下载服务器下载分片文件时,将所下载的分片文件数据同步存储到云端存储器中。云端存储器将该分片文件的存储地址(此处为该分片文件在云端存储器上存储的URL地址)返回给离线下载服务器,并由离线下载服务器将该分片文件的唯一标识和存储地址返回给离线任务管理服务器,或通过离线下载调度服务器返回给离线任务管理服务器。或者离线下载服务器只返回分片文件的唯一标识给离线任务管理服务器,离线任务管理服务器根据与云端存储器计算存储地址相同的算法计算出该唯一标识对应的存储地址。离线下载服务器还将每一分片文件的存储地址写入离线任务数据库,离线下载服务器下载完毕目标文件的所有分片文件后,还要将下载结果写入离线任务数据库。步骤608、当文件切割分片服务器通过所述同步的下载状态信息判定某一分片文件被离线下载服务器下载完毕后,通知离线任务管理服务器。离线任务管理服务器将该分片文件的存储地址发送给下载客户端。下载客户端根据该存储地址从所述云端存储器下载分片文件;或者,离线任务管理服务器也可以只将该分片文件的唯一标识发送给下载客户端,并将分片文件的唯一标识和存储地址发布到与该离线下载系统连接的P2P网络或P2SP网络中的资源索引数据库中,所述下载客户端通过所述分片文件的唯一标识从所述P2P网络或P2SP网络获取所述分片文件的存储地址,并根据该存储地址从云存储服务器下载对应的分片文件。步骤609、下载客户端从离线下载服务器端下载完分片文件后,由于该分片文件是一个独立的文件,因此还可以进一步预览该分片文件的内容,从而可以事先知道自身下载的目标文件是否是自己需要的,尤其对于视频文件,下载部分内容后可以进行内容的预览,相对于现有技术需要下载完全部目标文件到客户端本地后才能查看文件内容的方案,本发明可以减少不必要的等待时间,如果发现目标文件并不是用户需要的,则可以及时放弃下载,避免浪费带宽和时间。步骤610、所述下载客户端在下载完毕一个分片文件后,还可以将该分片文件的唯一标识作为本地文件的标记向与本客户端连接的PSP网络或P2SP网络中的Tracker服务器注册。通过此操作来将本地的该分片文件作为P2P网络或P2SP网络中的其它下载客户端的一个下载源,所述云存储服务器作为一个稳定源,这样可以进一步提高整体目标文件的下载速度。步骤611、下载客户端下载完目标文件的所有分片文件后,可以按照分片文件的大小和唯一标识计算每个分片文件在目标文件中的偏移量,并根据该偏移量将所有分片文件组合成一个目标文件。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
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所述的方法,其特征在于,该方法进一步包括:所述下载客户端在下载完毕一个分片文件后,将该分片文件的唯一标识作为本地文件的标记向点对点PSP网络或点对服务器和点P2SP网络中的追踪服务器注册,作为所述PSP网络或P2SP网络中其它客户端下载该分片文件的数据源。
12.根据权利要求4所述的方法,其特征在于,所述离线下载服务器端通知下载客户端下载所述分片文件的具体方法为: 离线下载服务器端将所述分片文件在离线下载服务器端的存储地址通知给下载客户端,下载客户端根据该存储地址从离线下载服务器端下载对应的分片文件: 或者,离线下载服务器端将已离线下载的分片文件的唯一标识和存储地址发布到P2P网络或P2SP网络中,并将分片文件的唯一标识通知给所述下载客户端;所述下载客户端通过所述分片文件的唯一标识从所述P2P网络或P2SP网络获取所述分片文件的存储地址,并根据该存储地址从离线下载服务器端下载对应的分片文件。
全文摘要
本发明公开了一种网络资源文件的离线下载系统和方法。所述系统包括下载客户端、离线任务管理服务器、离线任务数据库、离线下载服务器、云存储服务器以及文件切割分片服务器和切片状态数据库。所述方法包括离线下载服务器端将请求离线下载的目标文件逻辑分割为一个以上分片文件进行离线下载,并监测所述分片文件的下载状态;在离线下载完至少一个分片文件后通知下载客户端进行下载;下载客户端从离线下载服务器端下载所述已经完成离线下载的分片文件。利用本发明,可以缩短网络资源文件的总体下载时间,尤其有利于大文件和超大文件的下载和分发。
文档编号H04L29/08GK103139241SQ20111037797
公开日2013年6月5日 申请日期2011年11月24日 优先权日2011年11月24日
发明者刘刚, 王福臣, 黄琰 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1