首页> 中国专利> 一种网络资源文件的实时离线下载方法及系统

一种网络资源文件的实时离线下载方法及系统

摘要

本发明公开了一种网络资源文件的实时离线下载方法及系统,其以分片碎片大小为单位下载网络资源文件的分片碎片到离线空间,且在下载完成一个或以上分片碎片后,针对下载请求返回分片碎片。本发明一方面可避免用户离线下载时长时间等待下载服务器处理,提升用户体验,另一方面也降低了服务器离线存储空间成本。

著录项

  • 公开/公告号CN106254561A

    专利类型发明专利

  • 公开/公告日2016-12-21

    原文格式PDF

  • 申请/专利权人 上海安馨信息科技有限公司;

    申请/专利号CN201610892158.3

  • 申请日2016-10-12

  • 分类号H04L29/08(20060101);

  • 代理机构31224 上海天翔知识产权代理有限公司;

  • 代理人刘常宝

  • 地址 201306 上海市浦东新区南汇新城镇环湖西二路888号

  • 入库时间 2023-06-19 01:10:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-17

    授权

    授权

  • 2017-02-22

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20161012

    实质审查的生效

  • 2016-12-21

    公开

    公开

说明书

技术领域

本发明涉及网络数据通信技术,具体涉及实时离线下载技术。

背景技术

网络资源文件包括程序安装包、视频文件、音频文件等等。

目前已有的离线下载技术都是由下载服务器代替用户下载资源文件,等用户空闲时,再从下载服务器取回资源文件,主要目的是提高用户下载速度,缩短下载时间,免去用户下载的挂机烦恼。但事实上目前用户的使用感受是离线下载要先等待下载服务器下载完整个资源文件后,下载客户端才能下载,这意味着离线下载不一定缩短了用户下载资源文件的时间。

目前已有如下的离线下载方法:

1.腾讯科技(深圳)有限公司于2014年5月21日公开的专利“离线下载控制方法及装置”:其包括:

a)接收离线下载任务请求;

b)根据所述离线下载任务请求获取相应的下载链接信息;

c)以及获取所述离线下载任务的优先级标识,将优先级标识大于阈值的离线下载任务优先进行调度下载。

该专利侧重于对离线下载任务优先级进行调度,使优先级较高的离线下载任务优先于其他离线下载任务下载。

2.腾讯科技(深圳)有限公司于2014年3月26日公开的专利“离线下载系统和方法”:其包括:

a)离线任务管理服务器,用于获取离线下载请求,所述离线下载请求中包括请求离线下载的客户端的IP地址和离线任务的原始下载链接;

b)离线任务分发服务器,用于根据所述IP地址查找到与所述客户端位于同一城域网内的分布式离线下载服务器,并将所述离线任务分发给查找到的分布式离线下载服务器;

c)分布式离线下载服务器,部署在城域网的网络出口处,用于根据所述离线任务的原始下载链接获取所述离线任务对应的数据内容并存储。

该专利设计的下载系统拥有多个下载服务器,在响应下载客户端请求时,根据下载客户端的IP地址选择与下载客户端处于同一网域的下载服务器,是在物理上尽可能的缩短下载服务器与下载客户端的距离。

3.腾讯科技(深圳)有限公司于2014年3月26日公开的专利“离线缓存的方法及装置”:其包括:

a)根据用户终端的指令发起资源下载请求;

b)截获所述资源下载请求,并从所述资源下载请求中解析出下载资源的标识;

c)根据所述标识判断本地数据库中是否存在所述标识对应的资源;

d)当存在时,封装本地数据库中资源并响应所述资源下载请求,完成资源下载。

该专利在离线缓存方面使用了对所述资源进行唯一标识的方法,但没有考虑的离线存储空间有限的问题。

4.腾讯科技(深圳)有限公司于2013年8月21日公开的专利“文件共享的方法及系统”:该方法包括:

a)接收用户终端提供方发送的包含下载地址的下载请求;

b)由下载地址进行数据下载,存储下载的文件,并将存储文件的链接地址反馈给用户终端提供方;

c)接收用户终端请求方发送的包含链接地址的共享请求,将与链接地址对应的文件传送给用户终端请求方。

上述特征a)b)c)在接收用户终端下载请求的同时,也将用于终端作为资源服务器,来对其他请求相同文件的用户终端共享该文件,以此可减轻下载服务器负载。

5.腾讯科技(深圳)有限公司于2013年6月5日公开的专利“网络资源文件的离线下载系统和方法”:其包括:

a)下载客户端、离线任务管理服务器、离线下载服务器、云存储服务器、文件切割分片服务器,其中:

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

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

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

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

