本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)通信技術(shù),具體涉及實時離線下載技術(shù)。
背景技術(shù):
網(wǎng)絡(luò)資源文件包括程序安裝包、視頻文件、音頻文件等等。
目前已有的離線下載技術(shù)都是由下載服務(wù)器代替用戶下載資源文件,等用戶空閑時,再從下載服務(wù)器取回資源文件,主要目的是提高用戶下載速度,縮短下載時間,免去用戶下載的掛機煩惱。但事實上目前用戶的使用感受是離線下載要先等待下載服務(wù)器下載完整個資源文件后,下載客戶端才能下載,這意味著離線下載不一定縮短了用戶下載資源文件的時間。
目前已有如下的離線下載方法:
1.騰訊科技(深圳)有限公司于2014年5月21日公開的專利“離線下載控制方法及裝置”:其包括:
a)接收離線下載任務(wù)請求;
b)根據(jù)所述離線下載任務(wù)請求獲取相應(yīng)的下載鏈接信息;
c)以及獲取所述離線下載任務(wù)的優(yōu)先級標識,將優(yōu)先級標識大于閾值的離線下載任務(wù)優(yōu)先進行調(diào)度下載。
該專利側(cè)重于對離線下載任務(wù)優(yōu)先級進行調(diào)度,使優(yōu)先級較高的離線下載任務(wù)優(yōu)先于其他離線下載任務(wù)下載。
2.騰訊科技(深圳)有限公司于2014年3月26日公開的專利“離線下載系統(tǒng)和方法”:其包括:
a)離線任務(wù)管理服務(wù)器,用于獲取離線下載請求,所述離線下載請求中包括請求離線下載的客戶端的IP地址和離線任務(wù)的原始下載鏈接;
b)離線任務(wù)分發(fā)服務(wù)器,用于根據(jù)所述IP地址查找到與所述客戶端位于同一城域網(wǎng)內(nèi)的分布式離線下載服務(wù)器,并將所述離線任務(wù)分發(fā)給查找到的分布式離線下載服務(wù)器;
c)分布式離線下載服務(wù)器,部署在城域網(wǎng)的網(wǎng)絡(luò)出口處,用于根據(jù)所述離線任務(wù)的原始下載鏈接獲取所述離線任務(wù)對應(yīng)的數(shù)據(jù)內(nèi)容并存儲。
該專利設(shè)計的下載系統(tǒng)擁有多個下載服務(wù)器,在響應(yīng)下載客戶端請求時,根據(jù)下載客戶端的IP地址選擇與下載客戶端處于同一網(wǎng)域的下載服務(wù)器,是在物理上盡可能的縮短下載服務(wù)器與下載客戶端的距離。
3.騰訊科技(深圳)有限公司于2014年3月26日公開的專利“離線緩存的方法及裝置”:其包括:
a)根據(jù)用戶終端的指令發(fā)起資源下載請求;
b)截獲所述資源下載請求,并從所述資源下載請求中解析出下載資源的標識;
c)根據(jù)所述標識判斷本地數(shù)據(jù)庫中是否存在所述標識對應(yīng)的資源;
d)當存在時,封裝本地數(shù)據(jù)庫中資源并響應(yīng)所述資源下載請求,完成資源下載。
該專利在離線緩存方面使用了對所述資源進行唯一標識的方法,但沒有考慮的離線存儲空間有限的問題。
4.騰訊科技(深圳)有限公司于2013年8月21日公開的專利“文件共享的方法及系統(tǒng)”:該方法包括:
a)接收用戶終端提供方發(fā)送的包含下載地址的下載請求;
b)由下載地址進行數(shù)據(jù)下載,存儲下載的文件,并將存儲文件的鏈接地址反饋給用戶終端提供方;
c)接收用戶終端請求方發(fā)送的包含鏈接地址的共享請求,將與鏈接地址對應(yīng)的文件傳送給用戶終端請求方。
上述特征a)b)c)在接收用戶終端下載請求的同時,也將用于終端作為資源服務(wù)器,來對其他請求相同文件的用戶終端共享該文件,以此可減輕下載服務(wù)器負載。
5.騰訊科技(深圳)有限公司于2013年6月5日公開的專利“網(wǎng)絡(luò)資源文件的離線下載系統(tǒng)和方法”:其包括:
a)下載客戶端、離線任務(wù)管理服務(wù)器、離線下載服務(wù)器、云存儲服務(wù)器、文件切割分片服務(wù)器,其中:
b)所述下載客戶端用于發(fā)起離線下載任務(wù)請求,并從所述云存儲服務(wù)器下載已經(jīng)完成離線下載的分片文件;
c)所述離線任務(wù)管理服務(wù)器用于管理離線下載過程,向文件切割分片服務(wù)器發(fā)起離線下載任務(wù)請求,并從所述文件切割分片服務(wù)器查詢分片文件的下載狀態(tài),在離線下載完至少一個分片文件后通知下載客戶端進行下載;
d)所述文件切割分片服務(wù)器用于將請求離線下載的目標文件邏輯分割為一個以上分片文件,通知離線下載服務(wù)器下載所述分片文件,并接收分片文件的下載狀態(tài);
e)所述離線下載服務(wù)器用于離線下載所述分片文件到云存儲服務(wù)器,監(jiān)測分片文件的下載狀態(tài)并同步給文件切割分片服務(wù)器。
6.騰訊科技(深圳)有限公司于2013年5月22日公開的專利“一種離線下載的方法及系統(tǒng)”:其包括以下步驟:
a)接收用戶發(fā)送的文件離線下載請求信息,所述文件離線下載請求信息中攜帶有該文件的統(tǒng)一資源定位符URL;
b)在離線任務(wù)數(shù)據(jù)庫中查詢是否存在正在下載或者已下載完成的與所述文件離線下載請求信息相對應(yīng)的文件;
c)在存在時,檢測所述文件是否發(fā)生變化;
d)在發(fā)生變化時,根據(jù)所述URL從目標網(wǎng)站下載所述文件,并更新原有文件。
上述特征a)b)c)所述方法,目的在于檢查已存在的離線下載請求,該請求所述文件是否已經(jīng)發(fā)生變化。
7.騰訊科技(深圳)有限公司于2013年5月15日公開的專利“一種下載文件的方法及文件下載系統(tǒng)”:其包括:
a)接收離線任務(wù)下載請求,為離線任務(wù)下載請求中的每一獨立文件設(shè)置文件標識;
b)下載離線任務(wù),以文件標識存儲離線任務(wù)中下載的文件;
c)確定文件下載完畢,向下載客戶端輸出文件下載完畢通知消息,攜帶文件標識;
d)根據(jù)文件下載完畢通知消息中攜帶的文件標識下載存儲的離線下載文件。
8.騰訊科技(深圳)有限公司于2013年12月4日公開的專利“離線下載方法和系統(tǒng)”:其特征在于,該系統(tǒng)還包括:
a)離線下載任務(wù)調(diào)度服務(wù)器,用于從當前接收的來自下載客戶端的離線下載請求中提取出文件名并發(fā)送給離線下載文件聚類分析服務(wù)器;
b)以及,從離線下載文件聚類分析服務(wù)器接收到第一通知時,將該第一通知攜帶的文件名以及與該文件名相關(guān)的下載鏈接信息提供給下載客戶端,由下載客戶端選擇其中一個文件名相關(guān)的下載鏈接信息下載其需要的文件;
c)離線下載文件聚類分析服務(wù)器,用于接收來自所述離線下載任務(wù)調(diào)度服務(wù)器發(fā)送的文件名,并分析所述聚類結(jié)果數(shù)據(jù)庫中是否存在與該接收的文件名相似的其他文件名,如果是,發(fā)送第一通知給離線下載任務(wù)調(diào)度服務(wù)器,第一通知攜帶以下信息:
d)該存在的文件名以及與該文件名相關(guān)的下載鏈接信息,所述與文件名相關(guān)的下載鏈接信息為:
e)具有該文件名的文件被離線下載服務(wù)器下載至云存儲服務(wù)器上的位置信息。
9.深圳市騰訊計算機系統(tǒng)有限公司于2013年8月14日公開的專利“BT離線數(shù)據(jù)下載系統(tǒng)及方法”:其包括:
a)離線下載任務(wù)管理服務(wù)器,用于接收至少一個下載任務(wù),所述下載任務(wù)是從下載客戶端獲取的用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù),將所述至少一個下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器;
b)所述離線下載調(diào)度服務(wù)器用于對所述至少一個下載任務(wù)進行排重合并處理,再將經(jīng)過排重合并處理后的至少部分文件的下載任務(wù)分發(fā)給離線下載服務(wù)器;
c)所述離線下載服務(wù)器用于根據(jù)排重合并處理后的所述至少部分文件的下載任務(wù)下載數(shù)據(jù),將下載完成的數(shù)據(jù)存儲到存儲服務(wù)器中;
d)所述下載客戶端還用于從所述存儲服務(wù)器下載所述下載客戶端對應(yīng)的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。
上述特征a)b)c)d)是針對于BT任務(wù),其也用到離線存儲服務(wù)器。
10.深圳市騰訊計算機系統(tǒng)有限公司于2013年8月14日公開的專利“一種離線下載資源的系統(tǒng)、方法及裝置”:其包括:
a)種子文件服務(wù)器、客戶端和離線下載服務(wù)器群,其中,種子文件服務(wù)器,用于從客戶端獲取上傳的種子文件后,和/或,從互聯(lián)網(wǎng)獲取對應(yīng)資源的種子文件后將種子文件進行存儲;
b)客戶端,發(fā)送資源下載請求;
c)離線下載服務(wù)器群,用于接收所述資源下載請求,從種子文件服務(wù)器讀取所述資源對應(yīng)的種子文件,根據(jù)所述種子文件下載資源。
上述特征a)b)c)所述,該離線下載方法重在服務(wù)器群的任務(wù)分發(fā)分配。
11.百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司于2013年7月31日公開的專利“離線下載方法和離線下載服務(wù)器”:其包括以下步驟:
a)用戶向離線下載服務(wù)器提交下載任務(wù);
b)所述離線下載服務(wù)器判斷所述下載任務(wù)是否是已經(jīng)下載過的任務(wù);
c)如果否,則根據(jù)所述下載任務(wù)判斷下載方式;
d)根據(jù)所述下載方式將與所述下載任務(wù)對應(yīng)的資源下載到所述離線下載服務(wù)器;
e)以及將所述資源拷貝到所述用戶的空間。
12.北京極科極客科技有限公司于2015年7月29日公開的專利“一種基于路由器的離線下載系統(tǒng)”:其包括:
a)該系統(tǒng)分為4個層次:第一層是下載器層,用于系統(tǒng)后臺運行的下載器進程;
b)第二層是下載器封裝接口層,用于對下載器進行封裝,對外提供統(tǒng)一的接口,第二層還具有數(shù)據(jù)庫模塊,用于存儲任務(wù)狀態(tài);
c)第三層是下載器和數(shù)據(jù)庫抽象層,用于對數(shù)據(jù)庫和下載器進行封裝,對外提供統(tǒng)一的任務(wù)控制接口體系;
d)第四層是對外接口層,用于和用戶進行交互。
該專利的離線下載系統(tǒng),將路由器當作下載服務(wù)器,并連接外置存儲設(shè)備作為離線存儲空間。
13.北京奇虎科技有限公司;奇智軟件(北京)有限公司于2015年2月11日公開的專利“進行文件下載的方法、裝置及瀏覽器客戶端”:其包括:
a)檢測到瀏覽器客戶端中的對于待下載文件的文件下載事件;
b)啟動瀏覽器客戶端中的下載組件以顯示對所述待下載文件進行的接收的下載界面,其中在所述下載界面加載有進行離線下載的入口;
c)接收到對所述離線下載的入口的觸發(fā),提取所述待下載文件的下載用信息并上傳到瀏覽器客戶端用戶對應(yīng)的下載服務(wù)器側(cè),以便所述下載服務(wù)器側(cè)使用所述下載用信息進行所述待下載文件的下載;
d)接收到所述下載服務(wù)器返回的對待下載文件進行下載的狀態(tài)信息和/或結(jié)果信息,并發(fā)送回所述瀏覽器客戶端側(cè)進行顯示和/或訪問。
14.北京奇虎科技有限公司;奇智軟件(北京)有限公司于2013年11月13日公開的專利“資源離線下載方法及裝置”:其包括:
a)根據(jù)需要離線下載的資源的網(wǎng)絡(luò)屬性確定所述資源所歸屬的網(wǎng)絡(luò)運營商;
b)根據(jù)設(shè)定的任務(wù)調(diào)控策略,從所述網(wǎng)絡(luò)運營商的離線下載服務(wù)器集群中選擇離線下載服務(wù)器,其中,所述離線下載服務(wù)器用于對資源進行離線下載;
c)將所述資源的離線下載任務(wù)分配給所選擇的離線下載服務(wù)器以進行離線下載。
15.北京奇藝世紀科技有限公司于2015年2月18日公開的專利“一種離線下載文件的方法及裝置”:其包括:
a)當?shù)竭_特定的時刻時,自動向服務(wù)器發(fā)送下載請求;
b)所述下載請求攜帶有身份標識符,以使得所述服務(wù)器獲取所述下載請求后,根據(jù)預(yù)先建立的所述身份標識符對應(yīng)的第一類用戶模型確定出所述下載請求對應(yīng)的推薦文件;
c)并將所述推薦文件的網(wǎng)絡(luò)下載地址反饋給所述終端;
d)其中,所述身份標識符為持有所述終端的用戶訪問文件時所依據(jù)的標識信息,所述特定的時刻為根據(jù)預(yù)先建立的第二類用戶模型所確定出的時刻或用戶設(shè)置的時刻;
e)接收服務(wù)器反饋的推薦文件的網(wǎng)絡(luò)下載地址;根據(jù)所述推薦文件的網(wǎng)絡(luò)下載地址,自動離線下載所述推薦文件。
16.網(wǎng)易(杭州)網(wǎng)絡(luò)有限公司于2015年5月27日公開的專利“一種離線下載方法及裝置”:其包括:
a)根據(jù)資訊源的使用量計算所述資訊源的熱度值;
b)根據(jù)所述資訊源的熱度值確定資訊源離線下載順序。
17.武漢極訊軟件有限責(zé)任公司于2014年3月12日公開的專利“文件下載方法、裝置及系統(tǒng)”:其包括:
a)在創(chuàng)建并執(zhí)行第一下載任務(wù)后創(chuàng)建對應(yīng)的離線下載任務(wù)并發(fā)送到離線下載服務(wù)器,所述第一下載任務(wù)用于指示移動終端從目標服務(wù)器下載文件;
b)在接收到離線下載服務(wù)器返回的文件下載完成消息且第一下載任務(wù)未完成時,創(chuàng)建用于從離線下載服務(wù)器獲取所述待下載的文件的第二下載任務(wù);
c)以及基于所創(chuàng)建的第一下載任務(wù)和第二下載任務(wù),按照多源下載的方式,同時從目標服務(wù)器和離線下載服務(wù)器繼續(xù)獲取待下載文件中未完成下載的內(nèi)容。
18.Tencent Technology(Shenzhen)Company Limited,ShenZhen(Guangdong)(CN)于2013年4月24日公開的專利“OFFLINE DOWNLOAD METHOD,MULTIMEDIA FILE DOWNLOAD METHOD AND SYSTEM THEREOF”。
19.Olivier Chalouhi,Redwood City,CA(US);Paul Anton Richardson Gardner,PaloAlto,CA(US)于2010年8月10日公開的專利“OFFLINE DOWNLOADER”。
20.學(xué)位論文-碩士2011年刊載《Linux多協(xié)議多線程下載技術(shù)的研究與實現(xiàn)》一文中第4章,在文件的分塊方面使用了一個固定分塊數(shù)量,但是該固定分塊數(shù)量沒有依據(jù)服務(wù)器的實際運行情況來定,這不利于實時離線下載,尤其在下載客戶端請求超大文件時,會導(dǎo)致下載客戶端等待較長一段時間才開始從下載服務(wù)器取回數(shù)據(jù)。
21.學(xué)位論文-博士2014年刊載《云下載系統(tǒng)的理論模型與資源分配算法研究》一文中,主要工作和創(chuàng)新點如下:
a)用戶與云下載系統(tǒng)交互模型;
b)用戶與云下載系統(tǒng)的合作機制;
c)云下載系統(tǒng)存儲容量模型;
d)云下載系統(tǒng)存儲資源分配與管理。
上述4點中a),重點在于研究下載客戶端提交下載請求后,不需要立即從下載服務(wù)器取回文件的情況;
上述4點中c)d)研究的是離線下載存儲空間利用率的問題,揭示了云緩存量和用戶請求數(shù)與緩存文件數(shù)和用戶刪除行為與文件有效期的關(guān)系,并建立了存儲容量模型最終給出基于該模型的存儲資源分配與管理方法。
22.期刊論文-電子世界2012年刊載《利用P2P下載工具實現(xiàn)離線下載服務(wù)》一文中,包括以下幾個模塊:
a)用戶離線下載Portal頁面;
b)下載任務(wù)管理模塊;
c)下載引擎模塊;
d)文件管理模塊。
23.期刊論文-計算機技術(shù)與發(fā)展2014年刊載《基于P2SP的網(wǎng)絡(luò)下載技術(shù)分析》一文中,離線下載方面采用的方法是要求離線服務(wù)器將用戶提交的下載連接的文件下載完成后,用戶才能取回本地。但是這樣的方法毫無實時效果,對用戶而言需要長時間等待方能開始下載,降低了用戶體驗。
24.期刊論文-電腦知識與技術(shù)2013年刊載《基于云存儲的離線下載系統(tǒng)》一文中,包含一下3個方面:
a)云存儲數(shù)據(jù)緩存;
b)雙機熱備;
c)離線下載系統(tǒng)設(shè)計。
上述a),提出通過文件存儲價值函數(shù)的概念,為公共存儲提供更新策略,其價值函數(shù)主要考慮了四個方面,分別是文件大小、總下載時間、上一次命中時間和命中次數(shù)。從另一個角度來看,這也是在最大化離線存儲空間的利用率,但是,對于總下載時間肯定大多數(shù)情況下是不準確的,畢竟服務(wù)器時刻都在使用網(wǎng)絡(luò)。
25.期刊論文-小型微型計算機系統(tǒng)2013年刊載《封閉式P2P網(wǎng)絡(luò)中的離線數(shù)據(jù)存儲》一文中涉及到的離線數(shù)據(jù)存儲是針對用戶而言的,目的是讓用戶登錄后知道自己擁有的離線數(shù)據(jù)是哪些。
26.學(xué)位論文-碩士2010年刊載《迅雷離線下載分布式文件系統(tǒng)的設(shè)計與實現(xiàn)》一文中,包含以下幾個方面:
a)分布式文件系統(tǒng)需求分析;
b)分布式文件系統(tǒng)的設(shè)計;
c)分布式文件系統(tǒng)的實現(xiàn);
d)分布式文件系統(tǒng)的測試及評價。
27.學(xué)位論文-碩士刊載《離線下載系統(tǒng)設(shè)計與資源存儲策略研究》一文中包含2個方面:
a)AmazingStore離線下載系統(tǒng)
b)存儲容量規(guī)劃策略和多種淘汰策略
上述a),是要等待下載服務(wù)器將整個資源文件下載完成后,用戶才能從下載服務(wù)器取回資源文件;
上述b),單從用戶的角度出發(fā)考慮命中率,對離線存儲空間整體的利用率而言是十分不利的。
28.學(xué)位論文-碩士刊載《P2P離線下載系統(tǒng)中數(shù)據(jù)存儲、內(nèi)容分發(fā)和協(xié)作機制研究》一文中,包含以下幾個方面:
a)P2P離線下載架構(gòu)
b)P2P用戶共享文件
29.學(xué)位論文-博士刊載《P2P環(huán)境下內(nèi)容預(yù)約的相關(guān)機制及核心技術(shù)研究》一文中,離線下載方面?zhèn)戎赜诶溟T資源,下載客戶端必須等待下載服務(wù)器下載完整個資源文件后,下載客戶端才開始下載。但是這將會大大降低用戶的離線下載體驗。
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 Cache cloud);
b)通過云加速和對等網(wǎng)絡(luò)協(xié)助在不影響離線下載服務(wù)質(zhì)量的情況下節(jié)省云緩存帶寬(saving the Cache cloud bandwidth without affecting service quality by maximizing the cooperation between cloudacceleration and peer-assistance)。
31.Wireless,Mobile&Multimedia Networks(ICWMMN 2011),4th IET International Conference on刊載《User data mining in a large-scale peer-assisted offline download system》一文中,是對國內(nèi)QQ旋風(fēng)下載軟件的大量真實用戶使用數(shù)據(jù)的分析,來對未來離線下載系統(tǒng)的改進提供理論基礎(chǔ)。
32.Proceedings of the 2015 ACM Conference on Internet Measurement Conference刊載《Offline Downloading in China:A Comparative Study》一文中,對國內(nèi)的2種流行離線系統(tǒng)模型進行測試,并根據(jù)測試結(jié)果提出了有利于解決離線下載速度瓶頸的新模型。
33.Parallel Processing(ICPP),2011International Conference on刊載《On the QoS of Offline Download in Retrieving Peer-Side File Resource》一文中,根據(jù)QQ旋風(fēng)離線下載數(shù)據(jù)測試結(jié)果提出了一個為離線下載服務(wù)質(zhì)量預(yù)測的方法,同時實現(xiàn)了離線下載的原型模型。
上述的這些離線下載方案普遍存在戶下載資源文件的時間較長的問題,這大大影響用戶離線下載的體驗。因而,現(xiàn)有技術(shù)存在有待改進和發(fā)展的空間。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有離線下載技術(shù)所存在的問題,需要一種下載時間更短的離線下載技術(shù)。
由此,本發(fā)明所要解決的技術(shù)問題是提供一種網(wǎng)絡(luò)資源文件的實時離線下載方法及系統(tǒng),實現(xiàn)實時的離線下載,有效縮短資源文件下載時間。
為了解決上述技術(shù)問題,本發(fā)明提供的網(wǎng)絡(luò)資源文件的實時離線下載方法,以分片碎片大小為單位下載網(wǎng)絡(luò)資源文件的分片碎片到離線空間,且在下載完成一個或以上分片碎片后,針對下載請求返回分片碎片。
優(yōu)選的,所述實時離線下載方法中,根據(jù)當前運行負載情況,確定從網(wǎng)絡(luò)下載資源文件時的文件下載分片數(shù)量。
優(yōu)選的,針對任意一資源文件,設(shè)置不同分片數(shù)量,對該資源文件進行下載,并記錄每種分片數(shù)量的下載時間,取下載時間開始趨于預(yù)定閾值時對應(yīng)的分片數(shù)量作為下載資源文件時的分片數(shù)量。
優(yōu)選的,所述實時離線下載方法中根據(jù)下載資源文件分片碎片的速度和返回分片碎片的速度動態(tài)的調(diào)整下載網(wǎng)絡(luò)資源文件的分片碎片大小。
優(yōu)選的,在下載過程中,實時記錄下載網(wǎng)絡(luò)資源文件的分片碎片到離線空間時的下載每個分片碎片時的速度和針對下載請求返回每個分片碎片時的速度,并根據(jù)這兩速度的平均值動態(tài)確定下載網(wǎng)絡(luò)資源文件的分片碎片大小。
優(yōu)選的,所述實時離線下載方法中將資源文件的分片碎片以唯一標識名格式存儲在離線存儲空間,并根據(jù)碎片唯一標識名返回分片碎片內(nèi)容和分片碎片信息。
優(yōu)選的,所述實時離線下載方法中在離線存儲空間容量不足時,清除最近最久,且被下載次數(shù)最少的資源文件。
優(yōu)選的,所述實時離線下載方法中對每個下載請求設(shè)置一定數(shù)量的標記位,每個標記位用于記錄在一定數(shù)量的下載請求中,該下載請求的下載量;
在每累積到一定數(shù)量的下載請求后,便將所有下載請求的標記位進行算術(shù)右移;
當離線存儲空間不足時,找出所有下載請求的標記值最小者,并刪除該下載請求對應(yīng)的所有信息及離線存儲空間的文件的所有分片碎片。
優(yōu)選的,所述實時離線下載方法的流程如下:
獲取下載請求,并查找下載請求是否已經(jīng)存在;
如果不存在,則根據(jù)預(yù)先確定的適合的文件下載分片數(shù)量對下載請求針對的資源文件進行分片,并確定分片碎片大??;啟動相應(yīng)分片數(shù)量的線程數(shù),以確定的分片碎片大小為單位下載每個分片碎片到離線存儲空間,并保存分片碎片信息到相應(yīng)的數(shù)據(jù)庫;
如果存在或者下載完成了至少1個分片碎片,在獲取到獲取分片碎片請求后,返回分片碎片。
優(yōu)選,在確定一個周期或當離線存儲空間不足時進行離線存儲空間文件清除。
為了解決上述技術(shù)問題,本發(fā)明提供的網(wǎng)絡(luò)資源文件的實時離線下載裝置包括:
下載客戶端,所述下載客戶端向下載服務(wù)器提交下載請求;
下載服務(wù)器,所述下載服務(wù)器響應(yīng)下載客戶端提交的下載請求,以分片碎片大小為單位下載網(wǎng)絡(luò)資源文件的分片碎片到離線空間,且在下載完成一個或以上分片碎片后,向下載客戶端返回分片碎片。
優(yōu)選的,所述下載客戶端在提交的下載請求存在下載服務(wù)器中或下載服務(wù)器下載完成了至少1個分片碎片后,下載客戶端向下載服務(wù)器發(fā)起獲取分片碎片請求。
優(yōu)選的,所述下載客戶端按照分片序號和碎片序號從小到大的順序依次向下載服務(wù)器請求分片碎片,并記錄已接收字節(jié)數(shù)。
優(yōu)選的,所述下載服務(wù)器主要包括:
文件下載分片模塊,所述文件下載分片模塊確定下載服務(wù)器從網(wǎng)絡(luò)下載資源文件時的文件下載分片數(shù)量;
分片下載動態(tài)碎片模塊,所述分片下載動態(tài)碎片模塊動態(tài)的調(diào)整下載服務(wù)器下載網(wǎng)絡(luò)資源文件的分片碎片大??;
分片碎片共享調(diào)度模塊,所述分片碎片共享調(diào)度模塊根據(jù)碎片唯一標識名從離線存儲空間獲取并向下載客戶端返回分片碎片內(nèi)容和分片碎片信息;
離線存儲空間,所述離線存儲空間存儲下載服務(wù)器下載的資源文件的分片碎片。
優(yōu)選的,所述下載服務(wù)器還包括離線存儲空間文件淘汰模塊,所述離線存儲空間文件淘汰模塊在確定一個周期或當離線存儲空間不足時進行離線存儲空間文件清除。
本發(fā)明提供的網(wǎng)絡(luò)資源文件的實時離線下載方案,以分片碎片大小為單位從網(wǎng)絡(luò)資源服務(wù)器下載網(wǎng)絡(luò)資源文件的分片碎片到離線空間,且在下載完成一個或以上分片碎片后,即針對下載請求返回相應(yīng)的分片碎片(無需等待網(wǎng)絡(luò)資源文件下載完成),達到接近實時離線下載的效果,可有效縮短資源文件下載時間,提升用戶的離線下載體驗,并有利于離線存儲空間最大化利用率。
附圖說明
以下結(jié)合附圖和具體實施方式來進一步說明本發(fā)明。
圖1為本發(fā)明實例中網(wǎng)絡(luò)資源文件實時離線下載系統(tǒng)的布置示意圖;
圖2本發(fā)明實例中離線存儲空間文件淘汰方法流程圖;
圖3本發(fā)明實例中分片碎片共享調(diào)度方法流程圖;
圖4為本發(fā)明實例中文件下載分片方法流程圖;
圖5本發(fā)明實例中分片下載動態(tài)碎片方法流程圖。
具體實施方式
為了使本發(fā)明實現(xiàn)的技術(shù)手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結(jié)合具體圖示,進一步闡述本發(fā)明。
本發(fā)明提供離線下載方案,以分片碎片大小為單位從網(wǎng)絡(luò)資源服務(wù)器下載網(wǎng)絡(luò)資源文件的分片碎片到離線空間,且在下載完成一個或以上分片碎片后,即可針對下載請求返回相應(yīng)的分片碎片(無需等待網(wǎng)絡(luò)資源文件下載完成),由此實現(xiàn)實時的離線下載。
在此原理基礎(chǔ)上,本發(fā)明提供的離線下載方案由以下基本方法配合實現(xiàn),為了清楚說明本方案,以下引入離線下載服務(wù)端(如下述的下載服務(wù)器)作為實施主體進行說明(但并不限于此):
1.文件下載分片方法:根據(jù)離線下載服務(wù)端的當前運行負載情況,確定離線下載服務(wù)端下載資源文件的分片數(shù)量,以用于對相應(yīng)的資源文件進行分片。
具體的,本方法通過下載一個任意大小的網(wǎng)絡(luò)資源文件,設(shè)置不同分片數(shù)量,據(jù)此對該資源文件進行分片下載,并記錄每種分片數(shù)量的下載時間,取下載時間開始趨于預(yù)定閾值時對應(yīng)的分片數(shù)量作為本離線下載服務(wù)端下載資源文件時的分片數(shù)量。
2.分片下載動態(tài)碎片方法:碎片即是對分片再細分的更小分片,該方法用于動態(tài)地計算離線下載服務(wù)端下載資源文件時的分片的碎片大小。
具體的,本方法中預(yù)設(shè)分片碎片大小初始值為250KB,在下載過程中,實時記錄離線下載服務(wù)端下載資源文件的每個分片碎片時的速度和離線下載服務(wù)端向離線下載請求端(如下述的下載客戶端)返回每個分片碎片的速度(即離線下載請求端從離線下載服務(wù)端下載每個分片碎片的速度),取這2個方面的速度的平均值的8倍,并以該值作為資源文件下載時的碎片大小,該碎片大小根據(jù)上述2個方面的下載速度是動態(tài)變化的。
3.分片碎片共享調(diào)度方法:當多個離線下載請求端請求同一個資源文件時,該方法用于使得離線下載服務(wù)端向每個離線下載請求端返回正確的分片碎片及分片碎片信息。
具體的,本方法將下載的資源文件的分片碎片在離線下載服務(wù)端的離線存儲空間,且該分片碎片的唯一標識名格式為“文件名-分片序號-碎片序號”;同時在數(shù)據(jù)庫中記錄碎片相對于原文件字節(jié)開始處的偏移量及碎片大小。
在獲取到離線下載請求端提交的請求分片碎片時,根據(jù)碎片唯一標識名向離線下載請求端返回碎片偏移量、碎片大小和碎片內(nèi)容3部分信息。
同時,這里的離線下載請求端按照分片序號和碎片序號從小到大的順序依次向離線下載服務(wù)端請求分片碎片,并記錄已接收字節(jié)數(shù)。
4.離線存儲空間文件淘汰方法:當離線下載服務(wù)端的離線存儲空間容量不足時,通過該方法清除最近最久,且被下載次數(shù)最少的文件。
具體的,本方案基于LRU算法(頁面置換算法),對每個下載請求設(shè)置一定數(shù)量的標記位,每個標記位用于記錄在一定數(shù)量的下載請求中,該下載請求的下載量;在離線下載服務(wù)端每累積到一定數(shù)量的下載請求后,便將所有下載請求的標記位進行算術(shù)右移;當離線下載服務(wù)端的離線存儲空間不足時,找出所有下載請求的標記值最小者,并刪除該下載請求在離線下載服務(wù)端中的所有信息及離線存儲空間的文件的所有分片碎片。
基于上述方案,本發(fā)明進行實時離線下載的基本流程如下:
1)離線下載服務(wù)端獲取到下載請求,并查找下載請求是否已經(jīng)存在;
2)如果不存在,則根據(jù)事先通過執(zhí)行文件下載分片方法確定的適合本離線下載服務(wù)端的文件下載分片數(shù)量對下載請求針對的資源文件進行分片,并由分片下載動態(tài)碎片方法確定分片碎片大??;據(jù)此啟動相應(yīng)分片數(shù)量的線程數(shù),以確定的分片碎片大小為單位下載資源文件對應(yīng)的每個分片碎片到離線存儲空間,并保存分片碎片信息到數(shù)據(jù)庫;
3)如果存在,或者下載完成了至少1個分片碎片,在獲取到離線下載請求端提交的獲取分片碎片請求后,由分片碎片共享調(diào)度方法向離線下載請求端返回分片碎片。
在該下載流程中,在確定一個周期或當離線存儲空間不足時,將執(zhí)行離線存儲空間文件淘汰方法對離線存儲空間中的文件進行清除。該清除步驟可在離線下載服務(wù)端檢查到下載請求不存在時進行。
以下通過一具體應(yīng)用實例來說明本發(fā)明提供的網(wǎng)絡(luò)資源文件實時離線下載方案的實施過程。
參見圖1,其所示為本實例中網(wǎng)絡(luò)資源文件實時離線下載系統(tǒng)的布置示意圖。
由圖可知,整個實時離線下載系統(tǒng)主要下載客戶端100和下載服務(wù)器200兩部分。
其中,下載客戶端100,作為離線下載請求端,用于向下載服務(wù)器200提交相應(yīng)的資源文件下載請求,以及獲取分片碎片請求。
該下載客戶端100以相應(yīng)的軟件程序形式展現(xiàn),其運行在相應(yīng)的智能終端(如手機、PAD)、PC等設(shè)備中,為使用者提供實時離線下載功能。
再者,下載客戶端100在下載服務(wù)器200返回其提交的下載請求存在下載服務(wù)器中或下載服務(wù)器下載完成了至少1個分片碎片后,向下載服務(wù)器發(fā)起獲取分片碎片請求。
對于該分片碎片請求,下載客戶端按照分片序號和碎片序號從小到大的順序依次向下載服務(wù)器請求分片碎片,并記錄已接收字節(jié)數(shù)。
下載服務(wù)器200,作為離線下載服務(wù)端,用于響應(yīng)下載客戶端提交的下載請求,以分片碎片大小為單位從資源服務(wù)器300中下載網(wǎng)絡(luò)資源文件的分片碎片到離線空間,且在下載完成一個或以上分片碎片后,向下載客戶端返回分片碎片。
本實例中的下載服務(wù)器200中包括如下功能模塊:
主進程模塊、下載請求響應(yīng)模塊、數(shù)據(jù)庫查詢更新模塊、數(shù)據(jù)庫、離線存儲空間、文件下載分片模塊、分片下載動態(tài)碎片模塊、分片碎片共享調(diào)度模塊、離線存儲空間文件淘汰模塊。
其中,主進程模塊協(xié)調(diào)控制其它模塊來完成實時離線下載任務(wù)。
下載請求響應(yīng)模塊用于接收響應(yīng)下載客戶端提交的下載請求。
數(shù)據(jù)庫,主要用于存儲資源服務(wù)器300返回的分片碎片信息以及下載服務(wù)器中各任務(wù)的運行狀態(tài),這里的分片碎片信息包括碎片偏移量和碎片大小。
數(shù)據(jù)庫查詢更新模塊,用于查詢更新數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)。
離線存儲空間,用于存儲從資源服務(wù)器下載請求文件的碎片,且該分片碎片的唯一標識名格式為“文件名-分片序號-碎片序號”。
文件下載分片模塊,執(zhí)行文件下載分片方法,以確定下載服務(wù)器從網(wǎng)絡(luò)下載資源文件時的文件下載分片數(shù)量,并據(jù)此對下載請求針對的資源文件進行分片。
分片下載動態(tài)碎片模塊,執(zhí)行分片下載動態(tài)碎片方法,用于動態(tài)的調(diào)整下載服務(wù)器下載網(wǎng)絡(luò)資源文件的分片碎片大小。
分片碎片共享調(diào)度模塊,執(zhí)行分片碎片共享調(diào)度方法,用于根據(jù)碎片唯一標識名從離線存儲空間獲取并向下載客戶端返回分片碎片內(nèi)容和分片碎片信息。
離線存儲空間文件淘汰模塊,執(zhí)行線存儲空間文件淘汰方法,用于在確定一個周期或當離線存儲空間不足時進行離線存儲空間文件清除。
據(jù)此構(gòu)成的實時離線下載系統(tǒng),其運行的基本過程如下:
首先,由下載客戶端通過網(wǎng)絡(luò)向下載服務(wù)器提交下載請求,下載服務(wù)器通過下載請求響應(yīng)模塊接收下載請求,并查找下載請求是否已經(jīng)存在:
如果存在,則向下載客戶端返回下載任務(wù)已存在的消息;
如果不存在,下載服務(wù)器中用于響應(yīng)該請求的腳便會通過離線存儲空間文件淘汰模塊執(zhí)行“離線存儲空間文件淘汰方法”,對下載服務(wù)器的離線存儲空間進行清除;同時針對下載請求形成新的下載任務(wù)。
這里的離線存儲空間文件淘汰過程,具體包括以下幾個步驟(參見圖2):
a)設(shè)置J個標記位,每個標記位用于記錄在I個下載請求中該下載請求的數(shù)量(以下步驟假設(shè)J=7,I=100);
b)設(shè)置Dj=0,其中j是1~7的自然數(shù),7個標記位按D7D6D5D4D3D2D1的順序排列;
c)置I=0;
d)下載客戶端向下載服務(wù)器提出下載請求;
e)I=I+1;
f)判斷I是否大于100;
g)如果是,則將7個標記位右移1個標記位,最高標記位D7=0代替,最低標記位D1丟棄,跳轉(zhuǎn)到步驟i);
h)如果否,跳轉(zhuǎn)到步驟i);
i)判斷下載請求是否已經(jīng)存在;
j)如果否,在下載服務(wù)器數(shù)據(jù)庫中插入下載請求記錄,置狀態(tài)為0,置D7=1,7個標記位也作為這條記錄的一個字段插入數(shù)據(jù)庫,跳轉(zhuǎn)到步驟I);
k)如果是,置D7=D7+1,更新數(shù)據(jù)庫,通知下載客戶端任務(wù)已存在,跳轉(zhuǎn)到步驟o);
l)判斷離線存儲空間是否有足夠空間裝下下載請求的文件;
m)如果否,將所有下載請求的標記位,從D7-D1,按位比較,找出最小標記位序列,刪除該標記位序列所代表的下載請求及在離線存儲空間存儲的文件,跳轉(zhuǎn)到步驟l);
n)如果是,跳轉(zhuǎn)到步驟o);
o)等待下一個下載請求,并跳轉(zhuǎn)到步驟d)。
下載客戶端一旦得到任務(wù)已存在的消息,該消息中包含本下載客戶端的下載請求在下載服務(wù)器數(shù)據(jù)庫中的ID,因此下載客戶端將直接向下載服務(wù)器請求分片碎片。
此時下載服務(wù)器會根據(jù)該ID執(zhí)行“分片碎片共享調(diào)度方法”,向下載客戶端返回相應(yīng)的分片碎片內(nèi)容和分片碎片信息。
這里進行分片碎片共享調(diào)度的過程,具體包括以下幾個步驟(參見圖3):
a)下載客戶端向下載服務(wù)器提出下載分片碎片請求;
b)下載服務(wù)器預(yù)置標記,F(xiàn)Nn=0,其中下標n是0~分片數(shù)量-1的自然數(shù),記錄待下載分片的下一個待下載碎片序號;
c)下載客戶端預(yù)置標記,R=0,記錄已接收字節(jié)數(shù)(以下步驟假設(shè)分片數(shù)量為16);
d)下載服務(wù)器查詢數(shù)據(jù)庫獲取下載請求的文件在下載服務(wù)器離線存儲空間中的根文件名FN;
e)下載服務(wù)器使用根文件名和分片序號n、分片碎片序號m,組合成分片碎片文件名FN-n-m,初始值為FN-0-0,其中n是0~15的自然數(shù),m是大于或等于1的自然數(shù);
f)下載客戶端向服務(wù)器發(fā)送下載分片碎片請求;
g)檢測離線存儲空間中是否存在FN-n-m;
h)如果否,記錄當前分片碎片標記FNn=m,n=(n+1)/16,m=FNn/16,返回步驟g),進入下一次循環(huán);
i)如果是,返回分片碎片及分片碎片信息給下載客戶端,其中分片碎片信息包括碎片大小和碎片偏移量;
j)R=R+分片碎片大??;
k)判斷R是否大于或等于文件大小;
l)如果否,m=m+1,返回步驟f),進入下一次循環(huán);
m)如果是,結(jié)束下載。
下載服務(wù)器通過主進程來檢測未下載的新任務(wù)并創(chuàng)建子進程下載新任務(wù),查詢更新數(shù)據(jù)庫,調(diào)用文件下載分片模塊執(zhí)行“文件下載分片方法”。
主進程每次啟動,第一個任務(wù)就是調(diào)用文件下載分片模塊執(zhí)行“文件下載分片方法”以確定適合下載服務(wù)器使用的最佳的分片數(shù)量。
這里文件下載分片模塊執(zhí)行“文件下載分片方法”的具體步驟如下(參見圖4):
a)對網(wǎng)絡(luò)中的某一個文件分片,分成n片,其中n是1~50的自然數(shù),初始值為1;
b)啟動n個線程下載分片,并統(tǒng)計下載時間Tn;
c)處理下載時間ΔT1=Tn-Tn-1,ΔT2=Tn+1-Tn,ΔT3=(||ΔT2|-|ΔT1||)/|ΔT1|;
d)判斷ΔT3是否小于0.5;
e)如果是,則確定分片數(shù)量為n;
f)如果否,則n加1后,返回步驟b),進入下一次循環(huán)。
分片數(shù)量確定后,所述主進程將進入如下循環(huán):
a)查詢數(shù)據(jù)庫;
b)判斷是否有新的下載請求;
c)如果否,返回步驟a),進入下一次循環(huán);
d)如果是,取出該下載請求ID,并修改該下載請求狀態(tài)為1,創(chuàng)建并傳遞下載請求ID給子進程;
e)返回步驟a),進入下一次循環(huán)。
上述主進程創(chuàng)建的子進程負責(zé)以分片碎片大小為單位向資源服務(wù)器300下載分片碎片,并保存分片碎片信息到數(shù)據(jù)庫中。
這里的子進程的數(shù)量與確定適合下載服務(wù)器200使用的最佳的分片數(shù)量相對應(yīng),這些子進程向向資源服務(wù)器300并發(fā)請求分片碎片,實現(xiàn)多線程并發(fā)的以分片碎片大小為單位向資源服務(wù)器300下載分片碎片;而資源服務(wù)器300則向下載服務(wù)器200并發(fā)返回多個分片碎片。
下載服務(wù)器200將從下載服務(wù)器200下載的資源文件的分片碎片(即資源服務(wù)器300向下載服務(wù)器200返回的分片碎片)存在離線存儲空間中且分片碎片在離線存儲空間唯一標識名格式為“文件名-分片序號-碎片序號”,同時保存分片碎片信息到數(shù)據(jù)庫。
其中分片碎片大小的初始值默認是250KB。當一個分片碎片下載完成后,下載客戶端開始向下載服務(wù)器下載分片碎片。
在這個過程中,當下載服務(wù)器或下載客戶端完成一定量的分片碎片下載后,就會調(diào)用分片下載動態(tài)碎片模塊執(zhí)行“分片下載動態(tài)碎片方法”,以動態(tài)地改變分片碎片下載,隨著分片碎片的下載數(shù)量的增加,分片碎片的大小將越來越接近最佳大小。
這里分片下載動態(tài)碎片模塊執(zhí)行“分片下載動態(tài)碎片方法”的具體過程包括以下步驟(參見圖5):
a)下載服務(wù)器響應(yīng)下載客戶端的下載請求;
b)預(yù)置標記,ΔF1=ΔF2=250,其中ΔF1在數(shù)值上等于下載服務(wù)器從資源服務(wù)器下載時的速度,ΔF2在數(shù)值上等于下載客戶端從下載服務(wù)器下載時的速度;
c)啟動下載進程以碎片為單位下載文件,并統(tǒng)計k1個碎片的下載時間T1,其中k1是大于或等于1的自然數(shù);
d)處理:ΔF1=(m*k1)/T1;
e)碎片大小F=8*(ΔF1+ΔF2)/2,這種碎片稱為動態(tài)碎片;
f)下載客戶端從下載服務(wù)器下載碎片并統(tǒng)計下載k2個碎片的下載時間T2,其中k2是大于或等于1的自然數(shù);
g)處理:ΔF2=(m*k2)/T2;
h)動態(tài)碎片大小F=8*((ΔF1+ΔF2)/2);
i)返回步驟c),進入下一次循環(huán)。
此外,在這個下載過程中,還會執(zhí)行“分片碎片共享調(diào)度方法”,該方法的具體步驟如上,此處不再重復(fù)描述。
另外,在子進程完成所有碎片的下載后,更新數(shù)據(jù)庫中該下載請求的狀態(tài)為2。
由上實例可知,該方案能夠?qū)崿F(xiàn)網(wǎng)絡(luò)資源文件的實時離線下載。這里實現(xiàn)的實時,能夠讓用戶在使用離線下載時,感覺只等待了離線下載服務(wù)器不到5s的時間亦或甚至毫無等待,便開始下載資源文件,提升用戶的離線下載體驗且整個過程有利于離線存儲空間最大化利用率。
以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。本發(fā)明要求保護范圍由所附的權(quán)利要求書及其等效物界定。