本發(fā)明屬于大數(shù)據(jù)下載管理技術領域,尤其涉及一種基于移動云計算的大容量數(shù)據(jù)下載方法及系統(tǒng)。
背景技術:
隨著移動互聯(lián)網(wǎng)和移動云計算的蓬勃發(fā)展,移動設備的配置也有增強,但移動設備相比PC機,資源仍然非常有限,尤其是大文件的下載,對于帶寬有限的移動設備來說,是比較耗費時間的,需要長時間與遠程服務器保持網(wǎng)絡連接,進行數(shù)據(jù)傳輸。網(wǎng)絡連接的時間越長,消耗的電池電量也越多。所以文件下載任務,給移動設備帶來了三個問題:
1.需要較多網(wǎng)絡流量,產(chǎn)生較多費用;
2.下載需要的時間較長,用戶得到下載的文件等待時間較長;
3.下載所消耗的電池電量較多,縮短了移動設備的續(xù)航時間。
而在移動場景中使用的設備不方便隨時充電,這對移動設備訪問移動云計算服務的能耗考驗很大;另一方面,移動網(wǎng)絡的發(fā)展相對滯后,移動設備的移動網(wǎng)絡帶寬嚴重不足,通信穩(wěn)定性和可靠性差,加之移動網(wǎng)絡的費用昂貴,所以網(wǎng)絡問題也是移動云計算要解決的主要問題之一。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于移動云計算的大容量數(shù)據(jù)下載方法,其通過設置移動代理終端的多層級管控,能夠快速下載大容量數(shù)據(jù),并且節(jié)省了移動設備的能耗。
本發(fā)明是這樣實現(xiàn)的,有鑒于此,一種基于移動云計算的大容量數(shù)據(jù)下載方法,所述基于移動云計算的大容量數(shù)據(jù)下載方法包括以下步驟:
S1、將待下載的文件分成多個分片數(shù)據(jù),計算每個分片數(shù)據(jù)的開始位置和結束位置;
S2、在移動代理終端之間同時開啟多個獨立的線程,分別對每一個分片數(shù)據(jù)進行并行下載,下載的分片數(shù)據(jù)寫入同一臨時下載文件中;
S3、將待下載的文件的分片數(shù)據(jù)依次寫入臨時下載文件中,直到所有分片數(shù)據(jù)的開始位置均不小于結束位置時,將臨時下載文件重命名為正式下載文件。
一種基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng),所述基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng)包括以下功能模塊:
數(shù)據(jù)分流模塊、用于將待下載的文件分成多個分片數(shù)據(jù),計算每個分片數(shù)據(jù)的開始位置和結束位置;
并行下載模塊、用于在移動代理終端之間同時開啟多個獨立的線程,分別對每一個分片數(shù)據(jù)進行并行下載,下載的分片數(shù)據(jù)寫入同一臨時下載文件中;
分片下載模塊、用于將待下載的文件的分片數(shù)據(jù)依次寫入臨時下載文件中,直到所有分片數(shù)據(jù)的開始位置均不小于結束位置時,將臨時下載文件重命名為正式下載文件。
本發(fā)明克服現(xiàn)有技術的不足,提供一種基于移動云計算的大容量數(shù)據(jù)下載方法及其系統(tǒng),其在移動代理終端收到移動設備的下載請求后,采用多線程技術并行下載文件,實現(xiàn)在較短時間內(nèi)將文件下載完成并保存在移動代理終端本地,然后通知移動設備該文件已下載完成,移動設備再與移動代理終端建立網(wǎng)絡連接,由于移動設備與該移動代理終端在同一局域網(wǎng)環(huán)境中,所以移動設備與該移動代理終端之間的傳輸速度很快,移動設備通過高速網(wǎng)絡帶寬將該文件從移動代理終端下載下來。
附圖說明
圖1是本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載方法的流程框圖;
圖2是圖1中步驟S3的子流程框圖;
圖3是本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載方法的另一流程框圖;
圖4是本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng)的模塊框圖;
圖5是圖1中分片下載模塊的子模塊框圖;
圖6是本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng)的另一模塊框圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明,應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖1所示,本發(fā)明實施例提供一種基于移動云計算的大容量數(shù)據(jù)下載方法,所述基于移動云計算的大容量數(shù)據(jù)下載方法包括以下步驟:
S1、將待下載的文件分成多個分片數(shù)據(jù),計算每個分片數(shù)據(jù)的開始位置和結束位置。
具體的,將要下載的文件分成N個分片,假設文件總大小為M,下面計算出每個分片的開始位置和結束位置,如[開始位置,結束位置];第一個分片的位置則是:第二個分片的位置:第三個分片的位置:依次類推,第N-1個分片的位置是:第N個分片的位置是:遞推得到第i個分片位置Pi如公式1。即每個分片數(shù)據(jù)的開始位置和結束位置的函數(shù)計算式如下:
S2、在移動代理終端之間同時開啟多個獨立的線程,分別對每一個分片數(shù)據(jù)進行并行下載,下載的分片數(shù)據(jù)寫入同一臨時下載文件中。
具體的,所述基于移動云計算的大容量數(shù)據(jù)下載方法是通過Java的Runnable接口實現(xiàn)N個獨立線程的開啟。
S3、將待下載的文件的分片數(shù)據(jù)依次寫入臨時下載文件中,直到所有分片數(shù)據(jù)的開始位置均不小于結束位置時,將臨時下載文件重命名為正式下載文件。
其中,如圖2所示,所述步驟S3還包括以下分步驟:
S31、計算得出每個線程下載單個分片數(shù)據(jù)的開始位置和結束位置,并記錄在一個臨時文本文件中;
S32、所述線程毎讀取一塊分片數(shù)據(jù),即將該分片數(shù)據(jù)寫入臨時下載文件中,并改變臨時文本文件中該分片數(shù)據(jù)的開始位置;即在該該分片數(shù)據(jù)的開始位置加上已下載分片數(shù)據(jù)的大小,從而記錄待下載的文件的下載進度。
S33、直到臨時文本文件中所有分片數(shù)據(jù)的開始位置均不小于結束位置時,將臨時下載文件重命名為正式的文件名。
本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載方法,其通過將要下載的文件分成N個分片,并通過Java的Runnable接口實現(xiàn)N個獨立線程的開啟,分別對每一個分片數(shù)據(jù)進行并行下載,下載的分片數(shù)據(jù)寫入同一臨時下載文件,通過公式(1)計算得出每個分片數(shù)據(jù)的開始位置和結束位置,并記錄在另一個臨時文本文件中,毎讀取一塊分片數(shù)據(jù),將該分片數(shù)據(jù)寫入臨時下載文件,并改變臨時文本文件中該分片數(shù)據(jù)的開始位置,即在該分片數(shù)據(jù)的開始位置加上已下載分片數(shù)據(jù)的大小,從而記錄待下載的文件的下載進度。當分片數(shù)據(jù)的開始位置不小于結束位置,則表明該分片數(shù)據(jù)已下載完成,直到臨時文本文件中所有分片數(shù)據(jù)的開始位置均不小于結束位置時,則表明所有分片數(shù)據(jù)都下載完成,即將臨時下載文件重命名為正式的文件名。
進一步的,如圖3所示,所述基于移動云計算的大容量數(shù)據(jù)下載方法還包括步驟S3a,
所述步驟S3a:在待下載的文件整體下載結束之前出現(xiàn)下載中斷時,如果分片數(shù)據(jù)的開始位置不小于結束位置,則表明該分片數(shù)據(jù)已經(jīng)下載結束,不必要重復下載該分片數(shù)據(jù);如果分片數(shù)據(jù)的開始位置小于結束位置,則重新開啟下載任務時,自臨時文本文件中記錄的分片數(shù)據(jù)的開始位置起繼續(xù)下載。
具體的,在臨時文本文件中,記錄每個分片下載的開始位置和結束位置的另一個用途是為了實現(xiàn)斷點下載。即如果在下載結束之前遇到意外情況造成下載中斷而需要重新開啟下載任務時,不需要將整個文件完全重新下載,比較臨時文本文件中記錄的分片數(shù)據(jù)下載的開始位置和結束位置,如果開始位置不小于結束位置的,表明該分片數(shù)據(jù)已經(jīng)下載結束,不必要重復下載該分片;如果開始位置小于結束位置的,表明該分片數(shù)據(jù)還沒有下載結束,則繼續(xù)臨時文本文件中記錄的分片數(shù)據(jù)開始位置繼續(xù)下載。
本發(fā)明還提供一種基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng),如圖4所示,所述基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng)包括以下功能模塊:
數(shù)據(jù)分流模塊、用于將待下載的文件分成多個分片數(shù)據(jù),計算每個分片數(shù)據(jù)的開始位置和結束位置。
并行下載模塊、用于在移動代理終端之間同時開啟多個獨立的線程,分別對每一個分片數(shù)據(jù)進行并行下載,下載的分片數(shù)據(jù)寫入同一臨時下載文件中;優(yōu)選的,所述并行下載模塊是通過實現(xiàn)Java的Runnable接口開啟N個獨立的線程。
分片下載模塊、將待下載的文件的分片數(shù)據(jù)依次寫入臨時下載文件中,直到所有分片數(shù)據(jù)的開始位置均不小于結束位置時,將臨時下載文件重命名為正式下載文件。
如圖5所示,所述分片下載模塊還包括以下子功能模塊:
位置計算子模塊、用于計算得出每個線程下載單個分片數(shù)據(jù)的開始位置和結束位置,并記錄在一個臨時文本文件中;
位置改變子模塊、用于在所述線程毎讀取一塊分片數(shù)據(jù),即將該分片數(shù)據(jù)寫入臨時下載文件中,并改變臨時文本文件中該分片數(shù)據(jù)的開始位置;
位置比較子模塊、用于當臨時文本文件中所有分片數(shù)據(jù)的開始位置均不小于結束位置時,將臨時下載文件重命名為正式的文件名。
為了方便管理數(shù)量龐大、部署廣泛的移動代理終端,所述基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng)具有三層網(wǎng)絡層次結構的移動代理終端,第一層,在骨干核心網(wǎng)絡中心部署移動代理終端接入總控制器,第二層,在網(wǎng)絡區(qū)域中心部署移動代理終端接入分控制器,第三層,在各個分支網(wǎng)絡部署各個移動代理終端節(jié)點服務器。
所述基于移動云計算的大容量數(shù)據(jù)下載系統(tǒng)包括下載中斷模塊,如圖6所示,所述下載中斷模塊用于在待下載的文件整體下載結束之前出現(xiàn)下載中斷時,如果分片數(shù)據(jù)的開始位置不小于結束位置,則表明該分片數(shù)據(jù)已經(jīng)下載結束,不必要重復下載該分片數(shù)據(jù);如果分片數(shù)據(jù)的開始位置小于結束位置,則重新開啟下載任務時,自臨時文本文件中記錄的分片數(shù)據(jù)的開始位置起繼續(xù)下載。
本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載方法及系統(tǒng),其在移動代理終端收到移動設備的下載請求后,采用多線程技術并行下載文件,實現(xiàn)在較短時間內(nèi)將文件下載完成并保存在移動代理終端本地,然后通知移動設備該文件已下載完成,移動設備再與移動代理終端建立網(wǎng)絡連接,由于移動設備與該移動代理終端在同一局域網(wǎng)環(huán)境中,所以移動設備與該移動代理終端之間的傳輸速度很快,移動設備通過高速網(wǎng)絡帶寬將該文件從移動代理終端下載下來。本發(fā)明所述基于移動云計算的大容量數(shù)據(jù)下載方法,其通過移動代理終端的并行下載模式能夠很好地使文件能夠通過高速的無線局域網(wǎng)絡從移動代理終端下載到移動設備,不需要移動網(wǎng)絡流量,節(jié)省了費用。
假設移動設備直接從云計算中心下載文件需要時間t,移動代理終端將文件通過并行下載技術下載到移動代理終端本地的時間為t1,移動設備通過局域網(wǎng)將文件下載到移動設備的時間為t2,通過移動代理終端下載的總時間為t'=t1+t2。由于移動代理終端具有較好的網(wǎng)絡帶寬,移動設備與移動代理終端之間的局域網(wǎng)網(wǎng)絡傳輸速度也很快,一般說來t'是小于t的,在不同的網(wǎng)絡環(huán)境下,時間差值是不同的。
移動設備直接下載的方式,網(wǎng)絡連接的時間是t,通過移動代理終端下載的方式,第一次發(fā)送請求到移動代理終端有一次網(wǎng)絡連接,不過這個連接時間很短,相對于下載任務來說,帶來的能耗幾乎可以忽略不計,網(wǎng)絡連接主要是通過無線局域網(wǎng)將文件從移動代理終端下載到移動設備這段時間t2?;ㄙM時間的多少與網(wǎng)絡傳輸速率息息相關。無線局域網(wǎng)采用的標準是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帶寬進行多站式無線局域網(wǎng)通訊,或是500Mbps的單一連接傳輸帶寬。不使用移動代理終端的情況下,移動設備通常需要通過移動網(wǎng)絡連接云計算中心進行下載,移動網(wǎng)絡的速度慢一些,常用的3G網(wǎng)絡速率一般在幾百kbps,4G網(wǎng)絡一般為幾Mbps。即使通過家用Wi-Fi下載,速度一般為4~10Mbps。
盡管無線局域網(wǎng)的實際傳輸速率由于環(huán)境的干擾,信號的強度衰減,一般也達不到理論上的最大速率,但無線局域網(wǎng)的速度依舊遠遠高于移動網(wǎng)絡和普通Wi-Fi網(wǎng)絡,因此網(wǎng)絡連接時間t2遠遠小于t,網(wǎng)絡連接時間縮短了,連接網(wǎng)絡消耗的電量自然也減少了。另一方面,有研究表明,在相同的網(wǎng)絡連接時間內(nèi),移動設備連接移動網(wǎng)絡比連接無線局域網(wǎng)更消耗電量。因此,通過移動代理終端下載大容量文件既縮短了時間,也節(jié)省了單位時間的能耗,整體上大大節(jié)省了移動設備的電量消耗,延長了移動設備的續(xù)航時間。
以上裝置實施例與方法實施例是一一對應的,裝置實施例簡略之處,參見方法實施例即可。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。
專業(yè)人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能性一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術方案的特定應用和設計約束條件。專業(yè)技術人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應超過本發(fā)明的范圍。
結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機儲存器、內(nèi)存、只讀存儲器、電可編程ROM、電可檫除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內(nèi)所公知的任意其他形式的存儲介質(zhì)中。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。