6.腾讯科技(深圳)有限公司于2013年5月22日公开的专利“一种离线下载的方法及系统”:其包括以下步骤:

a)接收用户发送的文件离线下载请求信息,所述文件离线下载请求信息中携带有该文件的统一资源定位符URL;

b)在离线任务数据库中查询是否存在正在下载或者已下载完成的与所述文件离线下载请求信息相对应的文件;

c)在存在时,检测所述文件是否发生变化;

d)在发生变化时,根据所述URL从目标网站下载所述文件,并更新原有文件。

上述特征a)b)c)所述方法,目的在于检查已存在的离线下载请求,该请求所述文件是否已经发生变化。

7.腾讯科技(深圳)有限公司于2013年5月15日公开的专利“一种下载文件的方法及文件下载系统”:其包括:

a)接收离线任务下载请求,为离线任务下载请求中的每一独立文件设置文件标识;

b)下载离线任务,以文件标识存储离线任务中下载的文件;

c)确定文件下载完毕,向下载客户端输出文件下载完毕通知消息,携带文件标识;

d)根据文件下载完毕通知消息中携带的文件标识下载存储的离线下载文件。

8.腾讯科技(深圳)有限公司于2013年12月4日公开的专利“离线下载方法和系统”:其特征在于,该系统还包括:

a)离线下载任务调度服务器,用于从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器;

b)以及,从离线下载文件聚类分析服务器接收到第一通知时,将该第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件;

c)离线下载文件聚类分析服务器,用于接收来自所述离线下载任务调度服务器发送的文件名,并分析所述聚类结果数据库中是否存在与该接收的文件名相似的其他文件名,如果是,发送第一通知给离线下载任务调度服务器,第一通知携带以下信息:

d)该存在的文件名以及与该文件名相关的下载链接信息,所述与文件名相关的下载链接信息为:

e)具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息。

9.深圳市腾讯计算机系统有限公司于2013年8月14日公开的专利“BT离线数据下载系统及方法”:其包括:

a)离线下载任务管理服务器,用于接收至少一个下载任务,所述下载任务是从下载客户端获取的用户从离线下载种子任务中选取的至少部分文件的下载任务,将所述至少一个下载任务发送给离线下载调度服务器;

b)所述离线下载调度服务器用于对所述至少一个下载任务进行排重合并处理,再将经过排重合并处理后的至少部分文件的下载任务分发给离线下载服务器;

c)所述离线下载服务器用于根据排重合并处理后的所述至少部分文件的下载任务下载数据,将下载完成的数据存储到存储服务器中;

d)所述下载客户端还用于从所述存储服务器下载所述下载客户端对应的用户选取的下载任务对应的至少部分文件的下载完成的数据。

上述特征a)b)c)d)是针对于BT任务,其也用到离线存储服务器。

10.深圳市腾讯计算机系统有限公司于2013年8月14日公开的专利“一种离线下载资源的系统、方法及装置”:其包括:

a)种子文件服务器、客户端和离线下载服务器群,其中,种子文件服务器,用于从客户端获取上传的种子文件后,和/或,从互联网获取对应资源的种子文件后将种子文件进行存储;

b)客户端,发送资源下载请求;

c)离线下载服务器群,用于接收所述资源下载请求,从种子文件服务器读取所述资源对应的种子文件,根据所述种子文件下载资源。

上述特征a)b)c)所述,该离线下载方法重在服务器群的任务分发分配。

11.百度在线网络技术(北京)有限公司于2013年7月31日公开的专利“离线下载方法和离线下载服务器”:其包括以下步骤:

a)用户向离线下载服务器提交下载任务;

b)所述离线下载服务器判断所述下载任务是否是已经下载过的任务;

c)如果否,则根据所述下载任务判断下载方式;

d)根据所述下载方式将与所述下载任务对应的资源下载到所述离线下载服务器;

e)以及将所述资源拷贝到所述用户的空间。

12.北京极科极客科技有限公司于2015年7月29日公开的专利“一种基于路由器的离线下载系统”:其包括:

a)该系统分为4个层次:第一层是下载器层,用于系统后台运行的下载器进程;

b)第二层是下载器封装接口层,用于对下载器进行封装,对外提供统一的接口,第二层还具有数据库模块,用于存储任务状态;

c)第三层是下载器和数据库抽象层,用于对数据库和下载器进行封装,对外提供统一的任务控制接口体系;

d)第四层是对外接口层,用于和用户进行交互。

该专利的离线下载系统,将路由器当作下载服务器,并连接外置存储设备作为离线存储空间。

