1.一種用于移動終端應(yīng)用的內(nèi)容分發(fā)的方法,其特征在于,包括以下步驟:
A.移動終端應(yīng)用集成嵌入軟件開發(fā)庫,并將一下載請求導入所述軟件開發(fā)庫,并等待接收下載數(shù)據(jù);
B.所述軟件開發(fā)庫接收所述移動終端應(yīng)用導入的所述下載請求,并根據(jù)所述請求向緩存系統(tǒng)或源站下載首包,并根據(jù)該首包來確定是否可以啟動p2p下載,其中該首包為欲下載的數(shù)據(jù)的首個數(shù)據(jù)分片;
C.如果確定可以啟動p2p下載,所述軟件開發(fā)庫將剩余的未下載的數(shù)據(jù)切片成多個虛擬文件;
D.所述軟件開發(fā)庫對所述多個虛擬文件逐一發(fā)起下載并緩存下載結(jié)果,直到所有的虛擬文件下載完成,其中,在下載所述虛擬文件過程中,所述軟件開發(fā)庫將已下載的虛擬文件實時轉(zhuǎn)發(fā)給所述移動終端應(yīng)用;
E.在下載所述虛擬文件過程中,所述軟件開發(fā)庫根據(jù)分享策略將已下載并且已緩存的資源進行分享。
2.如權(quán)利要求1所述的方法,其特征在于,步驟A中的所述移動終端應(yīng)用將所述下載請求導入所述軟件開發(fā)庫的方法包括通過主動代理或者被動劫持的方式的其中一種。
3.如權(quán)利要求1所述的方法,其特征在于,步驟D中的虛擬文件下載包括:
使用http協(xié)議向源站或者緩存系統(tǒng)下載和/或使用p2p的方式下載;
其中所述軟件開發(fā)庫計算使用http協(xié)議的下載速率和使用p2p方式的下載速率,并根據(jù)所述移動終端應(yīng)用對數(shù)據(jù)的需求情況來決定當前虛擬文件采用哪一種下載方式;如果使用p2p的方式無法下載到所需要的虛擬文件或者下載速率無法滿足所述移動終端應(yīng)用的正常需要,并且p2p下載速率低于http下載速率,則需要使用http方式直接向所述緩存系統(tǒng)或者所述源站下載,除此之外均可使用p2p的方式下載數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,步驟E中的分享策略包括:
根據(jù)所述移動終端的網(wǎng)絡(luò)制式、所述移動終端的剩余電量、所述移動終端的內(nèi)存使用情況、所述移動終端的cpu使用情況判斷所下載的數(shù)據(jù)是否可以作為種子進行分享;若可以進行分享,則對該分享進行注冊,并等待接收其他移動終端應(yīng)用的下載請求。
5.如權(quán)利要求1所述的方法,其特征在于,步驟B中確定是否可以啟動p2p包括:
根據(jù)該首包數(shù)據(jù)中描述的文件長度和傳輸編碼方式來確定是否啟動p2p下載,如果不符合,則向該緩存系統(tǒng)或者該源站發(fā)送http請求,以下載剩余數(shù)據(jù);如果符合,則執(zhí)行步驟C。
6.如權(quán)利要求3所述的方法,其特征在于,獲取所述移動終端應(yīng)用對數(shù)據(jù)的需求情況的方法包括:
所述軟件開發(fā)庫向所述移動終端應(yīng)用提供數(shù)據(jù)使用狀態(tài)通知接口,以此來獲取當前移動終端應(yīng)用對數(shù)據(jù)的消費情況。
7.一種用于移動終端應(yīng)用的內(nèi)容分發(fā)的系統(tǒng),其特征在于,包括:
多個移動終端應(yīng)用模塊,每個移動終端應(yīng)用模塊內(nèi)嵌軟件開發(fā)庫,所述軟件開發(fā)庫被配置成判斷數(shù)據(jù)下載請求是否滿足p2p下載的啟動條件、實現(xiàn)p2p的下載、提供響應(yīng)數(shù)據(jù)的交付,以及提供數(shù)據(jù)分享;
p2p控制器,與所述多個移動終端模塊相通信,所述p2p控制器被配置成管理所述軟件開發(fā)庫、管理和推薦有效的peer、檢索下載資源、輔助p2p的NAT穿越。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述軟件開發(fā)庫包括:
p2p調(diào)度層模塊和p2p協(xié)議層模塊,該p2p調(diào)度層模塊與該p2p協(xié)議層模塊互相通信;
所述p2p調(diào)度層模塊包括:
本地代理接口模塊,被配置成將來自所述移動終端應(yīng)用模塊的數(shù)據(jù)下載請求導入所述軟件開發(fā)庫,并通過所述本地代理接口將下載的數(shù)據(jù)交付至所述移動終端應(yīng)用模塊;
通知接口模塊,被配置成接收有關(guān)來自移動終端應(yīng)用模塊的狀態(tài)的通知;
下載控制器,被配置成判斷該數(shù)據(jù)下載請求是否滿足p2p下載的啟動條件,并且根據(jù)配置或者當前的條件決定下一個虛擬文件采用http下載方式還是p2p下載方式;
上傳控制器,被配置成確定當前的緩存數(shù)據(jù)是否可以分享以及分享的條件;
緩存控制器,被配置成管理本地緩存,該管理包括對緩存規(guī)模進行控制、對緩存數(shù)據(jù)的冷熱度進行排序及刪除,以及管理所述移動終端應(yīng)用模塊對緩存的重復利用。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述p2p協(xié)議層模塊包括:
p2p內(nèi)容檢索模塊,被配置成實現(xiàn)所述軟件開發(fā)庫與所述p2p控制器的交互管理,移動終端的進入和退出,下載數(shù)據(jù)的檢索以及處理p2p控制的peer推薦和更新。
p2p切片任務(wù)管理模塊,被配置成實現(xiàn)對已注冊的p2p文件進行任務(wù)管理,切片并發(fā)管理,以實現(xiàn)最優(yōu)的p2p下載;
p2p NAT穿越控制模塊,被配置成確保peer之間的鏈路能夠建立;
peer交互協(xié)議模塊,被配置成實現(xiàn)peer之間的通訊協(xié)議。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述p2p控制器包括:
peer管理模塊,被配置成記錄和管理peer的活動狀態(tài)。
peer推薦模塊,被配置成向數(shù)據(jù)下載請求發(fā)出的請求方推薦擁有指定資源的健康的合適的peer列表;
NAT穿越輔助模塊,被配置成協(xié)助peer端發(fā)現(xiàn)自身的NAT環(huán)境,并對peer間建立連接提供通訊輔助;
軟件開發(fā)庫管理模塊,被配置成對軟件開發(fā)庫進行配置和管理。
11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述下載控制器被配置成判斷該數(shù)據(jù)下載請求是否滿足p2p下載的啟動條件包括所述下載控制器根據(jù)首包數(shù)據(jù)中描述的文件長度和傳輸編碼方式來確定是否啟動p2p下載,如果不符合,則向該緩存系統(tǒng)或者該源站發(fā)送http請求,以下載剩余數(shù)據(jù);如果符合,則啟動p2p下載。
12.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述下載控制器根據(jù)配置或者當前的條件決定下一個虛擬文件采用http下載方式還是p2p下載方式包括所述下載控制器計算使用http協(xié)議的下載速率和使用p2p方式的下載速率,并根據(jù)所述移動終端應(yīng)用對數(shù)據(jù)的需求情況來決定當前虛擬文件采用哪一種下載方式;如果使用p2p的方式無法下載到所需要的虛擬文件或者下載速率無法滿足所述移動終端應(yīng)用的正常需要,并且p2p下載速率低于http下載速率,則需要使用http方式直接向所述緩存系統(tǒng)或者所述源站下載,除此之外均可使用p2p的方式下載數(shù)據(jù)。
13.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述上傳控制器根據(jù)所述移動終端的網(wǎng)絡(luò)制式、所述移動終端的剩余電量、所述移動終端的內(nèi)存使用情況、所述移動終端的cpu使用情況判斷所下載的數(shù)據(jù)是否可以作為種子進行分享;若可以進行分享,則對該分享進行注冊,并等待接收其他移動終端應(yīng)用的下載請求。