本发明属于大数据下载管理技术领域,尤其涉及一种基于移动云计算的大容量数据下载方法及系统。
背景技术:
随着移动互联网和移动云计算的蓬勃发展,移动设备的配置也有增强,但移动设备相比PC机,资源仍然非常有限,尤其是大文件的下载,对于带宽有限的移动设备来说,是比较耗费时间的,需要长时间与远程服务器保持网络连接,进行数据传输。网络连接的时间越长,消耗的电池电量也越多。所以文件下载任务,给移动设备带来了三个问题:
1.需要较多网络流量,产生较多费用;
2.下载需要的时间较长,用户得到下载的文件等待时间较长;
3.下载所消耗的电池电量较多,缩短了移动设备的续航时间。
而在移动场景中使用的设备不方便随时充电,这对移动设备访问移动云计算服务的能耗考验很大;另一方面,移动网络的发展相对滞后,移动设备的移动网络带宽严重不足,通信稳定性和可靠性差,加之移动网络的费用昂贵,所以网络问题也是移动云计算要解决的主要问题之一。
技术实现要素:
本发明的目的在于提供一种基于移动云计算的大容量数据下载方法,其通过设置移动代理终端的多层级管控,能够快速下载大容量数据,并且节省了移动设备的能耗。
本发明是这样实现的,有鉴于此,一种基于移动云计算的大容量数据下载方法,所述基于移动云计算的大容量数据下载方法包括以下步骤:
S1、将待下载的文件分成多个分片数据,计算每个分片数据的开始位置和结束位置;
S2、在移动代理终端之间同时开启多个独立的线程,分别对每一个分片数据进行并行下载,下载的分片数据写入同一临时下载文件中;
S3、将待下载的文件的分片数据依次写入临时下载文件中,直到所有分片数据的开始位置均不小于结束位置时,将临时下载文件重命名为正式下载文件。
一种基于移动云计算的大容量数据下载系统,所述基于移动云计算的大容量数据下载系统包括以下功能模块:
数据分流模块、用于将待下载的文件分成多个分片数据,计算每个分片数据的开始位置和结束位置;
并行下载模块、用于在移动代理终端之间同时开启多个独立的线程,分别对每一个分片数据进行并行下载,下载的分片数据写入同一临时下载文件中;
分片下载模块、用于将待下载的文件的分片数据依次写入临时下载文件中,直到所有分片数据的开始位置均不小于结束位置时,将临时下载文件重命名为正式下载文件。
本发明克服现有技术的不足,提供一种基于移动云计算的大容量数据下载方法及其系统,其在移动代理终端收到移动设备的下载请求后,采用多线程技术并行下载文件,实现在较短时间内将文件下载完成并保存在移动代理终端本地,然后通知移动设备该文件已下载完成,移动设备再与移动代理终端建立网络连接,由于移动设备与该移动代理终端在同一局域网环境中,所以移动设备与该移动代理终端之间的传输速度很快,移动设备通过高速网络带宽将该文件从移动代理终端下载下来。
附图说明
图1是本发明所述基于移动云计算的大容量数据下载方法的流程框图;
图2是图1中步骤S3的子流程框图;
图3是本发明所述基于移动云计算的大容量数据下载方法的另一流程框图;
图4是本发明所述基于移动云计算的大容量数据下载系统的模块框图;
图5是图1中分片下载模块的子模块框图;
图6是本发明所述基于移动云计算的大容量数据下载系统的另一模块框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供一种基于移动云计算的大容量数据下载方法,所述基于移动云计算的大容量数据下载方法包括以下步骤:
S1、将待下载的文件分成多个分片数据,计算每个分片数据的开始位置和结束位置。
具体的,将要下载的文件分成N个分片,假设文件总大小为M,下面计算出每个分片的开始位置和结束位置,如[开始位置,结束位置];第一个分片的位置则是:第二个分片的位置:第三个分片的位置:依次类推,第N-1个分片的位置是:第N个分片的位置是:递推得到第i个分片位置Pi如公式1。即每个分片数据的开始位置和结束位置的函数计算式如下:
S2、在移动代理终端之间同时开启多个独立的线程,分别对每一个分片数据进行并行下载,下载的分片数据写入同一临时下载文件中。
具体的,所述基于移动云计算的大容量数据下载方法是通过Java的Runnable接口实现N个独立线程的开启。
S3、将待下载的文件的分片数据依次写入临时下载文件中,直到所有分片数据的开始位置均不小于结束位置时,将临时下载文件重命名为正式下载文件。
其中,如图2所示,所述步骤S3还包括以下分步骤:
S31、计算得出每个线程下载单个分片数据的开始位置和结束位置,并记录在一个临时文本文件中;
S32、所述线程毎读取一块分片数据,即将该分片数据写入临时下载文件中,并改变临时文本文件中该分片数据的开始位置;即在该该分片数据的开始位置加上已下载分片数据的大小,从而记录待下载的文件的下载进度。
S33、直到临时文本文件中所有分片数据的开始位置均不小于结束位置时,将临时下载文件重命名为正式的文件名。
本发明所述基于移动云计算的大容量数据下载方法,其通过将要下载的文件分成N个分片,并通过Java的Runnable接口实现N个独立线程的开启,分别对每一个分片数据进行并行下载,下载的分片数据写入同一临时下载文件,通过公式(1)计算得出每个分片数据的开始位置和结束位置,并记录在另一个临时文本文件中,毎读取一块分片数据,将该分片数据写入临时下载文件,并改变临时文本文件中该分片数据的开始位置,即在该分片数据的开始位置加上已下载分片数据的大小,从而记录待下载的文件的下载进度。当分片数据的开始位置不小于结束位置,则表明该分片数据已下载完成,直到临时文本文件中所有分片数据的开始位置均不小于结束位置时,则表明所有分片数据都下载完成,即将临时下载文件重命名为正式的文件名。
进一步的,如图3所示,所述基于移动云计算的大容量数据下载方法还包括步骤S3a,
所述步骤S3a:在待下载的文件整体下载结束之前出现下载中断时,如果分片数据的开始位置不小于结束位置,则表明该分片数据已经下载结束,不必要重复下载该分片数据;如果分片数据的开始位置小于结束位置,则重新开启下载任务时,自临时文本文件中记录的分片数据的开始位置起继续下载。
具体的,在临时文本文件中,记录每个分片下载的开始位置和结束位置的另一个用途是为了实现断点下载。即如果在下载结束之前遇到意外情况造成下载中断而需要重新开启下载任务时,不需要将整个文件完全重新下载,比较临时文本文件中记录的分片数据下载的开始位置和结束位置,如果开始位置不小于结束位置的,表明该分片数据已经下载结束,不必要重复下载该分片;如果开始位置小于结束位置的,表明该分片数据还没有下载结束,则继续临时文本文件中记录的分片数据开始位置继续下载。
本发明还提供一种基于移动云计算的大容量数据下载系统,如图4所示,所述基于移动云计算的大容量数据下载系统包括以下功能模块:
数据分流模块、用于将待下载的文件分成多个分片数据,计算每个分片数据的开始位置和结束位置。
并行下载模块、用于在移动代理终端之间同时开启多个独立的线程,分别对每一个分片数据进行并行下载,下载的分片数据写入同一临时下载文件中;优选的,所述并行下载模块是通过实现Java的Runnable接口开启N个独立的线程。
分片下载模块、将待下载的文件的分片数据依次写入临时下载文件中,直到所有分片数据的开始位置均不小于结束位置时,将临时下载文件重命名为正式下载文件。
如图5所示,所述分片下载模块还包括以下子功能模块:
位置计算子模块、用于计算得出每个线程下载单个分片数据的开始位置和结束位置,并记录在一个临时文本文件中;
位置改变子模块、用于在所述线程毎读取一块分片数据,即将该分片数据写入临时下载文件中,并改变临时文本文件中该分片数据的开始位置;
位置比较子模块、用于当临时文本文件中所有分片数据的开始位置均不小于结束位置时,将临时下载文件重命名为正式的文件名。
为了方便管理数量庞大、部署广泛的移动代理终端,所述基于移动云计算的大容量数据下载系统具有三层网络层次结构的移动代理终端,第一层,在骨干核心网络中心部署移动代理终端接入总控制器,第二层,在网络区域中心部署移动代理终端接入分控制器,第三层,在各个分支网络部署各个移动代理终端节点服务器。
所述基于移动云计算的大容量数据下载系统包括下载中断模块,如图6所示,所述下载中断模块用于在待下载的文件整体下载结束之前出现下载中断时,如果分片数据的开始位置不小于结束位置,则表明该分片数据已经下载结束,不必要重复下载该分片数据;如果分片数据的开始位置小于结束位置,则重新开启下载任务时,自临时文本文件中记录的分片数据的开始位置起继续下载。
本发明所述基于移动云计算的大容量数据下载方法及系统,其在移动代理终端收到移动设备的下载请求后,采用多线程技术并行下载文件,实现在较短时间内将文件下载完成并保存在移动代理终端本地,然后通知移动设备该文件已下载完成,移动设备再与移动代理终端建立网络连接,由于移动设备与该移动代理终端在同一局域网环境中,所以移动设备与该移动代理终端之间的传输速度很快,移动设备通过高速网络带宽将该文件从移动代理终端下载下来。本发明所述基于移动云计算的大容量数据下载方法,其通过移动代理终端的并行下载模式能够很好地使文件能够通过高速的无线局域网络从移动代理终端下载到移动设备,不需要移动网络流量,节省了费用。
假设移动设备直接从云计算中心下载文件需要时间t,移动代理终端将文件通过并行下载技术下载到移动代理终端本地的时间为t1,移动设备通过局域网将文件下载到移动设备的时间为t2,通过移动代理终端下载的总时间为t'=t1+t2。由于移动代理终端具有较好的网络带宽,移动设备与移动代理终端之间的局域网网络传输速度也很快,一般说来t'是小于t的,在不同的网络环境下,时间差值是不同的。
移动设备直接下载的方式,网络连接的时间是t,通过移动代理终端下载的方式,第一次发送请求到移动代理终端有一次网络连接,不过这个连接时间很短,相对于下载任务来说,带来的能耗几乎可以忽略不计,网络连接主要是通过无线局域网将文件从移动代理终端下载到移动设备这段时间t2。花费时间的多少与网络传输速率息息相关。无线局域网采用的标准是802.11b、802.11g、802.11n或者802.11ac[67],802.11b和802.11g都工作在2.4G的ISM频段上,802.11b最大速率达到11Mbps;801.11g最大速率达到54Mbps;802.11n可工作在2.4GHz和5GHz两个频段,理论速率最高可达600Mbps;802.11ac通过5GHz频带进行通讯,理论上能够提供1Gbps带宽进行多站式无线局域网通讯,或是500Mbps的单一连接传输带宽。不使用移动代理终端的情况下,移动设备通常需要通过移动网络连接云计算中心进行下载,移动网络的速度慢一些,常用的3G网络速率一般在几百kbps,4G网络一般为几Mbps。即使通过家用Wi-Fi下载,速度一般为4~10Mbps。
尽管无线局域网的实际传输速率由于环境的干扰,信号的强度衰减,一般也达不到理论上的最大速率,但无线局域网的速度依旧远远高于移动网络和普通Wi-Fi网络,因此网络连接时间t2远远小于t,网络连接时间缩短了,连接网络消耗的电量自然也减少了。另一方面,有研究表明,在相同的网络连接时间内,移动设备连接移动网络比连接无线局域网更消耗电量。因此,通过移动代理终端下载大容量文件既缩短了时间,也节省了单位时间的能耗,整体上大大节省了移动设备的电量消耗,延长了移动设备的续航时间。
以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实施例即可。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可檫除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。