13.北京奇虎科技有限公司;奇智软件(北京)有限公司于2015年2月11日公开的专利“进行文件下载的方法、装置及浏览器客户端”:其包括:

a)检测到浏览器客户端中的对于待下载文件的文件下载事件;

b)启动浏览器客户端中的下载组件以显示对所述待下载文件进行的接收的下载界面,其中在所述下载界面加载有进行离线下载的入口;

c)接收到对所述离线下载的入口的触发,提取所述待下载文件的下载用信息并上传到浏览器客户端用户对应的下载服务器侧,以便所述下载服务器侧使用所述下载用信息进行所述待下载文件的下载;

d)接收到所述下载服务器返回的对待下载文件进行下载的状态信息和/或结果信息,并发送回所述浏览器客户端侧进行显示和/或访问。

14.北京奇虎科技有限公司;奇智软件(北京)有限公司于2013年11月13日公开的专利“资源离线下载方法及装置”:其包括:

a)根据需要离线下载的资源的网络属性确定所述资源所归属的网络运营商;

b)根据设定的任务调控策略,从所述网络运营商的离线下载服务器集群中选择离线下载服务器,其中,所述离线下载服务器用于对资源进行离线下载;

c)将所述资源的离线下载任务分配给所选择的离线下载服务器以进行离线下载。

15.北京奇艺世纪科技有限公司于2015年2月18日公开的专利“一种离线下载文件的方法及装置”:其包括:

a)当到达特定的时刻时,自动向服务器发送下载请求;

b)所述下载请求携带有身份标识符,以使得所述服务器获取所述下载请求后,根据预先建立的所述身份标识符对应的第一类用户模型确定出所述下载请求对应的推荐文件;

c)并将所述推荐文件的网络下载地址反馈给所述终端;

d)其中,所述身份标识符为持有所述终端的用户访问文件时所依据的标识信息,所述特定的时刻为根据预先建立的第二类用户模型所确定出的时刻或用户设置的时刻;

e)接收服务器反馈的推荐文件的网络下载地址;根据所述推荐文件的网络下载地址,自动离线下载所述推荐文件。

16.网易(杭州)网络有限公司于2015年5月27日公开的专利“一种离线下载方法及装置”:其包括:

a)根据资讯源的使用量计算所述资讯源的热度值;

b)根据所述资讯源的热度值确定资讯源离线下载顺序。

17.武汉极讯软件有限责任公司于2014年3月12日公开的专利“文件下载方法、装置及系统”:其包括:

a)在创建并执行第一下载任务后创建对应的离线下载任务并发送到离线下载服务器,所述第一下载任务用于指示移动终端从目标服务器下载文件;

b)在接收到离线下载服务器返回的文件下载完成消息且第一下载任务未完成时,创建用于从离线下载服务器获取所述待下载的文件的第二下载任务;

c)以及基于所创建的第一下载任务和第二下载任务,按照多源下载的方式,同时从目标服务器和离线下载服务器继续获取待下载文件中未完成下载的内容。

18.Tencent Technology(Shenzhen)Company Limited,ShenZhen(Guangdong)(CN)于2013年4月24日公开的专利“OFFLINE DOWNLOAD METHOD,MULTIMEDIA FILEDOWNLOAD METHOD AND SYSTEM THEREOF”。

19.Olivier Chalouhi,Redwood City,CA(US);Paul Anton RichardsonGardner,PaloAlto,CA(US)于2010年8月10日公开的专利“OFFLINE DOWNLOADER”。

20.学位论文-硕士2011年刊载《Linux多协议多线程下载技术的研究与实现》一文中第4章,在文件的分块方面使用了一个固定分块数量,但是该固定分块数量没有依据服务器的实际运行情况来定,这不利于实时离线下载,尤其在下载客户端请求超大文件时,会导致下载客户端等待较长一段时间才开始从下载服务器取回数据。

21.学位论文-博士2014年刊载《云下载系统的理论模型与资源分配算法研究》一文中,主要工作和创新点如下:

a)用户与云下载系统交互模型;

b)用户与云下载系统的合作机制;

c)云下载系统存储容量模型;

d)云下载系统存储资源分配与管理。

上述4点中a),重点在于研究下载客户端提交下载请求后,不需要立即从下载服务器取回文件的情况;

上述4点中c)d)研究的是离线下载存储空间利用率的问题,揭示了云缓存量和用户请求数与缓存文件数和用户删除行为与文件有效期的关系,并建立了存储容量模型最终给出基于该模型的存储资源分配与管理方法。

22.期刊论文-电子世界2012年刊载《利用P2P下载工具实现离线下载服务》一文中,包括以下几个模块:

