著录项信息
专利名称 | 离线下载方法和系统 |
申请号 | CN201210151239.X | 申请日期 | 2012-05-16 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2013-12-04 | 公开/公告号 | CN103428231A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 刘刚 |
代理机构 | 北京德琦知识产权代理有限公司 | 代理人 | 杨春香;宋志强 |
摘要
本发明提供了离线下载方法和系统。其中,该方法包括以下步骤:离线下载任务调度服务器从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器;离线下载文件聚类分析服务器分析所述聚类结果数据库中是否存在与该接收的文件名相似的其他文件名,如果是,发送第一通知给所述离线下载任务调度服务器;离线下载任务调度服务器将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件。
1.一种离线下载系统,该系统包括:下载客户端、云存储服务器和至少一个离线下载服务器;其特征在于,该系统还包括:
离线下载任务调度服务器,用于从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器;以及,从离线下载文件聚类分析服务器接收到第一通知时,将该第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件;
离线下载文件聚类分析服务器,用于接收来自所述离线下载任务调度服务器发送的文件名,对所述文件名进行过滤处理以删除文件名中与文件名内容无关的符号和字段,并分析聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名,如果是,发送第一通知给离线下载任务调度服务器,第一通知携带以下信息:该存在的文件名以及与该文件名相关的下载链接信息,所述与文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息;
所述离线下载文件聚类分析服务器分析聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名包括:
所述离线下载文件聚类分析服务器对过滤后的文件名执行切词处理;
所述离线下载文件聚类分析服务器从聚类角度和相似度角度分析所述聚类结果数据库中是否存在切词处理后的文件名所属的聚类,如果是,确定该存在的聚类中至少一个文件名与该接收的文件名相似。
2.根据权利要求1所述的系统,其特征在于,所述离线下载任务调度服务器从当前接收的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器包括:
所述离线下载任务调度服务器判断之前是否已收到与当前接收的离线下载请求相同的其他离线下载请求,如果是,通知所述下载客户端共享所述离线下载任务调度服务器之前已收到的离线下载请求的离线下载信息,由所述下载客户端根据所述离线下载信息下载其需要的文件;如果否,从当前接收的离线下载请求中提取出文件名,并传给所述离线下载文件聚类分析服务器。
3.根据权利要求1至2任一所述的系统,其特征在于,所述离线下载文件聚类分析服务器在分析出所述聚类结果数据库中不存在与过滤后的文件名相似的文件名时,进一步发送第二通知给所述离线下载任务调度服务器,并在所述聚类结果数据库中新增加一个聚类,将该接收的文件名放入该新增加的聚类中;
所述离线下载任务调度服务器在接收到所述离线下载文件聚类分析服务器发送的第二通知时,进一步按照负载均衡原则动态从离线下载服务器中选择出用于执行所述离线下载请求的离线下载服务器,由该选择的离线下载服务器下载并存储所述离线下载请求的文件至云存储服务器;
所述下载客户端在获知其需要的文件被离线下载任务调度服务器选择的离线下载服务器下载至云存储服务器后,从云存储服务器上下载其需要的文件。
4.根据权利要求3所述的系统,其特征在于,所述离线下载服务器进一步在完成下载所述离线下载请求的文件后,发送该文件在云存储服务器上的下载链接信息至离线下载文件聚类分析服务器;
所述离线下载文件聚类分析服务器进一步将接收的文件下载链接信息记录至所述聚类结果数据库中该文件的名称所属的聚类中。
5.根据权利要求4所述的系统,其特征在于,所述系统进一步包括:
聚类文件淘汰服务器,用于定期读取所述聚类结果数据库中的聚类,获取该聚类中的所有下载链接信息,如果该所有下载链接信息对应的文件内容类似,则仅在云存储服务器上保留其中一个下载链接信息对应的文件,从云存储服务器上删除其他下载链接信息对应的文件,并在聚类结果数据库中将该其他下载链接信息标记为:由该保留的文件对应的下载链接信息替代。
6.根据权利要求3所述的系统,其特征在于,所述系统进一步包括:离线下载任务管理服务器和离线任务数据库;其中,
所述离线下载任务管理服务器,用于接收来自下载客户端的离线下载请求,生成所述离线下载请求的文件的标识信息,判断所述离线任务数据库是否存在所述标识信息,如果是,在所述标识信息对应的状态为已下载时,通知下载客户端从云存储服务器上秒下其需要的文件,否则,将所述标识信息记录至所述离线任务数据库,并将所述离线下载请求发送至所述离线下载任务调度服务器;
所述离线下载服务器群中任一离线下载服务器在完成文件下载后,进一步在所述离线任务数据库中查找到该被下载的文件的标识信息,并针对该标识信息增加用于表示已下载的状态。
7.一种离线下载方法,其特征在于,该方法包括以下步骤:
离线下载任务调度服务器从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器;
离线下载文件聚类分析服务器对所述文件名进行过滤处理以删除文件名中与文件名内容无关的符号和字段,分析聚类结果数据库中是否存在与该接收的文件名相似的其他文件名;如果是,发送第一通知给所述离线下载任务调度服务器,所述第一通知携带以下信息:该存在的文件名以及与该文件名相关的下载链接信息,所述与该文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息;
离线下载任务调度服务器将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件;
其中,所述离线下载文件聚类分析服务器分析所述聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名包括:
离线下载文件聚类分析服务器对过滤后的文件名执行切词处理,之后从聚类角度和相似度角度分析所述聚类结果数据库中是否存在切词处理后的文件名所属的聚类,如果是,确定该存在的聚类中至少一个文件名与该接收的文件名相似。
8.根据权利要求7所述的方法,其特征在于,所述离线下载任务调度服务器从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器包括:
离线下载任务调度服务器判断之前是否已收到与当前接收的离线下载请求相同的其他离线下载请求,如果是,通知所述下载客户端共享所述离线下载任务调度服务器之前已收到的离线下载请求的离线下载信息,由所述下载客户端根据所述离线下载信息下载其需要的文件;如果否,从当前接收的离线下载请求中提取出文件名,并传给所述离线下载文件聚类分析服务器。
9.根据权利要求7至8任一所述的方法,其特征在于,该方法进一步包括:
所述离线下载文件聚类分析服务器分析出所述聚类结果数据库中不存在与所述过滤后的文件名相似的其他文件名,则进一步发送第二通知给所述离线下载任务调度服务器,并在所述聚类结果数据库中新增加一个聚类,将该接收的文件名放入该新增加的聚类中;
离线下载任务调度服务器接收到所述第二通知时,按照负载均衡原则动态从离线下载服务器中选择出用于执行所述离线下载请求的离线下载服务器,由该选择的离线下载服务器下载并存储所述离线下载请求的文件至云存储服务器,以使下载客户端在获知其需要的文件被所述离线下载任务调度服务器选择的离线下载服务器下载至云存储服务器后,从云存储服务器上下载其需要的文件。
10.根据权利要求9所述的方法,其特征在于,该方法进一步包括:
所述离线下载服务器在完成下载所述离线下载请求的文件后,发送该文件在云存储服务器上的下载链接信息至离线下载文件聚类分析服务器;
所述离线下载文件聚类分析服务器进一步将接收的文件下载链接信息记录至所述聚类结果数据库中该文件的名称所属的聚类中。
11.根据权利要求10所述的方法,其特征在于,所述方法进一步包括:
由聚类文件淘汰服务器定期读取所述聚类结果数据库中的聚类,获取该聚类中的所有下载链接信息,并在该获取的下载链接信息对应的文件内容类似时,仅控制云存储服务器上保留其中一个下载链接信息对应的文件,从云存储服务器上删除其他下载链接信息对应的文件,并在聚类结果数据库中将该其他下载链接信息标记为:由该保留的文件对应的下载链接信息替代。
12.根据权利要求9所述的方法,其特征在于,所述离线下载任务调度服务器当前接收来自下载客户端的离线下载请求包括:
离线下载任务管理服务器接收来自下载客户端的离线下载请求,生成所述离线下载请求的文件的标识信息,判断离线任务数据库是否存在所述标识信息,如果是,在所述标识信息对应的状态为已下载时,通知下载客户端从云存储服务器上秒下其需要的文件,否则,将所述标识信息记录至所述离线任务数据库,并将所述离线下载请求发送至所述离线下载任务调度服务器;
该方法进一步包括:
离线下载服务器群中任一离线下载服务器在完成文件下载后,在所述离线任务数据库中查找到该被下载的文件的标识信息,并针对该标识信息增加用于表示已下载的状态。
离线下载方法和系统\n技术领域\n[0001] 本发明涉及计算机技术,特别涉及离线下载方法和系统。\n背景技术\n[0002] 通常为了保证下载效率,下载数据的调度采用尽力模式,即尽最大可能地将数据下载到客户端。对于Bt,eMule等主要依靠P2P方式下载的协议来说,下载速度和文件的热门程度有很大的关系,并且,下载难以预期,可能一个文件找不到合适源,一直无法下载,也可能下载完成一部分数据之后由于在线的网络节点(Peer)下线了而导致很长时间没有合适的源,进而导致下载的进度没有任何的变化。\n[0003] 为了解决这种下载难以预期的问题,现有技术提出了一种云端订阅下载方式。所谓云端订阅下载,其又称为离线下载,以下皆称为离线下载,其本质是服务商的服务器(简称离线下载服务器)代替用户先行下载,之后用户再从离线下载服务器下载到本地用户终端,其省去用户终端许多挂机等待的时间,最重要的是能够腾出用户终端宽带做其他的事情。比如,某个资源是冷门资源,下载速度很慢,用户就得下很久,如果用户使用离线下载,就可以让服务商的服务器代替用户先下载,用户就暂不下载,等到服务商的服务器完成离线下载,用户再利用本地下载工具到服务商的服务器上高速下载到本地客户端的用户终端。\n[0004] 目前,该离线下载具有如下特点:\n[0005] (1)加速下载冷门资源:离线下载解决冷门资源下载慢,长时间挂机的问题,利用离线下载服务器的强大带宽,相比于adsl网络能够更快地下载到文件,下载完成后,用户可以把文件从离线下载服务器上高速稳定的下载到用户终端上。由于离线下载服务器带宽远大于adsl网络,因此,离线下载服务器能够提供大于adsl的下载速度。\n[0006] (2)稳定提升下载速度:离线下载服务器下载文件,能够保证下载速度更快更稳定。而如果用户直接下载文件,会受限于网络环境的影响,下载速度是处于一个波动的状态,不可预期。\n[0007] (3)解决网络限制:即使Bt、电驴或P2SP被限,离线下载仍可高速下载,通常,用户专属的离线下载服务器将7*24小时不间断高速下载,以保证用户专属离线下载服务器可以在用户不挂机,甚至睡觉的时候,为用户持续地下载该文件,从而节省用户宝贵的时间,下载时间利用率很高,从而保证下载效率很高。\n[0008] 在现有的离线下载过程,下载客户端提交离线下载请求至离线下载任务管理服务器,所述离线下载请求包括需要下载的文件下载地址,比如url链接、Http链接、eMule链接、Bt下载种子、或者Magnet链接。当离线下载任务管理服务器接收下载客户端的离线下载请求后,根据该离线下载请求中的文件下载地址从离线任务数据库中查询是否存在该文件下载地址所对应的文件哈希(Hash),这里,如果文件下载地址为url链接,则文件Hash为对url链接进行Hash计算得到的计算结果,而如果文件下载地址为eMule链接,则文件Hash为对eMule链接进行Md4计算得到的计算结果,如果文件下载地址为Bt,则文件Hash为对torrent文件特征码和文件序号进行Hash计算得到的计算结果;\n[0009] 如果存在,则确定所述离线下载请求所请求的文件已被下载至用于存放离线下载文件的云存储服务器,并通知给下载客户端,所述通知中携带该存在的文件Hash,以使所述下载客户端接收到所述通知时,使用P2SP技术并依据所述通知携带的文件Hash从云存储服务器上秒下对应的文件;\n[0010] 如果不存在,将触发离线下载服务器针对所述离线下载请求执行离线下载。\n[0011] 可以看出,离线下载服务器是否执行下载客户端的离线下载请求,完全取决于离线下载任务管理服务器是否精确匹配出该离线下载请求所请求的文件对应的文件Hash,如果匹配成功,则由客户端从已下载的离线文件中直接秒下该请求的文件,否则只能由离线下载服务器下载该离线下载请求所请求的文件。而在实际应用中,很多大小相近且内容类似的文件,其对应的文件Hash是不同的,比如一部电影,其有很多大小相近且内容类似的视频文件。这里,将内容一样或差别很小、但格式、分辨率不一样的文件称为内容类似的文件。\n在实际应用中,这些大小相近内容类似的视频文件对于用户而言是一样的,只需要提供其中的一个视频文件即可,没有必要一一下载,因此,可以看出现有离线下载方式会导致大量相关或类似内容的文件重复下载,加大离线下载服务器的负载,也浪费了云存储服务器的存储资源。\n发明内容\n[0012] 本发明提供了离线下载方法和系统,避免内容类似的文件被重复下载,节省离线下载服务器的负载,也节省云存储服务器的存储资源。\n[0013] 本发明提供的技术方案包括:\n[0014] 一种离线下载系统,该系统包括:下载客户端、和云存储服务器和至少一个离线下载服务器;其关键在于,该系统还包括:\n[0015] 离线下载任务调度服务器,用于从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器;以及,从离线下载文件聚类分析服务器接收到第一通知时,将该第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件;\n[0016] 离线下载文件聚类分析服务器,用于接收来自所述离线下载任务调度服务器发送的文件名,对所述文件名进行过滤处理以删除文件名中与文件名内容无关的符号和字段,并分析所述聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名,如果是,发送第一通知给离线下载任务调度服务器,第一通知携带以下信息:该存在的文件名以及与该文件名相关的下载链接信息,所述与文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息;\n[0017] 所述离线下载文件聚类分析聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名包括:\n[0018] 所述离线下载文件聚类分析服务器对过滤后的文件名执行切词处理;\n[0019] 所述离线下载文件聚类分析服务器从聚类角度和相似度角度分析所述聚类结果数据库中是否存在切词处理后的文件名所属的聚类,如果是,确定该存在的聚类中至少一个文件名与该接收的文件名相似。\n[0020] 一种离线下载方法,包括以下步骤:\n[0021] 离线下载任务调度服务器从当前接收的来自下载客户端的离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器;\n[0022] 离线下载文件聚类分析服务器对所述文件名进行过滤处理以删除文件名中与文件名内容无关的符号和字段,分析所述聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名,如果是,发送第一通知给所述离线下载任务调度服务器,所述第一通知携带以下信息:该存在的文件名以及与该文件名相关的下载链接信息,所述与该文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息;\n[0023] 离线下载任务调度服务器将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件;\n[0024] 其中,所述离线下载文件聚类分析服务器分析所述聚类结果数据库中是否存在与过滤后的文件名相似的其他文件名包括:\n[0025] 离线下载文件聚类分析服务器对过滤后的文件名执行切词处理,之后从聚类角度和相似度角度分析所述聚类结果数据库中是否存在切词处理后的文件名所属的聚类,如果是,确定该存在的聚类中至少一个文件名与该接收的文件名相似。\n[0026] 由以上技术方案可以看出,本发明中,离线下载任务调度服务器在接收到离线下载请求后,并非立即调度离线下载服务器执行该离线下载请求,而是先将离线下载请求中的文件名发送给离线下载文件聚类分析服务器,由离线下载文件聚类分析服务器分析聚类结果数据库中存在所述文件名相似的文件名时,发送第一通知给离线下载任务调度服务器,如此,离线下载任务调度服务器就可直接将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件,而非调度离线下载服务器执行离线下载请求,这节省了离线下载服务器的负载,并且,由于文件名相似其对应的文件内容也应该相似,这避免了内容类似的文件被重复下载,也使得云存储服务器不再存储大量内容类似的文件,节省云存储服务器的存储资源。\n附图说明\n[0027] 图1为本发明实施例提供的离线下载系统基本结构图;\n[0028] 图2为本发明实施例提供的方法流程图;\n[0029] 图3为本发明提供的离线下载系统详细结构图。\n具体实施方式\n[0030] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。\n[0031] 本发明提供了如图1所示的离线下载系统。\n[0032] 参见图1,图1为本发明实施例提供的离线下载系统基本结构图。如图1所示,该离线下载系统可包括:下载客户端、包含至少一个离线下载服务器的离线下载服务器群、云存储服务器、离线下载任务调度服务器、离线下载文件聚类分析服务器和聚类结果数据库;\n[0033] 其中,所述聚类结果数据库至少存放以下内容:多个文件名和该多个文件名相关的下载链接信息。这里,所述与文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息。\n[0034] 所述离线下载任务调度服务器,用于从当前接收的来自下载客户端的携带有文件名离线的下载请求中提取出该文件名并发送给所述离线下载文件聚类分析服务器。\n[0035] 离线下载文件聚类分析服务器,用于接收离线下载任务调度服务器发送的文件名,并分析所述聚类结果数据库中是否存在与该接收的文件名相似的其他文件名,如果是,发送第一通知给所述离线下载任务调度服务器,所述第一通知携带以下信息:该存在的文件名以及与该文件名相关的下载链接信息。\n[0036] 所述离线下载任务调度服务器接收到离线下载文件聚类分析服务器发送的第一通知时,将该第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件。\n[0037] 可以看出,本发明中,离线下载任务调度服务器在接收到离线下载请求后,并非立即调度离线下载服务器执行该离线下载请求,而是先将离线下载请求中的文件名发送给离线下载文件聚类分析服务器,由离线下载文件聚类分析服务器分析聚类结果数据库中存在所述文件名相似的文件名时,发送第一通知给离线下载任务调度服务器,如此,离线下载任务调度服务器就可直接将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件,而非调度离线下载服务器执行离线下载请求,这节省了离线下载服务器的负载,并且,由于文件名相似其对应的文件内容也应该相似,这避免了内容类似的文件被重复下载,也使得云存储服务器不再存储大量内容类似的文件,节省云存储服务器的存储资源。\n[0038] 基于图1所示的系统,本发明还提供了离线下载方法,具体参见图2所示。\n[0039] 参见图2,图2为本发明实施例提供的方法流程图。如图2所示,该方法可应用于图1所示的系统中,包括以下步骤:\n[0040] 步骤201,离线下载任务调度服务器在当前接收到来自下载客户端的携带有文件名的离线下载请求时,从该离线下载请求中提取出文件名并发送给离线下载文件聚类分析服务器。\n[0041] 步骤202,离线下载文件聚类分析服务器分析所述聚类结果数据库中是否存在与该接收的文件名相似的其他文件名,如果是,发送第一通知给所述离线下载任务调度服务器。\n[0042] 优选地,所述第一通知携带以下信息:该存在的文件名以及与该文件名相关的下载链接信息,其中,所述与该文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息。\n[0043] 优选地,在上述步骤202中,离线下载文件聚类分析服务器在发送第一通知之后进一步包括:在该存在的聚类中增加该接收的文件名。\n[0044] 步骤203,离线下载任务调度服务器将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件。\n[0045] 优选地,本发明中,如果步骤202中,离线下载文件聚类分析服务器分析出所述聚类结果数据库中不存在与所述文件名相似的其他文件名,则进一步发送第二通知给所述离线下载任务调度服务器,并在所述聚类结果数据库中新增加一个聚类,将该接收的文件名放入该新增加的聚类中;基于此,本发明中,离线下载任务调度服务器如果接收到第二通知时,进一步按照负载均衡原则动态从离线下载服务器中选择出用于执行所述离线下载请求的离线下载服务器,由该选择的离线下载服务器下载并存储所述离线下载请求的文件至云存储服务器,以使下载客户端在获知其需要的文件被离线下载任务调度服务器选择的离线下载服务器下载至云存储服务器后从云存储服务器上下载其需要的文件;以及,在离线下载服务器完成下载所述离线下载请求的文件后,发送该文件在云存储服务器上的下载链接信息至离线下载文件聚类分析服务器,由离线下载文件聚类分析服务器进一步将接收的文件下载链接信息记录至所述聚类结果数据库中该文件的名称所属的聚类中。\n[0046] 至此,完成图2所示的流程。\n[0047] 可以看出,本发明中,通过对离线下载请求中文件名的聚类,本发明能够保证内容相似的文件只需要下载一次,也保证了云存储服务器不会重复保留内容类似的文件。这样,一方面节省离线下载服务器的下载能力,另一方面也节省存储服务器的存储资源。\n[0048] 下面对本发明提供的离线下载系统进行详细描述:\n[0049] 参见图3,图3为本发明提供的离线下载系统详细结构图。本发明中,为了实现离线下载按照文件名进行聚类,相比于现有离线下载系统,图3所示的离线下载系统实质是在现有离线下载系统的基础上进行了扩展,其额外增加了以下功能单元:离线下载任务调度服务器、离线下载文件聚类分析服务器、聚类结果数据库和聚类文件淘汰服务器。\n[0050] 下面对图3所示的各个功能单元进行交互的操作详细描述:\n[0051] 1,下载客户端:\n[0052] 如图3所示,下载客户端分别与离线下载任务管理服务器、云存储服务器、统计服务器连接,执行以下操作:\n[0053] (1),向离线下载任务管理服务器提交离线下载请求,该离线下载请求可包括需要下载的文件的下载连接信息,比如url链接、Http链接、eMule链接、Bt下载种子、或者Magnet链接,并登陆该离线下载任务管理服务器来查询该离线下载请求所请求文件的下载进度(简称为离线下载进度);\n[0054] (2),在获知其需要的文件被完成下载至云存储服务器时,通过P2SP方式从云存储服务器下载取回;\n[0055] 其中,下载客户端如何获知其需要的文件被完成下载至云存储服务器,其具体实现时可以至少包括以下方式:通过登录离线下载任务管理服务器来查询离线下载进度获知,或者,由离线下载任务管理服务器发送离线下载进度至下载客户端等。\n[0056] (3),在从云存储服务器下载文件过程中发现下载到的数据分片错误,向统计服务器上报;\n[0057] (4),在从云存储服务器完成文件下载后,向统计服务器汇报本次下载的下载时间、下载速度、下载结果、文件大小、下载的原始链接信息等。其中,下载的原始链接信息为已发送的离线下载请求所携带的文件下载地址信息。\n[0058] 2、离线下载任务管理服务器:\n[0059] 如图3所示,所述离线下载任务管理服务器与下载客户端、离线任务数据库、离线下载任务调度服务器连接,执行以下操作:\n[0060] (1),接收客户端提交的离线下载请求,为该离线下载请求生成唯一的编号;\n[0061] (2),将离线下载请求携带的下载链接信息写入离线任务数据库;\n[0062] (3),生成所述离线下载请求所请求的文件对应的文件标识比如文件Hash。下文仅以文件标识为文件Hash为例进行描述,其他情况类似,不再一一举例。\n[0063] 以文件标识为文件Hash为例,则上述的生成所述离线下载请求所请求的文件对应的文件Hash具体为:如果离线下载请求中下载链接信息为url链接,则可将对该url链接进行Hash运算得到的计算结果作为所述文件Hash;而如果离线下载请求中下载链接信息是eMule链接,则可将对eMule链接进行Md4计算得到的计算结果作为所述文件Hash,如果离线下载请求中下载链接信息是Bt,则可将对torrent文件特征码和文件序号进行Hash计算得到的计算结果作为所述文件Hash。\n[0064] (4),在所述离线任务数据库存在所述文件Hash时,如果所述文件Hash在所述离线任务数据库中对应的状态被标识为已下载,即表示云存储服务器已存在所述离线下载请求所请求的文件,通知下载客户端从云存储服务器上秒下该文件。\n[0065] 优选地,如果所述文件Hash对应的状态不为已下载,则本发明可认为该文件Hash对应的文件正在下载,因此,可等待,直到该文件Hash对应的状态为已下载时,通知下载客户端从云存储服务器上秒下该文件。\n[0066] 其中,通知下载客户端从云存储服务器上秒下该文件具体为:提供下载客户端从云存储服务器上秒下该文件的入口地址,作为客户端下载的源,以使下载客户端从该源上下载文件。\n[0067] (5),在所述离线任务数据库不存在所述文件Hash时,将该文件Hash记录至所述离线任务数据库,并将所述离线下载请求发送至所述离线下载任务调度服务器;以及,从离线下载任务调度服务器上接收针对离线查询请求的离线下载进度,以供下载客户端查询该离线下载进度。\n[0068] 3、离线下载任务调度服务器:\n[0069] 如图3所示,离线下载任务调度服务器分别与离线下载任务管理服务器、离线下载服务器群和离线下载文件聚类分析服务器连接,其执行的操作为:\n[0070] (1),接受离线下载服务器群中离线下载服务器周期性上报的负载信息;\n[0071] (2),对相同的离线下载请求进行过滤,以保证同一个离线下载请求只需要向离线下载服务器群发送一次,不同的下载客户端可以共享同一个离线下载请求的离线下载进度信息;\n[0072] 优选地,对相同的离线下载请求进行过滤具体可为:离线下载任务调度服务器判断之前是否已收到与当前接收的离线下载请求相同的其他离线下载请求,如果是,通知所述下载客户端共享所述离线下载任务调度服务器之前已收到的离线下载请求的离线下载信息,由所述下载客户端根据所述离线下载信息下载其需要的文件;其中,离线下载信息至少可包括离线下载进度信息。其中,所述下载客户端根据离线下载信息下载其需要的文件包括:所述下载客户端在离线下载进度信息表示下载完成时,从云存储服务器下载其需要的文件。\n[0073] (3),在未接收到与当前接收的离线下载请求相同的其他离线下载请求时,从当前接收的离线下载请求中提取出文件名,并传给所述离线下载文件聚类分析服务器。\n[0074] (4),在接收到离线下载文件聚类分析服务器发送的第一通知时,确定不需要把当前接收的离线下载请求分发给离线下载服务器,将该第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件;其中,所述与该文件名相关的下载链接信息为:具有该文件名的文件被离线下载服务器下载至云存储服务器上的位置信息。\n[0075] (5),在接收到离线下载文件聚类分析服务器发送的第二通知时,确定需要把当前接收的离线下载请求分发给离线下载服务器,则将当前接收的离线下载请求分发给所述离线下载服务器群中的离线下载服务器,由该离线下载服务器下载并存储所述离线下载请求的文件至云存储服务器。\n[0076] 其中,将当前接收的离线下载请求分发给所述离线下载服务器群中的离线下载服务器包括:\n[0077] 所述离线下载任务调度服务器根据所述离线下载服务器群中各个离线下载服务器周期性上报的负载信息,按照负载均衡原则动态从离线下载服务器中选择出用于执行所述离线下载请求的离线下载服务器。\n[0078] (6),接受离线下载服务器发送的离线下载进度,速度等信息的汇报,同时把离线下载服务器汇报的离线下载进度、速度等信息同步至离线下载任务管理服务器。\n[0079] 4、离线下载文件聚类分析服务器:\n[0080] 如图3所示,离线下载文件聚类分析服务器分别连接离线下载任务调度服务器、离线下载服务器群、和聚类结果数据库,其执行以下操作:\n[0081] (1),接收所述离线下载任务调度服务器发送的文件名;\n[0082] (2),分析所述聚类结果数据库中是否存在与该接收的文件名相似的其他文件名。\n[0083] 其中,该分析具体可包括:\n[0084] 步骤1,对文件名进行过滤处理,过滤掉文件名中与文件名内容无关的符号和字段。文件名通常遵循一定的格式,比如,电影文件名由电影名称+发布来源+发行版本+清晰度+视频编码+音频编码+文件格式组成;影视剧文件名通常由剧名+S季数+E集数+集名+信号采集源+音频编码(默认的MP3可以不标)+视频编码-制作组组成,国产的影视剧通常没有季数和集数。然而,在实际应用中,文件名还包括一些与文件名内容无关的辅助信息和符号,比如与文件名内容无关的辅助信息可为首映、独家首播、最新、在线观看、首款网络独家首播、暑期必看、配音、最新、电视、电视剧等,与文件名内容无关的符号可为:“][”,"["&&"]","【"&&"】"()()[]等。基于此,步骤1就需要删除该与文件名内容无关的辅助信息和符号。\n[0085] 步骤2,对过滤后的文件名执行切词处理;该切词处理可为:将包含有丰富信息的文件名切词分为独立的词语。\n[0086] 步骤3,从聚类角度和相似度角度分析聚类结果数据库中是否存在切词处理后的文件名所属的聚类,如果是,确定该存在的聚类中至少一个文件名与该接收的文件名相似。\n[0087] 其中,聚类角度分析,可以先分析切词处理后文件名单个词语与聚类结果数据库中每一聚类中文件名单个词语之间的相似度,分析完毕后在聚类结果数据库中聚类分析得到相似的文件所处的聚类,其中,该聚类分析可采用现有聚类分析方式。同一个聚类中的文件都建立一个指向该聚类整体的映射关联关系。\n[0088] 其中,文件名相似度的分析,可利用两个向量夹角的余弦来求,比如,将文件名Fa进行分解(文件名,发行商,格式,大小,清晰度等)用一个向量表示Fa=a1x1+a2x2+….anXn,另外一个文件名Fb分解为另外一个向量Fb=b1x1+b2x2+……bnxn,则向量Fa和Fb之间的向量夹角余弦 为:\n[0089]\n[0090] 其中,该夹角余弦 越大,则表示两个文件名越相似。\n[0091] (3),在上述的分析结果为是时,发送第一通知至离线下载任务调度服务器,第一通知携带了该存在的聚类所包含的至少一个文件名以及与该文件名相关的下载链接信息,其中,可按照预定义的推荐策略在第一通知中携带文件名以及下载链接信息。比如可随机从该存在的聚类中选择若干个文件名以及下载链接信息,或者选择接收时间比较近比如接收时间相差设定数值比如10分钟等的若干个文件名以及下载链接信息等;之后将该接收的文件名增加至该存在的聚类中;\n[0092] (4),在上述的分析结果为否时,发送第二通知给所述离线下载任务调度服务器,并在所述聚类结果数据库中新增加一个聚类,将该接收的文件名放入该新增加的聚类中。\n[0093] (5),接收离线下载集群服务器在完成文件下载后发送的该文件在云存储服务器上的下载链接信息,并记录至所述聚类结果数据库中该文件的名称所属的聚类中。\n[0094] 5、聚类结果数据库:\n[0095] 如图3所示,聚类结果数据库与离线下载文件聚类分析服务器连接,其执行以下步骤:\n[0096] (1),保存根据文件名的聚类结果;\n[0097] (2),为离线下载任务文件聚类分析服务器提供查询服务,提供属于同一个聚类的文件名以及下载链接信息;\n[0098] (3),为聚类文件淘汰服务器提供查询服务。\n[0099] 6、聚类文件淘汰服务器\n[0100] 如图3所示,聚类文件淘汰服务器与聚类结果数据库、离线下载服务器群连接,执行以下操作:\n[0101] (1),定期读取聚类结果数据库中的聚类记录,从中获取属于同一个聚类的下载链接信息;\n[0102] (2),如果该所有下载链接信息下载的文件内容类似,则仅在云存储服务器上保留一个下载链接信息对应的文件,从云存储服务器上删除其他下载链接信息对应的文件,以节省云存储服务器的存储资源,并在聚类结果数据库中将该其他下载链接信息标记为:由该保留的文件对应的下载链接信息替代。\n[0103] 如此,上述离线下载文件聚类分析服务器在分析出其接收的文件名所属的聚类时,如果该聚类中一文件名相关的下载链接信息a被标记为:由下载链接信息b替代,则在第一通知中携带该替代后的下载链接信息b。\n[0104] 7、离线下载服务器群:\n[0105] 其包含至少一个离线下载服务器,如图3所示,其分别与聚类文件淘汰服务器、云存储服务器、离线任务数据库、离线下载任务调度服务器、以及离线下载文件聚类分析服务器连接,其执行以下操作:\n[0106] (1),向离线下载任务调度服务器注册自己的地址,提供自己磁盘空间以及负载信息至离线下载任务调度服务器,供离线下载任务调度服务器按照负载进行动态均衡的调度;\n[0107] (2),接收离线下载任务调度服务器的调度执行云端下载离线下载请求所请求的文件;\n[0108] (3),向离线下载任务调度服务器汇报离线下载的进度和速度信息;\n[0109] (4),将下载完成的文件存储在云端服务器上供客户端取回;\n[0110] (5),在完成下载文件后,将离线任务数据库中该文件对应的标识信息比如Hash对应的状态标记为已下载即表示该标识信息对应的文件已被下载至云存储服务器;\n[0111] (6),在完成下载文件后,将该文件在云存储服务器的下载链接信息发送至离线下载文件聚类分析服务器。\n[0112] 8、统计服务器:\n[0113] 如图3所示,该统计服务器与下载客户端连接,其执行以下操作:接收所述下载客户端上报的文件下载信息,并将所述文件下载信息写成流水日志形式供统计分析;所述文件下载信息至少包括:所述下载客户端从云存储服务器下载文件的进度、速度、时间、下载结果以及被下载的文件的属性。\n[0114] 9、云存储服务器:\n[0115] 如图3所示,该云存储服务器与下载客户端以及离线下载服务器群连接,其执行以下操作:\n[0116] (1),保存离线下载服务器群下载完成的文件;\n[0117] (2),作为下载客户端下载离线取回文件的源,能够用保留的带宽吐出下载客户端所需要的文件。\n[0118] 至此,完成图3中各个功能单元之间的交互。\n[0119] 由以上技术方案可以看出,本发明中,离线下载任务调度服务器在接收到离线下载请求后,并非立即调度离线下载服务器执行该离线下载请求,而是先将离线下载请求中的文件名发送给离线下载文件聚类分析服务器,由离线下载文件聚类分析服务器分析聚类结果数据库中存在所述文件名相似的文件名时,发送第一通知给离线下载任务调度服务器,如此,离线下载任务调度服务器就可直接将第一通知携带的文件名以及与该文件名相关的下载链接信息提供给下载客户端,由下载客户端选择其中一个文件名相关的下载链接信息下载其需要的文件,而非调度离线下载服务器执行离线下载请求,这节省了离线下载服务器的负载,并且,由于文件名相似其对应的文件内容也应该相似,这避免了内容类似的文件被重复下载,也使得云存储服务器不再存储大量内容类似的文件,节省云存储服务器的存储资源。\n[0120] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2018-06-01
- 2014-10-29
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201210151239.X
申请日: 2012.05.16
- 2013-12-04
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-10-03
|
2006-03-27
| | |
2
| |
2007-11-21
|
2007-06-01
| | |
3
| |
2008-10-01
|
2008-04-23
| | |
4
| |
2009-10-07
|
2008-04-02
| | |
5
| |
2008-05-21
|
2007-11-05
| | |
6
| |
2011-02-16
|
2010-10-29
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |