一种文件下载系统及文件下载方法与流程

文档序号:11138867阅读:252来源:国知局
一种文件下载系统及文件下载方法与制造工艺

本发明文件传输技术领域,尤其是一种文件下载系统及文件下载方法。



背景技术:

用户在使用超级计算中心的计算资源进行计算时,一般输出的结果文件会比较大(达到数GB、甚至TB),通常用户需要将这些结果文件下载到本地来使用。鉴于超级计算中心的网络特点,用户和超级计算中心之间通过建立固定的VPN链路进行通讯,故用户与超级计算中心间的文件传输也只能采用scp/winscp、ftp这样的单线程下载工具,对于单个大文件来说,单线程的下载方式耗时太长,效率过低。

目前常见的一种单线程下载文件的改进方法,如图1所示,超级计算中心与客户端之间通过固定的VPN链路进行通讯(在图中以矩形框表示VPN通道),当要下载文件时,先在超级计算中心端对文件进行分片,例如将一个大文件分片处理得到4个分片文件,然后用户再使用诸如scp/winscp、ftp这样的工具,分别下载多个分片文件,当所有的分片文件都下载到本地后,组装得到大文件。这样的做法虽然解决了单线程下载的问题,但受制于VPN链路,所有的分片文件都必须通过仅有的一条VPN通道进行传输,无法进一步提升文件传输效率。



技术实现要素:

为此,本发明提供了一种文件下载系统及文件下载方法,以力图解决或者至少缓解上面存在的至少一个问题。

根据本发明的一个方面,提供了一种文件下载系统,包括:客户端,适于向超级计算中心发送文件下载请求、还适于根据超级计算中心返回的第一消息从超级计算中心下载第一个分片文件和分片文件映射表;超级计算中心,包括:连接管理单元,适于接收客户端发送的文件下载请求;控制单元,适于在接收到文件下载请求后,根据预定规则对所请求下载的文件进行分片处理得到多个分片文件,并生成分片文件映射表以存储各个分片文件在所请求下载的文件中的位置;连接管理单元还适于发送第一消息给客户端,其中第一消息包括第一个分片文件和分片文件映射表的下载地址,还适于将除第一个分片文件外的其他分片文件分别发送至对应的文件缓存服务器、并在每个分片文件在相应文件缓存服务器上缓存之后发送第二消息给调度服务器,其中第二消息包括该分片文件在相应文件缓存服务器上的地址;调度服务器,适于在接收到第二消息后,生成对应分片文件的下载地址、并发送下载地址给客户端以响应客户端对分片文件缓存进度的查询;多个文件缓存服务器,每个文件缓存服务器适于分别存储由超级计算中心发送的各分片文件;客户端还适于在接收到分片文件映射表后向调度服务器发送查询请求,以及在接收到由调度服务器发送的下载地址时,根据该下载地址从文件缓存服务器下载对应分片文件,并根据分片文件映射表拼接第一个分片文件及所下载的其他分片文件,以得到完整的下载文件。

可选地,在根据本发明的文件下载系统中,超级计算中心以第一网络连接方式与客户端、文件缓存服务器和调度服务器分别建立连接;以及客户端以第二网络连接方式与调度服务器和文件缓存服务器分别建立连接。

可选地,在根据本发明的文件下载系统中,第一网络连接方式的速度小于第二网络连接方式的速度;以及第一网络连接方式是虚拟专用网络连接。

可选地,在根据本发明的文件下载系统中,在超级计算中心中,控制单元还适于判断所请求下载的文件大小是否大于阈值,若大于阈值则对所述文件进行分片处理得到第一数目个分片文件,其中,第一数目根据文件缓存服务器的数目得到。

可选地,在根据本发明的文件下载系统中,在超级计算中心中,控制单元还适于根据预置分片大小对所述文件进行分片处理,得到至少一个分片文件。

可选地,在根据本发明的文件下载系统中,在超级计算中心中,控制单元还适于为每个分片文件生成校验码以作为该分片文件的文件名,并在分片文件映射表中与分片文件的位置关联存储。

可选地,在根据本发明的文件下载系统中,调度服务器还适于在接收到第二消息时,根据分片文件的文件名和该分片文件所在的文件缓存服务器的地址生成下载地址。

可选地,在根据本发明的文件下载系统中,客户端还适于根据下载地址指向的文件缓存服务器的地址从该文件缓存服务器下载该分片文件。

可选地,在根据本发明的文件下载系统中,客户端还适于在接收到分片文件映射表后向调度服务器发送查询请求包括:客户端还适于向调度服务器查询多个分片文件的缓存进度,直到接收到由调度服务器发送的下载地址为止。

可选地,在根据本发明的文件下载系统中,客户端还适于查找分片文件映射表中是否存在所下载分片文件的校验码;若存在则按照分片文件映射表中存储的位置信息拼接分片文件;以及若不存在则重新下载对应的分片文件。

根据本发明的又一方面,提供了一种文件下载方法,该方法在文件下载系统中执行,该系统包括客户端、超级计算中心、调度服务器和多个文件缓存服务器,该方法包括步骤:超级计算中心接收到由客户端发送的文件下载请求时,根据预定规则对所请求下载的文件进行分片处理得到多个分片文件;超级计算中心生成分片文件映射表以存储各个分片文件在所请求下载的文件中的位置;超级计算中心发送第一消息给所述客户端,其中,第一消息包括第一个分片文件和分片文件映射表的下载地址,以便客户端根据第一消息下载第一个分片文件和分片文件映射表;超级计算中心将除第一个分片文件外的其他分片文件分别发送至对应的文件缓存服务器;超级计算中心在每个分片文件在相应文件缓存服务器上缓存之后发送第二消息给所述调度服务器,以便调度服务器生成该分片文件的下载地址、并发送该下载地址给客户端以响应客户端对分片文件缓存进度的查询,其中第二消息包括该分片文件在相应文件缓存服务器上的地址;客户端在接收到分片文件映射表后向调度服务器发送查询请求;客户端在接收到由调度服务器发送的下载地址时,根据该下载地址从文件缓存服务器下载对应分片文件;以及客户端根据分片文件映射表拼接第一个分片文件及所下载的其他分片文件,得到完整的下载文件。

可选地,在根据本发明的文件下载方法中,还包括步骤:超级计算中心分别以第一网络连接方式与客户端、文件缓存服务器和调度服务器建立连接;以及客户端分别以第二网络连接方式与调度服务器和文件缓存服务器建立连接。

可选地,在根据本发明的文件下载方法中,第一网络连接方式的速度小于第二网络连接方式的速度;以及第一网络连接方式是虚拟专用网络连接。

可选地,在根据本发明的文件下载方法中,超级计算中心根据预定规则对所请求下载文件进行分片处理得到多个分片文件的步骤包括:超级计算中心判断所请求下载的文件大小是否大于阈值,若大于阈值则对所述文件进行分片处理得到第一数目个分片文件,其中,第一数目根据文件缓存服务器的数目得到。

可选地,在根据本发明的文件下载方法中,超级计算中心根据预定规则对所请求下载文件进行分片处理得到多个分片文件的步骤包括:超级计算中心根据预置分片大小对文件进行分片处理,得到至少一个分片文件。

可选地,在根据本发明的文件下载方法中,超级计算中心生成分片文件映射表以存储各个分片文件在所请求下载的文件中的位置的步骤还包括:超级计算中心为每个分片文件生成校验码以作为该分片文件的文件名,并在分片文件映射表中与分片文件的位置关联存储。

可选地,在根据本发明的文件下载方法中,在超级计算中心发送第二消息给调度服务器的步骤之后,还包括步骤:调度服务器根据分片文件的文件名和该分片文件所在的文件缓存服务器的地址生成下载地址。

可选地,在根据本发明的文件下载方法中,客户端根据该下载地址从文件缓存服务器下载对应分片文件的步骤包括:客户端根据下载地址指向的文件缓存服务器的地址从该文件缓存服务器下载对应的分片文件。

可选地,在根据本发明的文件下载方法中,客户端在接收到分片文件映射表后向调度服务器发送查询请求的步骤包括步骤:客户端向调度服务器查询多个分片文件的缓存进度,直到接收到由调度服务器发送的下载地址为止。

可选地,在根据本发明的文件下载方法中,在客户端根据下载地址从文件缓存服务器下载对应分片文件的步骤之后,还包括步骤:客户端查找分片文件映射表中是否存在所下载分片文件的校验码;若存在则按照分片文件映射表中存储的位置拼接分片文件;以及若不存在则重新下载对应的分片文件。

根据本发明的文件下载方案,在具有超级计算中心这样的VPN链路环境中进行文件下载时,先对单个大文件进行分片处理,将各个分片文件缓存到多个文件缓存服务器上,再经由这多个文件缓存服务器将各个分片文件并行地传送给客户端。既突破了单一VPN链路的限制,又支持多线程下载,最大限度地提升了文件下载的效率。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了现有单线程下载文件的改进方案的示意图;

图2示出了根据本发明一个实施例的文件下载系统200的示意图;以及

图3示出了根据本发明一个实施例的文件下载系统200执行文件下载方法300的交互图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图2示出了根据本发明一个实施例的文件下载系统200的示意图。

如图2所示,该系统200包括:客户端210、超级计算中心220、调度服务器230和多个文件缓存服务器240,超级计算中心220布置在远程的计算集群,用以执行客户端210提交的作业,并生成作业运行的结果文件,本发明对系统200内各部件的数量不作限制。其中,超级计算中心220以第一网络连接方式与客户端210、多个文件缓存服务器240和调度服务器230分别建立连接,客户端210以第二网络连接方式与调度服务器230和文件缓存服务器240分别建立连接。

根据本发明的实施方式,由于超级计算中心220网络隔离,故超级计算中心220只能通过VPN链路(即,第一网络连接方式)与客户端210进行通讯,为进一步突破VPN通讯链路的限制,让文件的一部分可以通过普通的互联网链路进行多线程的下载,在超级计算中心220和客户端210之间布置了多个文件缓存服务器240,多个文件缓存服务器240与超级计算中心220之间仍通过VPN链路进行通讯,但多个文件缓存服务器240与多个客户端210之间采用普通的互联网链路(即,第二网络连接方式)进行通讯。同时,增加调度服务器230,用于监控文件的缓存进度,同样地,调度服务器230与客户端210之间采用普通的互联网链路通讯,与超级计算中心210之间采用VPN链路通讯。

由于通过VPN链路进行通讯(如,下载文件)的速度小于通过普通互联网链路(如,HTTP协议)进行通讯的速度,故,若客户端210不是直接从超级计算中心220上下载结果文件,而是从文件缓存服务器240上下载文件,将能大大提高文件下载的速度。

概括来讲,在系统200中,客户端210向超级计算中心220发送文件下载请求。

超级计算中心220按照一系列规则对请求下载的文件进行分片,并记载各分片文件的位置,而后将各分片文件发送给对应的每个文件缓存服务器240。

文件缓存服务器240分别存储由超级计算中心220发送的各分片文件。

调度服务器230监控各分片文件的缓存进度,在接收到超级计算中心220发送的某一分片文件在相应文件缓存服务器上的地址(即,第二消息)时,作为对客户端210查询分片文件缓存进度的响应,生成该分片文件的下载地址给客户端210,以便客户端210去文件缓存服务器240上下载该分片文件。

客户端210在接收到分片文件映射表后,向调度服务器230查询多个分片文件的缓存进度,直到接收到由调度服务器发送的下载地址为止。

客户端210将下载的各分片文件依其位置信息进行拼接,最终得到完整的下载文件。

根据本发明的实施方式,超级计算中心220包括:连接管理单元222和控制单元224,如图2所示。

其中,连接管理单元222接收客户端210发送的文件下载请求。控制单元224在接收到文件下载请求后,根据预定规则对所请求下载的文件进行分片处理得到多个分片文件,并生成分片文件映射表以存储各个分片文件在所请求下载的文件中的位置。

根据本发明的一个实施例,控制单元224判断所请求下载的文件大小是否大于阈值,若大于阈值则对该文件进行分片处理得到第一数目个分片文件,其中,第一数目根据文件缓存服务器240的数目得到。例如,设置当文件大小超过200M时就对文件进行分片,并且参考文件缓存服务器240的数目,若文件缓存服务器240有n个,则将文件分成(n+1)个分片。

或者,控制单元224根据预置分片大小对文件进行分片处理,得到至少一个分片文件。例如,设置固定的分片大小为200M,则按照每片200M大小对文件进行分片,要注意的是,最后一个分片可能会小于200M。

可选地,分片文件映射表中可以存储分片文件序号作为分片文件的位置信息。控制单元224为每个分片文件生成校验码以作为该分片文件的文件名,并在分片文件映射表中与分片文件的位置关联存储。如表1示例性地给出一个分片文件映射表的示例。本发明对分片文件生成校验码的方式不做限制。

表1文件映射表

连接管理单元222发送第一消息给客户端210,其中第一消息包括第一个分片文件和分片文件映射表的下载地址。

客户端210根据超级计算中心220返回的第一消息从超级计算中心220下载第一个分片文件和分片文件映射表。

连接管理单元222将除第一个分片文件外的其他分片文件分别发送至对应的文件缓存服务器240。

客户端210在接收到分片文件映射表后还会向调度服务器230发送查询请求,查询多个分片文件的缓存进度,知道接收到调度服务器230发送的下载地址为止。

同时,连接管理单元222在每个分片文件在相应文件缓存服务器上缓存之后发送第二消息给调度服务器230,其中第二消息包括该分片文件在相应文件缓存服务器240上的地址。

根据本发明的一个实施例,客户端210还可以查找分片文件映射表中是否存在所下载分片文件的校验码:若存在则按照分片文件映射表中存储的位置信息拼接分片文件;若不存在则重新下载对应的分片文件。

下面将更为详细地介绍系统200在执行文件下载方法时的流程。图3示出了根据本发明一个实施例的在文件下载系统200中执行文件下载方法300的交互图。

如图3所示,在步骤S301中,客户端210发送文件下载请求给超级计算中心220。

随后在步骤S302中,超级计算中心220接收到由客户端210发送的文件下载请求,根据预定规则对所请求下载的文件进行分片处理得到多个分片文件,并且,超级计算中心220生成分片文件映射表以存储各个分片文件在所请求下载的文件中的位置。

根据本发明的一个实施例,预定规则是,判断所请求下载的文件大小是否大于阈值,若大于阈值则对该文件进行分片处理得到第一数目个分片文件,其中,第一数目根据文件缓存服务器240的数目得到。例如,设置当文件大小超过200M时就对文件进行分片,并且参考文件缓存服务器240的数目,若文件缓存服务器240有n个,则将文件分成(n+1)个分片。

根据本发明的另一个实施例,预定规则是,根据预置分片大小对文件进行分片处理,得到至少一个分片文件。例如,设置固定的分片大小为200M,则按照每片200M大小对文件进行分片,要注意的是,最后一个分片可能会小于200M。

根据一种实现方式,超级计算中心220为每个分片文件生成校验码以作为该分片文件的文件名,并在分片文件映射表中与分片文件的位置关联存储。分片文件映射表如表1所示,以文件分片序号表征分片文件在所请求下载的文件中的位置,对每个分片文件生成校验码,如“abc”“def”“acd”,作为分片文件的文件名。应当注意的是,本发明对生成校验码的方式不做限制。

随后在步骤S303中,超级计算中心220发送第一消息给客户端210,其中,第一消息包括第一个分片文件(即,分片文件序号为0)和分片文件映射表的下载地址。

随后在步骤S304中,客户端210根据第一消息从超级计算中心220上下载第一个分片文件和分片文件映射表。此时,客户端210是通过VPN链路向超级计算中心220下载文件。

随后在步骤S305中,超级计算中心220将除第一个分片文件外的其他分片文件分别发送至对应的文件缓存服务器240。根据本发明的实施例,超级计算中心220依序将一个分片文件发送给一个文件缓存服务器240,也就是说,超级计算中心220与多个文件缓存服务器240之间构成多条VPN链路,并行地将多个分片文件发送至文件缓存服务器240。

随后在步骤S306中,超级计算中心220在每个分片文件在相应文件缓存服务器240上缓存之后发送第二消息给调度服务器230,其中第二消息包括该分片文件在相应文件缓存服务器240上的地址。根据本发明的一个实施例,设某个已缓存的分片文件的文件名(即,校验码)为abc,该分片文件所在的文件缓存服务器的地址为FCS1,超级计算中心220将分片文件文件名abc及对应的文件缓存服务器地址FCS1发送给调度服务器230。

在步骤S307中,客户端210在接收到分片文件映射表后就会向调度服务器230查询所述多个分片文件的缓存进度,直到接收到由调度服务器230发送的下载地址(即,步骤S308)为止。

在步骤S308中,调度服务器230在接收到第二消息后,生成该分片文件的下载地址、并发送该下载地址给客户端210以响应步骤S307。

根据本发明的一种实施方式,调度服务器230根据分片文件的文件名和该分片文件所在的文件缓存服务器的地址生成下载地址。例如,设某个分片文件的文件名为abc,对应的文件缓存服务器的地址为FCS1,那么,生成对应的下载地址就是:URL:http://FCS1/abc。

随后在步骤S309中,客户端210在接收到由调度服务器230发送的下载地址时,根据该下载地址指向的文件缓存服务器的地址从该文件缓存服务器下载对应分片文件。根据本发明的实施例,客户端210只要接收到一个下载地址,就启动下载该分片文件,同时,客户端210还会继续向调度服务器230查询是否有分片文件完成缓存,若有,则根据下一个分片文件的下载地址并行地进行下载,直至所有的分片文件都完成下载。

在系统200中,客户端210与多个文件缓存服务器240之间以普通的互联网连接方式相连,故,客户端可以多线程地从文件缓存服务器上下载分片文件,提高下载速度和效率。

最后在步骤S310中,当所有分片文件都下载完毕时,客户端210根据分片文件映射表拼接第一个分片文件及所下载的其他分片文件,得到完整的下载文件。

根据本发明的实施例,客户端210在根据下载地址从文件缓存服务器下载对应分片文件后,客户端还会查找分片文件映射表中是否存在所下载分片文件的校验码:若存在则按照分片文件映射表中存储的位置拼接分片文件;若不存在则重新下载对应的分片文件。

根据本发明的文件下载方案,在具有超级计算中心这样的VPN链路环境中进行文件下载时,先对单个大文件进行分片处理,将各个分片文件缓存到多个文件缓存服务器上,经由这多个文件缓存服务器将各个分片文件并行地传送给客户端。既突破了单一VPN链路的限制,又支持多线程下载,最大限度地提升了文件下载的效率。

应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

本发明还公开了:

A6、如A1-5中任一项所述的系统,其中,在超级计算中心中,控制单元还适于为每个分片文件生成校验码以作为该分片文件的文件名,并在分片文件映射表中与分片文件的位置关联存储。

A7、如A6所述的系统,其中,调度服务器还适于在接收到第二消息时,根据分片文件的文件名和该分片文件所在的文件缓存服务器的地址生成下载地址。

A8、如A7所述的系统,其中,客户端还适于根据下载地址指向的文件缓存服务器的地址从该文件缓存服务器下载该分片文件。

A9、如A1-8中任一项所述的系统,客户端还适于在接收到分片文件映射表后向调度服务器发送查询请求包括:客户端还适于向调度服务器查询多个分片文件的缓存进度,直到接收到由调度服务器发送的下载地址为止。

A10、如A6-9中任一项所述的系统,其中,客户端还适于查找分片文件映射表中是否存在所下载分片文件的校验码;若存在则按照分片文件映射表中存储的位置信息拼接分片文件;以及若不存在则重新下载对应的分片文件。

B16、如B11-15中任一项中任一项所述的方法,其中,超级计算中心生成分片文件映射表以存储各个分片文件在所请求下载的文件中的位置的步骤还包括:超级计算中心为每个分片文件生成校验码以作为该分片文件的文件名,并在分片文件映射表中与分片文件的位置关联存储。

B17、如B16所述的方法,在超级计算中心发送第二消息给所述调度服务器的步骤之后,还包括步骤:调度服务器根据分片文件的文件名和该分片文件所在的文件缓存服务器的地址生成下载地址。

B18、如B17所述的方法,其中,客户端根据该下载地址从文件缓存服务器下载对应分片文件的步骤包括:客户端根据下载地址指向的文件缓存服务器的地址从该文件缓存服务器下载对应的分片文件。

B19、如B11-18中任一项所述的方法,其中,客户端在接收到分片文件映射表后向调度服务器发送查询请求的步骤包括:客户端向调度服务器查询多个分片文件的缓存进度,直到接收到由调度服务器发送的下载地址为止。

B20、如B16-19中任一项所述的方法,在客户端根据下载地址从文件缓存服务器下载对应分片文件的步骤之后,还包括步骤:客户端查找所述分片文件映射表中是否存在所下载分片文件的校验码;若存在则按照分片文件映射表中存储的位置拼接分片文件;以及若不存在则重新下载对应的分片文件。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1