a)用户离线下载Portal页面;

b)下载任务管理模块;

c)下载引擎模块;

d)文件管理模块。

23.期刊论文-计算机技术与发展2014年刊载《基于P2SP的网络下载技术分析》一文中,离线下载方面采用的方法是要求离线服务器将用户提交的下载连接的文件下载完成后,用户才能取回本地。但是这样的方法毫无实时效果,对用户而言需要长时间等待方能开始下载,降低了用户体验。

24.期刊论文-电脑知识与技术2013年刊载《基于云存储的离线下载系统》一文中,包含一下3个方面:

a)云存储数据缓存;

b)双机热备;

c)离线下载系统设计。

上述a),提出通过文件存储价值函数的概念,为公共存储提供更新策略,其价值函数主要考虑了四个方面,分别是文件大小、总下载时间、上一次命中时间和命中次数。从另一个角度来看,这也是在最大化离线存储空间的利用率,但是,对于总下载时间肯定大多数情况下是不准确的,毕竟服务器时刻都在使用网络。

25.期刊论文-小型微型计算机系统2013年刊载《封闭式P2P网络中的离线数据存储》一文中涉及到的离线数据存储是针对用户而言的,目的是让用户登录后知道自己拥有的离线数据是哪些。

26.学位论文-硕士2010年刊载《迅雷离线下载分布式文件系统的设计与实现》一文中,包含以下几个方面:

a)分布式文件系统需求分析;

b)分布式文件系统的设计;

c)分布式文件系统的实现;

d)分布式文件系统的测试及评价。

27.学位论文-硕士刊载《离线下载系统设计与资源存储策略研究》一文中包含2个方面:

a)AmazingStore离线下载系统

b)存储容量规划策略和多种淘汰策略

上述a),是要等待下载服务器将整个资源文件下载完成后,用户才能从下载服务器取回资源文件;

上述b),单从用户的角度出发考虑命中率,对离线存储空间整体的利用率而言是十分不利的。

28.学位论文-硕士刊载《P2P离线下载系统中数据存储、内容分发和协作机制研究》一文中,包含以下几个方面:

a)P2P离线下载架构

b)P2P用户共享文件

29.学位论文-博士刊载《P2P环境下内容预约的相关机制及核心技术研究》一文中,离线下载方面侧重于冷门资源,下载客户端必须等待下载服务器下载完整个资源文件后,下载客户端才开始下载。但是这将会大大降低用户的离线下载体验。

30.Cyber-Enabled Distributed Computing and Knowledge Discovery(CyberC),2012International Conference on刊载《Offline Downloading:A Non-Traditional Cloud-Accelerated and Peer-Assisted Content Distribution Service》一文中,包含一下2个方面:

a)云缓存带宽分配策略(flexible bandwidth allocation strategy for Cachecloud);

b)通过云加速和对等网络协助在不影响离线下载服务质量的情况下节省云缓存带宽(saving the Cache cloud bandwidth without affecting service quality bymaximizing the cooperation between cloudacceleration and peer-assistance)。

31.Wireless,Mobile&Multimedia Networks(ICWMMN 2011),4th IETInternational Conference on刊载《User data mining in a large-scale peer-assisted offline download system》一文中,是对国内QQ旋风下载软件的大量真实用户使用数据的分析,来对未来离线下载系统的改进提供理论基础。

32.Proceedings of the 2015 ACM Conference on Internet MeasurementConference刊载《Offline Downloading in China:A Comparative Study》一文中,对国内的2种流行离线系统模型进行测试,并根据测试结果提出了有利于解决离线下载速度瓶颈的新模型。

33.Parallel Processing(ICPP),2011International Conference on刊载《Onthe QoS of Offline Download in Retrieving Peer-Side File Resource》一文中,根据QQ旋风离线下载数据测试结果提出了一个为离线下载服务质量预测的方法,同时实现了离线下载的原型模型。

上述的这些离线下载方案普遍存在户下载资源文件的时间较长的问题,这大大影响用户离线下载的体验。因而,现有技术存在有待改进和发展的空间。

发明内容

针对现有离线下载技术所存在的问题,需要一种下载时间更短的离线下载技术。

由此,本发明所要解决的技术问题是提供一种网络资源文件的实时离线下载方法及系统,实现实时的离线下载,有效缩短资源文件下载时间。

为了解决上述技术问题,本发明提供的网络资源文件的实时离线下载方法,以分片碎片大小为单位下载网络资源文件的分片碎片到离线空间,且在下载完成一个或以上分片碎片后,针对下载请求返回分片碎片。

优选的,所述实时离线下载方法中,根据当前运行负载情况,确定从网络下载资源文件时的文件下载分片数量。

优选的,针对任意一资源文件,设置不同分片数量,对该资源文件进行下载,并记录每种分片数量的下载时间,取下载时间开始趋于预定阈值时对应的分片数量作为下载资源文件时的分片数量。

优选的,所述实时离线下载方法中根据下载资源文件分片碎片的速度和返回分片碎片的速度动态的调整下载网络资源文件的分片碎片大小。

优选的,在下载过程中,实时记录下载网络资源文件的分片碎片到离线空间时的下载每个分片碎片时的速度和针对下载请求返回每个分片碎片时的速度,并根据这两速度的平均值动态确定下载网络资源文件的分片碎片大小。

优选的,所述实时离线下载方法中将资源文件的分片碎片以唯一标识名格式存储在离线存储空间,并根据碎片唯一标识名返回分片碎片内容和分片碎片信息。

优选的,所述实时离线下载方法中在离线存储空间容量不足时,清除最近最久,且被下载次数最少的资源文件。

优选的,所述实时离线下载方法中对每个下载请求设置一定数量的标记位,每个标记位用于记录在一定数量的下载请求中,该下载请求的下载量;

在每累积到一定数量的下载请求后,便将所有下载请求的标记位进行算术右移;

当离线存储空间不足时,找出所有下载请求的标记值最小者,并删除该下载请求对应的所有信息及离线存储空间的文件的所有分片碎片。

优选的,所述实时离线下载方法的流程如下:

获取下载请求,并查找下载请求是否已经存在;

如果不存在,则根据预先确定的适合的文件下载分片数量对下载请求针对的资源文件进行分片,并确定分片碎片大小;启动相应分片数量的线程数,以确定的分片碎片大小为单位下载每个分片碎片到离线存储空间,并保存分片碎片信息到相应的数据库;

如果存在或者下载完成了至少1个分片碎片,在获取到获取分片碎片请求后,返回分片碎片。

优选,在确定一个周期或当离线存储空间不足时进行离线存储空间文件清除。

为了解决上述技术问题,本发明提供的网络资源文件的实时离线下载装置包括:

下载客户端,所述下载客户端向下载服务器提交下载请求;

下载服务器,所述下载服务器响应下载客户端提交的下载请求,以分片碎片大小为单位下载网络资源文件的分片碎片到离线空间,且在下载完成一个或以上分片碎片后,向下载客户端返回分片碎片。

优选的,所述下载客户端在提交的下载请求存在下载服务器中或下载服务器下载完成了至少1个分片碎片后,下载客户端向下载服务器发起获取分片碎片请求。

优选的,所述下载客户端按照分片序号和碎片序号从小到大的顺序依次向下载服务器请求分片碎片,并记录已接收字节数。

优选的,所述下载服务器主要包括:

文件下载分片模块,所述文件下载分片模块确定下载服务器从网络下载资源文件时的文件下载分片数量;

分片下载动态碎片模块,所述分片下载动态碎片模块动态的调整下载服务器下载网络资源文件的分片碎片大小;

分片碎片共享调度模块,所述分片碎片共享调度模块根据碎片唯一标识名从离线存储空间获取并向下载客户端返回分片碎片内容和分片碎片信息;

离线存储空间,所述离线存储空间存储下载服务器下载的资源文件的分片碎片。

优选的,所述下载服务器还包括离线存储空间文件淘汰模块,所述离线存储空间文件淘汰模块在确定一个周期或当离线存储空间不足时进行离线存储空间文件清除。

本发明提供的网络资源文件的实时离线下载方案,以分片碎片大小为单位从网络资源服务器下载网络资源文件的分片碎片到离线空间,且在下载完成一个或以上分片碎片后,即针对下载请求返回相应的分片碎片(无需等待网络资源文件下载完成),达到接近实时离线下载的效果,可有效缩短资源文件下载时间,提升用户的离线下载体验,并有利于离线存储空间最大化利用率。

附图说明

以下结合附图和具体实施方式来进一步说明本发明。

图1为本发明实例中网络资源文件实时离线下载系统的布置示意图;

图2本发明实例中离线存储空间文件淘汰方法流程图;

图3本发明实例中分片碎片共享调度方法流程图;

图4为本发明实例中文件下载分片方法流程图;

图5本发明实例中分片下载动态碎片方法流程图。

具体实施方式

为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。

本发明提供离线下载方案,以分片碎片大小为单位从网络资源服务器下载网络资源文件的分片碎片到离线空间,且在下载完成一个或以上分片碎片后,即可针对下载请求返回相应的分片碎片(无需等待网络资源文件下载完成),由此实现实时的离线下载。

