專利名稱:Bt離線數(shù)據(jù)下載系統(tǒng)及方法
BT離線數(shù)據(jù)下載系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)下載領(lǐng)域,特別涉及一種BT離線數(shù)據(jù)下載系統(tǒng)及方法。
背景技術(shù):
離線下載是指下載工具的服務(wù)器代替用戶先行下載,如某個資源較少,下載速度很慢,用戶需下載很久,如果用戶采用離線下載技術(shù),可讓下載工具的服務(wù)器代替用戶下載,用戶就可關(guān)閉下載工具或下載設(shè)備,節(jié)約時間和電費(fèi),等到離線下載完成后,用戶再從下載工具的服務(wù)器上高速下載到客戶端上。傳統(tǒng)的離線下載的基本流程是:用戶提交離線下載請求,離線下載請求中包括文件下載地址,如文件下載的HTTP (Hyper Text Transfer Protocol,超文本傳輸協(xié)議)鏈接,或6111116鏈接,或81' ;!^ Torrent)下載種子,或Magnet協(xié)議;離線任務(wù)管理服務(wù)器接收用戶提交的離線下載請求,將離線下載請求發(fā)送到離線任務(wù)調(diào)度服務(wù)器;離線任務(wù)調(diào)度服務(wù)器根據(jù)離線下載請求調(diào)動離線下載服務(wù)器群進(jìn)行離線下載,下載完成后,將下載的資源存儲到云存儲服務(wù)器,將下載完成信息上報(bào)到離線任務(wù)管理服務(wù)器,由離線任務(wù)管理服務(wù)器通知用戶從云存儲服務(wù)器取回下載的資源。其中,BT是一種內(nèi)容分發(fā)協(xié)議,它采用高效的軟件分發(fā)系統(tǒng)和點(diǎn)對點(diǎn)技術(shù)共享大體積文件,并使每個用戶像網(wǎng)絡(luò)重新分配節(jié)點(diǎn)那樣提供上傳服務(wù),根據(jù)Bit Torrent協(xié)議,文件發(fā)布者會根據(jù)要發(fā)布的文件生成提供一個.torrent文件,即BT種子文件,根據(jù)種子文件可確定下載源。
然而,傳統(tǒng)的離線下載中,用戶添加BT種子,需要服務(wù)端把整個BT種子對應(yīng)的文件下載完畢,延長整個下載時間,且占用磁盤多余的空間。
發(fā)明內(nèi)容基于此,有必要提供一種能提高下載效率的BT離線數(shù)據(jù)下載系統(tǒng)。一種BT離線數(shù)據(jù)下載系統(tǒng),其特征在于,包括:離線下載任務(wù)管理服務(wù)器,用于接收至少一個下載任務(wù),所述下載任務(wù)是從下載客戶端獲取的用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù),將所述至少一個下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器;所述離線下載調(diào)度服務(wù)器用于對所述至少一個下載任務(wù)進(jìn)行排重合并處理,再將經(jīng)過排重合并處理后的所述至少部分文件的下載任務(wù)分發(fā)給離線下載服務(wù)器;所述離線下載服務(wù)器用于根據(jù)排重合并處理后的所述至少部分文件的下載任務(wù)下載數(shù)據(jù),將下載完成的數(shù)據(jù)存儲到存儲服務(wù)器中;所述下載客戶端還用于從所述存儲服務(wù)器下載所述下載客戶端對應(yīng)的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。優(yōu)選地,所述離線下載調(diào)度服務(wù)器還用于在所述選取的至少部分文件的大小小于預(yù)設(shè)的種子文件分片大小時,選取所述至少部分文件的相鄰的文件,再將所述至少部分文件及相鄰的文件組合,并分發(fā)給離線下載服務(wù)器。
優(yōu)選地,還包括離線任務(wù)數(shù)據(jù)庫,所述離線任務(wù)數(shù)據(jù)庫用于存儲所述至少部分文件的下載任務(wù)和下載完成的數(shù)據(jù),所述離線下載任務(wù)管理服務(wù)器還用于根據(jù)所述至少部分文件的下載任務(wù)從所述離線任務(wù)數(shù)據(jù)庫中查找,當(dāng)離線任務(wù)數(shù)據(jù)庫中存在與所述至少部分文件的下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù),則通知下載客戶端離線下載成功,所述下載客戶端還用于從所述存儲服務(wù)器下載完成的數(shù)據(jù)。優(yōu)選地,還包括種子接入服務(wù)器,所述種子接入服務(wù)器用于接收所述下載客戶端的種子信息的查詢,以及將所述下載客戶端上傳的種子信息存入所述種子數(shù)據(jù)庫中。優(yōu)選地,還包括統(tǒng)計(jì)服務(wù)器,所述統(tǒng)計(jì)服務(wù)器用于接收所述下載客戶端上傳的部分文件下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。此外,還有必要提供一種能提高下載效率的BT離線數(shù)據(jù)下載方法。一種BT離線數(shù)據(jù)下載方法,包括以下步驟:接收至少一個下載任務(wù),所述下載任務(wù)是用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù);對所述至少一個下載任務(wù)進(jìn)行排重合并處理;根據(jù)排重合并處理后的所述至少部分文件的下載任務(wù)下載數(shù)據(jù),存儲下載完成的數(shù)據(jù);下載存儲的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。
優(yōu)選地,在對所述至少一個下載任務(wù)進(jìn)行排重合并處理的步驟之后,還包括步驟:在所述選取的至少部分文件的大小小于預(yù)設(shè)的種子文件分片大小時,選取所述部分文件的相鄰的文件,再將所述至少部分文件及相鄰的文件組合。優(yōu)選地,接收至少一個下載任務(wù),所述下載任務(wù)是用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù)的步驟之后,還包括步驟:對所述至少部分文件的下載任務(wù)進(jìn)行查找,判斷是否存在與所述至少部分文件的下載任務(wù)對應(yīng)的已下載完成并存儲的數(shù)據(jù),若是,則通知離線下載成功,并下載所述存儲的數(shù)據(jù),若否,則進(jìn)入對所述至少一個下載任務(wù)進(jìn)行排重合并處理的步驟。優(yōu)選地,還包括步驟:提供種子信息的查詢,以及存儲用戶上傳的種子信息。優(yōu)選地,還包括步驟:接收上傳的至少部分文件的下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。上述BT離線數(shù)據(jù)下載系統(tǒng)及方法,采用根據(jù)用戶選取的離線下載種子任務(wù)中的至少部分文件的下載任務(wù),不需下載整個離線下載種子任務(wù),提高了離線下載的效率,且只需存儲所選取的至少部分文件的下載任務(wù)對應(yīng)的數(shù)據(jù),節(jié)省了磁盤空間,對重復(fù)下載任務(wù)進(jìn)行排重合并處理,減少了下載任務(wù)個數(shù),節(jié)省了帶寬,進(jìn)一步提高了下載效率,節(jié)省網(wǎng)絡(luò)資源。
圖1為一個實(shí)施例中BT離線數(shù)據(jù)下載系統(tǒng)的內(nèi)部結(jié)構(gòu)示意圖;圖2為另一個實(shí)施例中BT離線數(shù)據(jù)下載系統(tǒng)的內(nèi)部結(jié)構(gòu)示意圖;圖3為一個實(shí)施例中BT離線數(shù)據(jù)下載方法的流程圖;圖4為另一個實(shí)施例中BT離線數(shù)據(jù)下載方法的流程圖5為圖3中BT離線數(shù)據(jù)下載方法的具體流程圖;圖6為圖4中BT離線數(shù)據(jù)下載方法的具體流程圖。
具體實(shí)施方式下面結(jié)合具體的實(shí)施例及附圖對BT離線數(shù)據(jù)下載系統(tǒng)及方法的技術(shù)方案進(jìn)行詳細(xì)的描述,以使其更加清楚。如圖1所示,在一個實(shí)施例中,一種BT離線數(shù)據(jù)下載系統(tǒng),包括下載客戶端10、離線下載任務(wù)管理服務(wù)器20、離線下載調(diào)度服務(wù)器30、離線下載服務(wù)器40、和存儲服務(wù)器50。其中,下載客戶端10用于獲取用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù),并將至少部分文件的下載任務(wù)發(fā)送給離線下載任務(wù)管理服務(wù)器20。本實(shí)施例中,用戶可根據(jù)需要從離線下載種子任務(wù)中選取全部文件中的至少部分文件作為一個下載任務(wù)。如離線下載種子任務(wù)中有20個文件下載任務(wù),用戶A選取1、3、5文件的下載任務(wù),用戶B選取1、2、4文件的下載任務(wù)。該至少部分文件的下載任務(wù)中包含相應(yīng)的鏈接地址信息。離線下載任務(wù)管理服務(wù)器20用于接收至少一個下載任務(wù),該下載任務(wù)是從下載客戶端10獲取的用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù),并將至少一個下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器30。本實(shí)施例中 ,離線下載任務(wù)管理服務(wù)器20接收到至少一個下載任務(wù)后,為每個獨(dú)立的下載任務(wù)生成唯一的標(biāo)識編號,相同的下載任務(wù)的標(biāo)識編號相同。離線下載調(diào)度服務(wù)器30用于對該至少一個下載任務(wù)進(jìn)行排重合并處理,再將經(jīng)過排重合并處理后的至少部分文件的下載任務(wù)分發(fā)給離線下載服務(wù)器40。本實(shí)施例中,離線下載調(diào)度服務(wù)器30記錄BT種子文件中有哪些文件在下載,若有用戶選擇的BT種子文件與記錄的BT種子文件有重復(fù)的,將用戶加入記錄,重復(fù)的部分文件下載任務(wù)不傳遞給離線下載服務(wù)器40,減少重復(fù)下載任務(wù),節(jié)省帶寬,提高了下載效率。離線下載調(diào)度服務(wù)器30對于相同的離線文件下載任務(wù)過濾,同一個離線文件的下載任務(wù)只需向離線下載服務(wù)器40發(fā)送一次。離線下載調(diào)度服務(wù)器30用于將相同的離線下載種子任務(wù)中的不同至少部分文件的下載任務(wù)進(jìn)行合并處理,再將合并處理后的不同的至少部分文件的下載任務(wù)分發(fā)給離線下載服務(wù)器40。本實(shí)施例中,離線下載種子任務(wù)包括多個文件,每個文件對應(yīng)一個BitMap位圖,用戶選取多個文件中的至少一個文件,即部分文件,離線下載調(diào)度服務(wù)器30獲取部分文件的BitMap位圖,將不同的部分文件的BitMap位圖合并處理,如此,可減少下載任務(wù)個數(shù),節(jié)省帶寬資源,提高下載效率。進(jìn)一步的,在一個實(shí)施例中,離線下載調(diào)度服務(wù)器30還用于在該選取的至少部分文件的大小小于預(yù)設(shè)的種子文件分片大小時,選取該至少部分文件的相鄰的文件,再將該至少部分文件及相鄰的文件組合,并分發(fā)給離線下載服務(wù)器40。選擇相鄰的文件,并將至少部分文件及相鄰的文件組合,可保證用戶選擇的至少部分文件能夠完成下載進(jìn)行哈希值的校驗(yàn),保證下載的正確性。另外,離線下載調(diào)度服務(wù)器30還用于接收離線下載服務(wù)器40上報(bào)的節(jié)點(diǎn)的負(fù)載信息,并根據(jù)離線下載服務(wù)器40的負(fù)載信息,動態(tài)地將至少部分文件的下載任務(wù)調(diào)度到不同的離線服務(wù)器節(jié)點(diǎn)上執(zhí)行具體的下載任務(wù)。此外,離線下載調(diào)度服務(wù)器30還用于刪除長時間進(jìn)度沒有變化或者下載不動的任務(wù)。離線下載調(diào)度服務(wù)器30將下載失敗信息同步到離線下載任務(wù)管理服務(wù)器20,由離線下載任務(wù)管理服務(wù)器20將下載失敗信息通知下載客戶端10。離線下載服務(wù)器40用于根據(jù)排重合并處理后的該至少部分文件下載任務(wù)下載數(shù)據(jù),將下載完成的數(shù)據(jù)存儲到存儲服務(wù)器50中。進(jìn)一步的,在一個實(shí)施例中,離線下載服務(wù)器40還用于向離線下載調(diào)度服務(wù)器30匯報(bào)下載的速度信息,以及向離線下載調(diào)度服務(wù)器30注冊自己的地址,負(fù)載信息的上報(bào),以供離線下載調(diào)度服務(wù)器30按照負(fù)載信息進(jìn)行動態(tài)均衡的調(diào)度。下載客戶端10還用于從存儲服務(wù)器50下載與下載客戶端10對應(yīng)的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。下載客戶端10可根據(jù)在下載完成后離線下載任務(wù)管理服務(wù)器20的通知,從存儲服務(wù)器50下載完成的數(shù)據(jù),或下載客戶端10向離線下載任務(wù)管理服務(wù)器20查詢下載情況,若下載完成,則從存儲服務(wù)器50下載完成的數(shù)據(jù)。其中,離線下載任務(wù)管理服務(wù)器20可通過郵件、短信等方式通知用戶離線下載完成的結(jié)果。存儲服務(wù)器50中存儲了供下載客戶端10下載完成的數(shù)據(jù)。本實(shí)施例中,下載客戶端10還用于從離線下載任務(wù)管理服務(wù)器20查詢下載的進(jìn)度信息,以及對下載完成的數(shù)據(jù)進(jìn)行校驗(yàn),其中,下載數(shù)據(jù)是按照預(yù)設(shè)的種子文件分片的大小進(jìn)行下載的,對下載完成的預(yù)設(shè)的種子文件分片的大小的數(shù)據(jù)分片進(jìn)行哈希值校驗(yàn),將哈希值錯誤的數(shù)據(jù)分片重新下載。另外,離線下載任務(wù)管理服務(wù)器20提供下載客戶端10下載完成的數(shù)據(jù)的入口地址;下載客戶端10根據(jù)該入口地址從存儲服務(wù)器50下載完成的數(shù)據(jù)。進(jìn)一步的,在一個實(shí)施例中,如圖2所示,上述BT離線數(shù)據(jù)下載系統(tǒng),除了包括下載客戶端10、離線下載任務(wù)管理服務(wù)器20、離線下載調(diào)度服務(wù)器30、離線下載服務(wù)器40和存儲服務(wù)器50,還包括離線任務(wù)數(shù)據(jù)庫60、種子數(shù)據(jù)庫70、種子接入服務(wù)器80和統(tǒng)計(jì)服務(wù)器90。其中:離線任務(wù)數(shù)據(jù)庫60用于存儲至少部分文件的下載任務(wù)和下載完成的數(shù)據(jù),并將下載完成的數(shù)據(jù)同步到存儲服務(wù)器50中,同時記錄同步的結(jié)果。離線下載任務(wù)管理服務(wù)器20還用于根據(jù)至少部分文件的下載任務(wù)從離線任務(wù)數(shù)據(jù)庫30中查找是否存在與該至少部分文件的下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù)。當(dāng)離線任務(wù)數(shù)據(jù)庫60中存在與該至少部分文件的下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù),則通知下載客戶端10離線下載成功,下載客戶端10還用于從存儲服務(wù)器50下載完成的數(shù)據(jù)。當(dāng)離線任務(wù)數(shù)據(jù)庫60中不存在與該至少部分文件的下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù),則離線下載任務(wù)管理服務(wù)器20將至少部分文件的下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器30。種子數(shù)據(jù)庫70用于存儲種子信息。該種子信息中包含文件下載的鏈接地址等。離線下載服務(wù)器40用于根據(jù)排重合并處理后的該至少部分文件下載任務(wù)下載數(shù)據(jù)時,若至少部分文件的下載任務(wù)是BT文件下載任務(wù),則離線下載服務(wù)器40從種子數(shù)據(jù)庫70中讀取相應(yīng)的種子信息,該種子信息中包含文件下載的鏈接地址等;若部分文件下載任務(wù)是HTTP、eMule或Magnet協(xié)議等下載任務(wù),從離線任務(wù)數(shù)據(jù)庫60中獲取相應(yīng)的鏈接信息,該鏈接信息包含文 件下載的鏈接地址。對于不同用戶的同一個離線文件下載任務(wù),不同的用戶可共享同一個離線文件下載任務(wù)的進(jìn)度信息。
此外,離線下載服務(wù)器40還用于將離線下載完成的數(shù)據(jù)生成文件哈希值,并將哈希值寫入離線任務(wù)數(shù)據(jù)庫60中;離線下載服務(wù)器40還用于向離線下載調(diào)度服務(wù)器30匯報(bào)離線下載的進(jìn)度信息和速度信息。離線下載調(diào)度服務(wù)器30還用于將接收到的下載的進(jìn)度信息同步到離線下載任務(wù)管理服務(wù)器20。種子接入服務(wù)器80用于接收下載客戶端10的種子信息的查詢,以及將下載客戶端10上傳的種子信息存入種子數(shù)據(jù)庫70中。本實(shí)施例中,用戶發(fā)布的種子信息可通過客戶端10上傳到種子接入服務(wù)器80,然后種子數(shù)據(jù)庫70存儲該種子信息。種子接入服務(wù)器80還用于為下載客戶端10提供BT種子下載的接口。統(tǒng)計(jì)服務(wù)器90用于接收下載客戶端10上傳的至少部分文件的下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。至少部分文件的下載任務(wù)的相關(guān)信息包括下載時間、下載速度、下載結(jié)果、數(shù)據(jù)大小、下載的原始鏈接和不同URL (Uniform/Universal ResourceLocator,鏈接地址)獲取的下載速度和下載時間等。下載過程中的錯誤信息是指下載過程中校驗(yàn)哈希值不正確的信息。進(jìn)一步的實(shí)施例中,上述BT離線數(shù)據(jù)下載系統(tǒng)還包括后臺服務(wù)器、Tracker (跟蹤)服務(wù)器和資源索引服務(wù)器。其中,后臺服務(wù)器用于分析處理統(tǒng)計(jì)服務(wù)器90上報(bào)的下載過程中的錯誤信息。Tracker服務(wù)器用于定期接收下載客戶端10匯報(bào)的在線情況和本地?fù)碛械馁Y源信息,以及提供下載客戶端10查詢下載節(jié)點(diǎn)信息的服務(wù)。資源索引服務(wù)器用于提供下載客戶端10查詢的多資源鏈接地址集合的服務(wù),以便下載客戶端10從鏈接地址集合中下載數(shù)據(jù)。在一個實(shí)施例中,如圖3所示,一種BT離線數(shù)據(jù)下載方法,包括以下步驟:步驟S110,接收至少一個下載任務(wù),所述下載任務(wù)是用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù)。具體的,如圖5中步驟S210,通過離線下載任務(wù)管理服務(wù)器20接收至少一個下載任務(wù),該下載任務(wù)是從下載客戶端10獲取的用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù)。具體的,用戶可根據(jù)需要從離線下載種子任務(wù)中選取全部文件中的至少部分文件作為一個下載任務(wù)。如離線下載種子任務(wù)中有20個文件的下載任務(wù),用戶A選取1、3、5文件的下載任務(wù),用戶B選取1、2、4文件的下載任務(wù)。通過離線下載任務(wù)管理服務(wù)器20接收選取的至少部分文件的下載任務(wù)。其中,至少部分文件的下載任務(wù)中包含文件下載的鏈接地址。圖5中在步驟S210后還包括步驟S220,通過離線下載任務(wù)管理服務(wù)器20將該至少一個下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器40。離線下載任務(wù)管理服務(wù)器20接收到至少一個下載任務(wù)后,為每個獨(dú)立的下載任務(wù)生成唯一的標(biāo)識編號,相同的下載任務(wù)的標(biāo)識編號相同。此外,還將下載任務(wù)寫入離線任務(wù)數(shù)據(jù)庫60中。進(jìn)一步的實(shí)施例中,如圖4所示,在步驟SllO的步驟之后,還包括:步驟S112,對至少部分文件的下載任務(wù)進(jìn)行查找。
具體的,如圖6中步驟S212,通過離線下載任務(wù)管理服務(wù)器20根據(jù)該至少部分文件的下載任務(wù)從離線任務(wù)數(shù)據(jù)庫60中查找。離線下載任務(wù)管理服務(wù)器20從離線任務(wù)數(shù)據(jù)庫60中查找下載記錄。離線任務(wù)數(shù)據(jù)庫60中存儲至少部分的文件下載任務(wù)和下載完成的數(shù)據(jù)。步驟S114,判斷是否存在與該至少部分文件的下載任務(wù)對應(yīng)的已下載完成并存儲的數(shù)據(jù),若是,執(zhí)行步驟S116,若否,則執(zhí)行步驟S120。具體的,如圖6中步驟S214,判斷離線任務(wù)數(shù)據(jù)庫60中是否存在與該至少部分文件的下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù),若是,則執(zhí)行步驟S216,通知下載客戶端10離線下載成功,并通過下載客戶端10從存儲服務(wù)器50下載完成的數(shù)據(jù),若否,則執(zhí)行步驟S220,通過離線下載任務(wù)管理服務(wù)器20將該至少一個下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器40。具體的,查找到存在對應(yīng)的已下載完成的數(shù)據(jù),即離線任務(wù)數(shù)據(jù)庫60和存儲服務(wù)器50上存儲有用戶所需的至少部分文件的數(shù)據(jù),則通知下載客戶端10離線下載成功,由下載客戶端10直接從存儲服務(wù)器50上下載完成的數(shù)據(jù)。步驟S116,通知離線下載成功,并下載存儲的數(shù)據(jù)。具體的,通知下載客戶端10離線下載成功,并通過下載客戶端10從存儲服務(wù)器50下載完成的數(shù)據(jù)。步驟S120,對至少一個下載任務(wù)進(jìn)行排重合并處理。具體的 ,如圖5中步驟S230,通過離線下載調(diào)度服務(wù)器30對該至少部分文件的下載任務(wù)進(jìn)行排重合并處理,再將經(jīng)過排重合并處理后的該至少部分文件的下載任務(wù)分發(fā)給離線下載服務(wù)器40。 具體的,離線下載調(diào)度服務(wù)器30記錄BT種子文件中有哪些文件在下載,若有用戶選擇的BT種子文件與記錄的BT種子文件有重復(fù)的,將用戶加入記錄,重復(fù)的下載任務(wù)不傳遞給離線下載服務(wù)器40,減少重復(fù)下載任務(wù),節(jié)省帶寬,提高了下載效率。離線下載調(diào)度服務(wù)器30對于相同的離線文件下載任務(wù)過濾,同一個離線文件下載任務(wù)只需向離線下載服務(wù)器40發(fā)送一次。進(jìn)一步的,通過離線下載調(diào)度服務(wù)器30將相同的離線下載種子任務(wù)中的不同的至少部分文件的下載任務(wù)進(jìn)行合并處理,再將合并處理后的不同的至少部分文件下載任務(wù)分發(fā)給離線下載服務(wù)器40。本實(shí)施例中,離線下載種子任務(wù)包括多個文件,每個文件對應(yīng)一個BitMap位圖,用戶選取多個文件中的至少一個文件,即部分文件,離線下載調(diào)度服務(wù)器30獲取部分文件的BitMap位圖,將不同的至少部分文件的BitMap位圖合并處理,如此,可減少下載任務(wù)個數(shù),節(jié)省帶寬資源,提高下載效率。進(jìn)一步的實(shí)施例中,在通過離線下載調(diào)度服務(wù)器30對該部分文件下載任務(wù)進(jìn)行排重合并處理的步驟之后,還包括步驟:在該選取的部分文件的大小小于種子文件分片大小時,通過離線下載調(diào)度服務(wù)器30選取該至少部分文件的相鄰的文件,再將該至少部分文件及相鄰的文件組合,并分發(fā)給離線下載服務(wù)器40。選擇相鄰的文件,并將至少部分文件及相鄰的文件組合,可保證用戶選擇的至少部分文件能夠完成下載進(jìn)行哈希值的校驗(yàn),保證下載的正確性。步驟S130,根據(jù)排重合并處理后的至少部分文件的下載任務(wù)下載數(shù)據(jù),存儲下載完成的數(shù)據(jù)。具體的,如圖5中步驟S240,通過離線下載服務(wù)器40根據(jù)排重合并處理后的該至少部分文件的下載任務(wù)下載數(shù)據(jù),將下載完成的數(shù)據(jù)存儲到存儲服務(wù)器50中。具體的,若至少部分文件的下載任務(wù)是BT文件下載任務(wù),則通過離線下載服務(wù)器40從種子數(shù)據(jù)庫70中讀取相應(yīng)的種子信息,該種子信息中包含文件下載的鏈接地址等;若部分文件下載任務(wù)是HTTP、eMule或Magnet協(xié)議等下載任務(wù),通過離線下載服務(wù)器40從離線任務(wù)數(shù)據(jù)庫60中獲取相應(yīng)的鏈接信息,該鏈接信息包含文件下載的鏈接地址。對于不同用戶的同一個離線文件下載任務(wù),不同的用戶可共享同一個離線文件下載任務(wù)的進(jìn)度信肩、O此外,還包括步驟:通過離線下載服務(wù)器40將下載完成的數(shù)據(jù)保存到離線任務(wù)數(shù)據(jù)庫60中,并同步到存儲服務(wù)器50中,記錄同步的結(jié)果。進(jìn)一步的實(shí)施例中,在離線下載服務(wù)器40向離線下載調(diào)度服務(wù)器30匯報(bào)下載的進(jìn)度信息時,還包括步驟:離線下載服務(wù)器40向離線下載調(diào)度服務(wù)器30匯報(bào)下載的速度信息和進(jìn)度信息;以及將離線下載完成的數(shù)據(jù)生成文件哈希值,并將哈希值寫入離線任務(wù)數(shù)據(jù)庫60中。在步驟S130之后,還包括步驟:通過離線下載調(diào)度服務(wù)器30將接收到的下載的進(jìn)度信息同步到離線下載任務(wù)管理服務(wù)器20。步驟S140,下載存儲的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)
據(jù)。 具體的,如圖5中步驟S250,通過下載客戶端10從存儲服務(wù)器50下載與下載客戶端10對應(yīng)的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。具體的,可通過下載客戶端10根據(jù)在下載完成后離線下載任務(wù)管理服務(wù)器20的通知,從存儲服務(wù)器50下載完成的數(shù)據(jù),或通過下載客戶端10向離線下載任務(wù)管理服務(wù)器20查詢下載情況,若下載完成,則從存儲服務(wù)器50下載完成的數(shù)據(jù)。其中,離線下載任務(wù)管理服務(wù)器20可通過郵件、短信等方式通知用戶離線下載完成的結(jié)果。本實(shí)施例中,上述BT離線數(shù)據(jù)下載方法還包括步驟:通過下載客戶端10從離線下載任務(wù)管理服務(wù)器20查詢下載的進(jìn)度信息;以及對下載完成的數(shù)據(jù)進(jìn)行校驗(yàn)。其中,下載數(shù)據(jù)是按照預(yù)設(shè)的種子文件分片的大小進(jìn)行下載的,對下載完成的預(yù)設(shè)的種子文件分片的大小的數(shù)據(jù)分片進(jìn)行哈希值校驗(yàn),將哈希值錯誤的數(shù)據(jù)分片重新下載。另外,通過離線下載任務(wù)管理服務(wù)器20提供下載客戶端10下載完成的數(shù)據(jù)的入口地址;通過下載客戶端10根據(jù)該入口地址從存儲服務(wù)器50下載完成的數(shù)據(jù)。此外,上述BT離線數(shù)據(jù)下載方法,還包括步驟:通過離線下載調(diào)度服務(wù)器30刪除長時間進(jìn)度沒有變化或者下載不動的任務(wù),并將下載失敗信息同步到離線下載任務(wù)管理服務(wù)器20 ;通過離線下載任務(wù)管理服務(wù)器20將下載失敗信息通知下載客戶端10。進(jìn)一步的實(shí)施例中,上述BT離線數(shù)據(jù)下載方法,還包括步驟:提供種子信息的查詢,以及存儲用戶上傳的種子信息。本實(shí)施例中,提供種子接入服務(wù)器80,通過種子接入服務(wù)器80接收下載客戶端10的種子信息的查詢,以及將下載客戶端10上傳的種子信息存入種子數(shù)據(jù)庫70中。具體的,用戶發(fā)布的種子信息可通過客戶端10上傳到種子接入服務(wù)器80,然后種子數(shù)據(jù)庫70存儲該種子信息。通過種子接入服務(wù)器80為下載客戶端10提供BT種子下載的接口。進(jìn)一步的實(shí)施例中,上述BT離線數(shù)據(jù)下載方法,還包括步驟:接收用戶上傳的至少部分文件的下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。具體的,提供統(tǒng)計(jì)服務(wù)器90,通過統(tǒng)計(jì)服務(wù)器90接收下載客戶端10上傳的至少部分文件的下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。至少部分文件的下載任務(wù)的相關(guān)信息包括下載時間、下載速度、下載結(jié)果、數(shù)據(jù)大小、下載的原始鏈接和不同URL (Uniform/Universal Resource Locator,鏈接地址)獲取的下載速度和下載時間等。下載過程中的錯誤信息是指下載過程中校驗(yàn)哈希值不正確的信息。進(jìn)一步的實(shí)施例中,上述BT離線數(shù)據(jù)下載方法,還包括步驟:提供后臺服務(wù)器、Tracker (跟蹤)服務(wù)器和資源索引服務(wù)器中一種或兩種以上。其中,通過后臺服務(wù)器分析處理統(tǒng)計(jì)服務(wù)器90上報(bào)的下載過程中的錯誤信息。通過Tracker服務(wù)器定期接收下載客戶端1 0匯報(bào)的在線情況和本地?fù)碛械馁Y源信息,以及提供下載客戶端10查詢下載節(jié)點(diǎn)信息的服務(wù)。通過資源索引服務(wù)器提供下載客戶端10查詢的多資源鏈接地址集合的服務(wù),以便下載客戶端10從鏈接地址集合中下載數(shù)據(jù)。上述BT離線數(shù)據(jù)下載系統(tǒng)及方法,采用根據(jù)用戶選取的離線下載種子任務(wù)中的至少部分文件的下載任務(wù),不需下載整個離線下載種子任務(wù),提高了離線下載的效率,且只需存儲所選取的至少部分文件的下載任務(wù)對應(yīng)的數(shù)據(jù),節(jié)省了磁盤空間,對重復(fù)下載任務(wù)進(jìn)行排重合并處理,減少了下載任務(wù)個數(shù),節(jié)省了帶寬,進(jìn)一步提高了下載效率,節(jié)省網(wǎng)絡(luò)資源。另外,采用下載代理服務(wù)器將相同的離線下載種子任務(wù)中的不同的至少部分文件的下載任務(wù)進(jìn)行合并處理,減少了下載任務(wù)的個數(shù),節(jié)省下載帶寬,提高了下載效率;在所述選取的至少部分文件的大小小于預(yù)設(shè)的種子文件分片大小時,選取所述至少部分文件的相鄰的文件,再將所述至少部分文件及相鄰的文件組合,并分發(fā)給離線下載服務(wù)器,可保證對部分文件進(jìn)行哈希值校驗(yàn),提高下載的正確性;但離線任務(wù)數(shù)據(jù)庫中存在與該部分文件下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù)時,直接從云存儲服務(wù)器下載該完成的數(shù)據(jù),節(jié)省網(wǎng)絡(luò)資源;提供種子接入服務(wù)器,方便用戶上傳種子信息及查詢種子信息;提供統(tǒng)計(jì)服務(wù)器記錄部分文件下載任務(wù)的相關(guān)信息及錯誤信息,方便進(jìn)行分析處理。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種BT離線數(shù)據(jù)下載系統(tǒng),其特征在于,包括: 離線下載任務(wù)管理服務(wù)器,用于接收至少一個下載任務(wù),所述下載任務(wù)是從下載客戶端獲取的用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù),將所述至少一個下載任務(wù)發(fā)送給離線下載調(diào)度服務(wù)器; 所述離線下載調(diào)度服務(wù)器用于對所述至少一個下載任務(wù)進(jìn)行排重合并處理,再將經(jīng)過排重合并處理后的至少部分文件的下載任務(wù)分發(fā)給離線下載服務(wù)器; 所述離線下載服務(wù)器用于根據(jù)排重合并處理后的所述至少部分文件的下載任務(wù)下載數(shù)據(jù),將下載完成的數(shù)據(jù)存儲到存儲服務(wù)器中; 所述下載客戶端還用于從所述存儲服務(wù)器下載所述下載客戶端對應(yīng)的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的BT離線數(shù)據(jù)下載系統(tǒng),其特征在于,所述離線下載調(diào)度服務(wù)器還用于在所述選取的至少部分文件的大小小于預(yù)設(shè)的種子文件分片大小時,選取所述至少部分文件的相鄰的文件,再將所述至少部分文件及相鄰的文件組合,并分發(fā)給離線下載服務(wù)器。
3.根據(jù)權(quán)利要求1所述的BT離線數(shù)據(jù)下載系統(tǒng),其特征在于,還包括離線任務(wù)數(shù)據(jù)庫,所述離線任務(wù)數(shù)據(jù)庫用于存儲所述至少部分文件的下載任務(wù)和下載完成的數(shù)據(jù),所述離線下載任務(wù)管理服務(wù)器還用于根據(jù)所述至少部分文件的下載任務(wù)從所述離線任務(wù)數(shù)據(jù)庫中查找,當(dāng)離線任務(wù)數(shù) 據(jù)庫中存在與所述至少部分文件的下載任務(wù)對應(yīng)的已下載完成的數(shù)據(jù),則通知下載客戶端離線下載成功,所述下載客戶端還用于從所述存儲服務(wù)器下載完成的數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的BT離線數(shù)據(jù)下載系統(tǒng),其特征在于,還包括種子接入服務(wù)器,所述種子接入服務(wù)器用于接收所述下載客戶端的種子信息的查詢,以及將所述下載客戶端上傳的種子信息存入所述種子數(shù)據(jù)庫中。
5.根據(jù)權(quán)利要求1所述的BT離線數(shù)據(jù)下載系統(tǒng),其特征在于,還包括統(tǒng)計(jì)服務(wù)器,所述統(tǒng)計(jì)服務(wù)器用于接收所述下載客戶端上傳的至少部分文件的下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。
6.一種BT離線數(shù)據(jù)下載方法,包括以下步驟: 接收至少一個下載任務(wù),所述下載任務(wù)是用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù); 對所述至少一個下載任務(wù)進(jìn)行排重合并處理; 根據(jù)排重合并處理后的所述至少部分文件的下載任務(wù)下載數(shù)據(jù),存儲下載完成的數(shù)據(jù); 下載存儲的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的BT離線數(shù)據(jù)下載方法,其特征在于,在對所述至少一個下載任務(wù)進(jìn)行排重合并處理的步驟之后,還包括步驟:在所述選取的至少部分文件的大小小于預(yù)設(shè)的種子文件分片大小時,選取所述至少部分文件的相鄰的文件,再將所述至少部分文件及相鄰的文件組合。
8.根據(jù)權(quán)利要求6所述的BT離線數(shù)據(jù)下載方法,其特征在于,在所述接收至少一個下載任務(wù),所述下載任務(wù)是用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù)的步驟之后,還包括步驟:對所述至少部分文件的下載任務(wù)進(jìn)行查找,判斷是否存在與所述至少部分文件的下載任務(wù)對應(yīng)的已下載完成并存儲的數(shù)據(jù),若是,則通知離線下載成功,并下載所述存儲的數(shù)據(jù),若否,則進(jìn)入對所述至少一個下載任務(wù)進(jìn)行排重合并處理的步驟。
9.根據(jù)權(quán)利要求6所述的BT離線數(shù)據(jù)下載方法,其特征在于,還包括步驟:提供種子信息的查詢,以及存儲用戶上傳的種子信息。
10.根據(jù)權(quán)利要求6所述的BT離線數(shù)據(jù)下載方法,其特征在于,還包括步驟:接收用戶上傳的至少部分文件 的下載任務(wù)的相關(guān)信息以及下載過程中的錯誤信息。
全文摘要
本發(fā)明涉及一種BT離線數(shù)據(jù)下載系統(tǒng)及方法。該系統(tǒng)包括離線下載任務(wù)管理服務(wù)器,用于接收至少一個下載任務(wù),所述下載任務(wù)是從下載客戶端獲取的用戶從離線下載種子任務(wù)中選取的至少部分文件的下載任務(wù);離線下載調(diào)度服務(wù)器,用于對所述至少一個下載任務(wù)進(jìn)行排重合并處理;離線下載服務(wù)器,用于根據(jù)排重合并處理后的所述至少部分文件的下載任務(wù)下載數(shù)據(jù),將下載完成的數(shù)據(jù)存儲到存儲服務(wù)器中;下載客戶端還用于從所述存儲服務(wù)器下載所述下載客戶端對應(yīng)的用戶選取的下載任務(wù)對應(yīng)的至少部分文件的下載完成的數(shù)據(jù)。上述BT離線數(shù)據(jù)下載系統(tǒng)及方法,提高了離線下載的效率,節(jié)省了帶寬,進(jìn)一步提高了下載效率。
文檔編號H04L29/08GK103248645SQ201210027569
公開日2013年8月14日 申請日期2012年2月8日 優(yōu)先權(quán)日2012年2月8日
發(fā)明者劉剛, 朱臣元 申請人:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司