在此原理基础上,本发明提供的离线下载方案由以下基本方法配合实现,为了清楚说明本方案,以下引入离线下载服务端(如下述的下载服务器)作为实施主体进行说明(但并不限于此):

1.文件下载分片方法:根据离线下载服务端的当前运行负载情况,确定离线下载服务端下载资源文件的分片数量,以用于对相应的资源文件进行分片。

具体的,本方法通过下载一个任意大小的网络资源文件,设置不同分片数量,据此对该资源文件进行分片下载,并记录每种分片数量的下载时间,取下载时间开始趋于预定阈值时对应的分片数量作为本离线下载服务端下载资源文件时的分片数量。

2.分片下载动态碎片方法:碎片即是对分片再细分的更小分片,该方法用于动态地计算离线下载服务端下载资源文件时的分片的碎片大小。

具体的,本方法中预设分片碎片大小初始值为250KB,在下载过程中,实时记录离线下载服务端下载资源文件的每个分片碎片时的速度和离线下载服务端向离线下载请求端(如下述的下载客户端)返回每个分片碎片的速度(即离线下载请求端从离线下载服务端下载每个分片碎片的速度),取这2个方面的速度的平均值的8倍,并以该值作为资源文件下载时的碎片大小,该碎片大小根据上述2个方面的下载速度是动态变化的。

3.分片碎片共享调度方法:当多个离线下载请求端请求同一个资源文件时,该方法用于使得离线下载服务端向每个离线下载请求端返回正确的分片碎片及分片碎片信息。

具体的,本方法将下载的资源文件的分片碎片在离线下载服务端的离线存储空间,且该分片碎片的唯一标识名格式为“文件名-分片序号-碎片序号”;同时在数据库中记录碎片相对于原文件字节开始处的偏移量及碎片大小。

在获取到离线下载请求端提交的请求分片碎片时,根据碎片唯一标识名向离线下载请求端返回碎片偏移量、碎片大小和碎片内容3部分信息。

同时,这里的离线下载请求端按照分片序号和碎片序号从小到大的顺序依次向离线下载服务端请求分片碎片,并记录已接收字节数。

4.离线存储空间文件淘汰方法:当离线下载服务端的离线存储空间容量不足时,通过该方法清除最近最久,且被下载次数最少的文件。

具体的,本方案基于LRU算法(页面置换算法),对每个下载请求设置一定数量的标记位,每个标记位用于记录在一定数量的下载请求中,该下载请求的下载量;在离线下载服务端每累积到一定数量的下载请求后,便将所有下载请求的标记位进行算术右移;当离线下载服务端的离线存储空间不足时,找出所有下载请求的标记值最小者,并删除该下载请求在离线下载服务端中的所有信息及离线存储空间的文件的所有分片碎片。

基于上述方案,本发明进行实时离线下载的基本流程如下:

1)离线下载服务端获取到下载请求,并查找下载请求是否已经存在;

2)如果不存在,则根据事先通过执行文件下载分片方法确定的适合本离线下载服务端的文件下载分片数量对下载请求针对的资源文件进行分片,并由分片下载动态碎片方法确定分片碎片大小;据此启动相应分片数量的线程数,以确定的分片碎片大小为单位下载资源文件对应的每个分片碎片到离线存储空间,并保存分片碎片信息到数据库;

3)如果存在,或者下载完成了至少1个分片碎片,在获取到离线下载请求端提交的获取分片碎片请求后,由分片碎片共享调度方法向离线下载请求端返回分片碎片。

在该下载流程中,在确定一个周期或当离线存储空间不足时,将执行离线存储空间文件淘汰方法对离线存储空间中的文件进行清除。该清除步骤可在离线下载服务端检查到下载请求不存在时进行。

以下通过一具体应用实例来说明本发明提供的网络资源文件实时离线下载方案的实施过程。

参见图1,其所示为本实例中网络资源文件实时离线下载系统的布置示意图。

由图可知,整个实时离线下载系统主要下载客户端100和下载服务器200两部分。

其中,下载客户端100,作为离线下载请求端,用于向下载服务器200提交相应的资源文件下载请求,以及获取分片碎片请求。

该下载客户端100以相应的软件程序形式展现,其运行在相应的智能终端(如手机、PAD)、PC等设备中,为使用者提供实时离线下载功能。

再者,下载客户端100在下载服务器200返回其提交的下载请求存在下载服务器中或下载服务器下载完成了至少1个分片碎片后,向下载服务器发起获取分片碎片请求。

对于该分片碎片请求,下载客户端按照分片序号和碎片序号从小到大的顺序依次向下载服务器请求分片碎片,并记录已接收字节数。

下载服务器200,作为离线下载服务端,用于响应下载客户端提交的下载请求,以分片碎片大小为单位从资源服务器300中下载网络资源文件的分片碎片到离线空间,且在下载完成一个或以上分片碎片后,向下载客户端返回分片碎片。

本实例中的下载服务器200中包括如下功能模块:

主进程模块、下载请求响应模块、数据库查询更新模块、数据库、离线存储空间、文件下载分片模块、分片下载动态碎片模块、分片碎片共享调度模块、离线存储空间文件淘汰模块。

其中,主进程模块协调控制其它模块来完成实时离线下载任务。

下载请求响应模块用于接收响应下载客户端提交的下载请求。

数据库,主要用于存储资源服务器300返回的分片碎片信息以及下载服务器中各任务的运行状态,这里的分片碎片信息包括碎片偏移量和碎片大小。

数据库查询更新模块,用于查询更新数据库中的相关数据。

离线存储空间,用于存储从资源服务器下载请求文件的碎片,且该分片碎片的唯一标识名格式为“文件名-分片序号-碎片序号”。

文件下载分片模块,执行文件下载分片方法,以确定下载服务器从网络下载资源文件时的文件下载分片数量,并据此对下载请求针对的资源文件进行分片。

分片下载动态碎片模块,执行分片下载动态碎片方法,用于动态的调整下载服务器下载网络资源文件的分片碎片大小。

分片碎片共享调度模块,执行分片碎片共享调度方法,用于根据碎片唯一标识名从离线存储空间获取并向下载客户端返回分片碎片内容和分片碎片信息。

离线存储空间文件淘汰模块,执行线存储空间文件淘汰方法,用于在确定一个周期或当离线存储空间不足时进行离线存储空间文件清除。

据此构成的实时离线下载系统,其运行的基本过程如下:

首先,由下载客户端通过网络向下载服务器提交下载请求,下载服务器通过下载请求响应模块接收下载请求,并查找下载请求是否已经存在:

如果存在,则向下载客户端返回下载任务已存在的消息;

如果不存在,下载服务器中用于响应该请求的脚便会通过离线存储空间文件淘汰模块执行“离线存储空间文件淘汰方法”,对下载服务器的离线存储空间进行清除;同时针对下载请求形成新的下载任务。

这里的离线存储空间文件淘汰过程,具体包括以下几个步骤(参见图2):

a)设置J个标记位,每个标记位用于记录在I个下载请求中该下载请求的数量(以下步骤假设J=7,I=100);

b)设置Dj=0,其中j是1~7的自然数,7个标记位按D7D6D5D4D3D2D1的顺序排列;

c)置I=0;

d)下载客户端向下载服务器提出下载请求;

e)I=I+1;

f)判断I是否大于100;

g)如果是,则将7个标记位右移1个标记位,最高标记位D7=0代替,最低标记位D1丢弃,跳转到步骤i);

h)如果否,跳转到步骤i);

i)判断下载请求是否已经存在;

j)如果否,在下载服务器数据库中插入下载请求记录,置状态为0,置D7=1,7个标记位也作为这条记录的一个字段插入数据库,跳转到步骤I);

k)如果是,置D7=D7+1,更新数据库,通知下载客户端任务已存在,跳转到步骤o);

l)判断离线存储空间是否有足够空间装下下载请求的文件;

m)如果否,将所有下载请求的标记位,从D7-D1,按位比较,找出最小标记位序列,删除该标记位序列所代表的下载请求及在离线存储空间存储的文件,跳转到步骤l);

n)如果是,跳转到步骤o);

o)等待下一个下载请求,并跳转到步骤d)。

下载客户端一旦得到任务已存在的消息,该消息中包含本下载客户端的下载请求在下载服务器数据库中的ID,因此下载客户端将直接向下载服务器请求分片碎片。

此时下载服务器会根据该ID执行“分片碎片共享调度方法”,向下载客户端返回相应的分片碎片内容和分片碎片信息。

这里进行分片碎片共享调度的过程,具体包括以下几个步骤(参见图3):

a)下载客户端向下载服务器提出下载分片碎片请求;

b)下载服务器预置标记,FNn=0,其中下标n是0~分片数量-1的自然数,记录待下载分片的下一个待下载碎片序号;

c)下载客户端预置标记,R=0,记录已接收字节数(以下步骤假设分片数量为16);

d)下载服务器查询数据库获取下载请求的文件在下载服务器离线存储空间中的根文件名FN;

e)下载服务器使用根文件名和分片序号n、分片碎片序号m,组合成分片碎片文件名FN-n-m,初始值为FN-0-0,其中n是0~15的自然数,m是大于或等于1的自然数;

f)下载客户端向服务器发送下载分片碎片请求;

g)检测离线存储空间中是否存在FN-n-m;

h)如果否,记录当前分片碎片标记FNn=m,n=(n+1)/16,m=FNn/16,返回步骤g),进入下一次循环;

i)如果是,返回分片碎片及分片碎片信息给下载客户端,其中分片碎片信息包括碎片大小和碎片偏移量;

j)R=R+分片碎片大小;

k)判断R是否大于或等于文件大小;

l)如果否,m=m+1,返回步骤f),进入下一次循环;

m)如果是,结束下载。

下载服务器通过主进程来检测未下载的新任务并创建子进程下载新任务,查询更新数据库,调用文件下载分片模块执行“文件下载分片方法”。

主进程每次启动,第一个任务就是调用文件下载分片模块执行“文件下载分片方法”以确定适合下载服务器使用的最佳的分片数量。

这里文件下载分片模块执行“文件下载分片方法”的具体步骤如下(参见图4):

a)对网络中的某一个文件分片,分成n片,其中n是1~50的自然数,初始值为1;

b)启动n个线程下载分片,并统计下载时间Tn;

c)处理下载时间ΔT1=Tn-Tn-1,ΔT2=Tn+1-Tn,ΔT3=(||ΔT2|-|ΔT1||)/|ΔT1|;

d)判断ΔT3是否小于0.5;

e)如果是,则确定分片数量为n;

f)如果否,则n加1后,返回步骤b),进入下一次循环。

分片数量确定后,所述主进程将进入如下循环:

a)查询数据库;

b)判断是否有新的下载请求;

c)如果否,返回步骤a),进入下一次循环;

d)如果是,取出该下载请求ID,并修改该下载请求状态为1,创建并传递下载请求ID给子进程;

e)返回步骤a),进入下一次循环。

上述主进程创建的子进程负责以分片碎片大小为单位向资源服务器300下载分片碎片,并保存分片碎片信息到数据库中。

这里的子进程的数量与确定适合下载服务器200使用的最佳的分片数量相对应,这些子进程向向资源服务器300并发请求分片碎片,实现多线程并发的以分片碎片大小为单位向资源服务器300下载分片碎片;而资源服务器300则向下载服务器200并发返回多个分片碎片。

下载服务器200将从下载服务器200下载的资源文件的分片碎片(即资源服务器300向下载服务器200返回的分片碎片)存在离线存储空间中且分片碎片在离线存储空间唯一标识名格式为“文件名-分片序号-碎片序号”,同时保存分片碎片信息到数据库。

其中分片碎片大小的初始值默认是250KB。当一个分片碎片下载完成后,下载客户端开始向下载服务器下载分片碎片。

在这个过程中,当下载服务器或下载客户端完成一定量的分片碎片下载后,就会调用分片下载动态碎片模块执行“分片下载动态碎片方法”,以动态地改变分片碎片下载,随着分片碎片的下载数量的增加,分片碎片的大小将越来越接近最佳大小。

这里分片下载动态碎片模块执行“分片下载动态碎片方法”的具体过程包括以下步骤(参见图5):

a)下载服务器响应下载客户端的下载请求;

b)预置标记,ΔF1=ΔF2=250,其中ΔF1在数值上等于下载服务器从资源服务器下载时的速度,ΔF2在数值上等于下载客户端从下载服务器下载时的速度;

c)启动下载进程以碎片为单位下载文件,并统计k1个碎片的下载时间T1,其中k1是大于或等于1的自然数;

d)处理:ΔF1=(m*k1)/T1

e)碎片大小F=8*(ΔF1+ΔF2)/2,这种碎片称为动态碎片;

f)下载客户端从下载服务器下载碎片并统计下载k2个碎片的下载时间T2,其中k2是大于或等于1的自然数;

g)处理:ΔF2=(m*k2)/T2

h)动态碎片大小F=8*((ΔF1+ΔF2)/2);

i)返回步骤c),进入下一次循环。

此外,在这个下载过程中,还会执行“分片碎片共享调度方法”,该方法的具体步骤如上,此处不再重复描述。

另外,在子进程完成所有碎片的下载后,更新数据库中该下载请求的状态为2。

由上实例可知,该方案能够实现网络资源文件的实时离线下载。这里实现的实时,能够让用户在使用离线下载时,感觉只等待了离线下载服务器不到5s的时间亦或甚至毫无等待,便开始下载资源文件,提升用户的离线下载体验且整个过程有利于离线存储空间最大化利用率。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号