本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其是一種資源下載方法、裝置、系統(tǒng)以及資源服務(wù)器。
背景技術(shù):
一般地,當(dāng)需要提供數(shù)據(jù)量較大(例如,上百G數(shù)據(jù))、訪問頻繁的下載服務(wù)時,在傳統(tǒng)企業(yè)中可以通過CDN(內(nèi)容分發(fā)網(wǎng)絡(luò))、分區(qū)域服務(wù)等方式來構(gòu)建良好的用戶體驗。但在一些其他場景(例如開源社區(qū))中,是無法投入如此昂貴的服務(wù)器以及帶寬資源的。
一種解決辦法是采用資源服務(wù)器加資源服務(wù)器的鏡像服務(wù)器的方式。此時,讓用戶盡可能選擇連接狀況最好的鏡像服務(wù)器,以達到帶寬質(zhì)量最優(yōu)的效果,但另一方面,還要解決鏡像服務(wù)器和資源服務(wù)器的數(shù)據(jù)一致性問題。因此,需要一種優(yōu)化的數(shù)據(jù)下載方案,能夠折衷考慮數(shù)據(jù)一致性和帶寬質(zhì)量問題。
技術(shù)實現(xiàn)要素:
為此,本發(fā)明提供了一種資源下載方法、裝置、系統(tǒng)以及資源服務(wù)器,以力圖解決或者至少緩解上面存在的至少一個問題。
根據(jù)本發(fā)明的一個方面,提供了一種資源下載方法,該方法適于在客戶端中執(zhí)行,客戶端與資源服務(wù)器和資源服務(wù)器的鏡像服務(wù)器相連,該方法包括步驟:從資源服務(wù)器獲取服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器的服務(wù)器地址,索引文件包含資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化;當(dāng)要下載資源時,根據(jù)待下載資源的相對地址和服務(wù)器列表中的服務(wù)器地址生成多個待下載地址;根據(jù)多個待下載地址逐個構(gòu)造資源探測請求發(fā)送給對應(yīng)的鏡像服務(wù)器;根據(jù)多個鏡像服務(wù)器的響應(yīng)結(jié)果,分析得到響應(yīng)最優(yōu)的鏡像服務(wù)器,并從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址;以及根據(jù)下載地址發(fā)送下載請求,以便獲取待下載資源。
可選地,在根據(jù)本發(fā)明的資源下載方法中,還包括更新服務(wù)器列表和索引文件的步驟:每隔預(yù)定時間從資源服務(wù)器獲取服務(wù)器列表和資源的索引文件,以更新原有服務(wù)器列表和索引文件,其中資源服務(wù)器定期對所有鏡像服務(wù)器的同步進度進行檢測,并根據(jù)同步進度檢測結(jié)果更新服務(wù)器列表。
可選地,在根據(jù)本發(fā)明的資源下載方法中,資源的相對地址是根據(jù)資源的標識(ID)和版本號計算得到。
可選地,在根據(jù)本發(fā)明的資源下載方法中,資源的相對地址是資源內(nèi)容的hash值。
可選地,在根據(jù)本發(fā)明的資源下載方法中,資源服務(wù)器分級存儲索引文件,且一級資源索引指向二級資源索引,更新索引文件的步驟,還包括步驟:從資源服務(wù)器獲取一級資源索引;以及根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。
可選地,在根據(jù)本發(fā)明的資源下載方法中,更新索引文件的步驟,還包括步驟:根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
可選地,在根據(jù)本發(fā)明的資源下載方法中,分析得到響應(yīng)最優(yōu)的鏡像服務(wù)器,并從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址的步驟還包括:當(dāng)所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,將資源服務(wù)器作為響應(yīng)最優(yōu)服務(wù)器;以及根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址。
可選地,在根據(jù)本發(fā)明的資源下載方法中,資源服務(wù)器定期對所有鏡像服務(wù)器的同步進度進行檢測,并根據(jù)同步進度檢測結(jié)果更新服務(wù)器列表的步驟包括:資源服務(wù)器在每個資源目錄下建立一個測試資源,并生成測試文件,其中測試文件中的一條記錄標記一個測試資源的相對地址;資源服務(wù)器將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并,生成多個待下載地址;根據(jù)生成的多個待下載地址,發(fā)送多個下載請求到待檢測的鏡像服務(wù)器;資源服務(wù)器根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度;以及若待檢測的鏡像服務(wù)器的同步進度低于閾值,資源服務(wù)器就從服務(wù)器列表中刪除該鏡像服務(wù)器,以便客戶端定期獲取更新的服務(wù)器列表。
可選地,在根據(jù)本發(fā)明的資源下載方法中,資源服務(wù)器根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度的步驟包括:根據(jù)響應(yīng)結(jié)果統(tǒng)計待檢測的鏡像服務(wù)器中存在的測試資源數(shù)目;以及根據(jù)該存在的測試資源的數(shù)目和測試資源總數(shù)量計算該鏡像服務(wù)器的同步進度。
可選地,在根據(jù)本發(fā)明的資源下載方法中,測試資源為空文件。
可選地,在根據(jù)本發(fā)明的資源下載方法中,資源探測請求是HTTP HEAD請求,或,自定義的HTTP GET請求,其中自定義的HTTP GET請求在得到http header后斷開當(dāng)前連接。
根據(jù)本發(fā)明的另一方面,提供了一種資源下載裝置,該裝置布置在客戶端中,客戶端與資源服務(wù)器和資源服務(wù)器的鏡像服務(wù)器相連,裝置包括:接口單元,適于從資源服務(wù)器獲取服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器的服務(wù)器地址,索引文件包含資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化;存儲單元,適于存儲服務(wù)器列表和索引文件;第一處理單元,適于當(dāng)要下載資源時,根據(jù)待下載資源的相對地址和服務(wù)器列表中的服務(wù)器地址生成多個待下載地址、還適于根據(jù)多個待下載地址逐個構(gòu)造資源探測請求;接口單元還適于發(fā)送資源探測請求給對應(yīng)的鏡像服務(wù)器、以及接收鏡像服務(wù)器的響應(yīng)結(jié)果;第二處理單元,適于根據(jù)多個鏡像服務(wù)器的響應(yīng)結(jié)果,分析得到響應(yīng)最優(yōu)的鏡像服務(wù)器、且從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址;以及接口單元還適于根據(jù)下載地址發(fā)送下載請求,以便獲取待下載資源。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,接口單元還適于每隔預(yù)定時間從資源服務(wù)器獲取服務(wù)器列表和資源的索引文件,其中資源服務(wù)器定期對所有鏡像服務(wù)器的同步進度進行檢測,并根據(jù)同步進度檢測結(jié)果更新服務(wù)器列表;以及存儲單元適于每隔預(yù)定時間更新原有服務(wù)器列表和索引文件。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,資源的相對地址是根據(jù)資源的標識(ID)和版本號計算得到。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,資源的相對地址是資源內(nèi)容的hash值。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,資源服務(wù)器分級存儲索引文件,且一級資源索引指向二級資源索引,接口單元適于從資源服務(wù)器獲取一級資源索引;以及根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,接口單元適于根據(jù)資源的內(nèi)容屬性分塊獲取索引文件;存儲單元適于根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中,內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,第二處理單元還包括:判斷模塊,適于判斷所有鏡像服務(wù)器的響應(yīng)速度是否均低于預(yù)設(shè)的響應(yīng)速度閾值;第二處理單元還適于當(dāng)判斷得所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,將資源服務(wù)器作為響應(yīng)最優(yōu)服務(wù)器、且根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,資源服務(wù)器被配置為:適于在每個資源目錄下建立一個測試資源,并生成測試文件,其中測試文件中的一條記錄標記一個測試資源的相對地址、且將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并,生成多個待下載地址;還適于根據(jù)生成的多個待下載地址,發(fā)送多個下載請求到待檢測的鏡像服務(wù)器、并根據(jù)該待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度;以及還適于在待檢測鏡像服務(wù)器的同步進度低于閾值時,從服務(wù)器列表中刪除該鏡像服務(wù)器以便客戶端定期獲取更新的服務(wù)器列表。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,資源服務(wù)器還適于根據(jù)響應(yīng)結(jié)果統(tǒng)計待檢測的鏡像服務(wù)器中存在的測試資源數(shù)目,并且根據(jù)該存在的測試資源的數(shù)目和測試資源總數(shù)量計算該鏡像服務(wù)器的同步進度。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,測試資源為空文件。
可選地,在根據(jù)本發(fā)明的資源下載裝置中,資源探測請求是HTTP HEAD請求,或,自定義的HTTP GET請求,其中自定義的HTTP GET請求在得到http header后斷開當(dāng)前連接。
根據(jù)本發(fā)明的又一方面,提供了一種資源服務(wù)器,資源服務(wù)器與客戶端和鏡像服務(wù)器相連,資源服務(wù)器包括:列表管理單元,適于建立服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器的服務(wù)器地址,索引文件包含所有資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化;以及連接管理單元,適于響應(yīng)于客戶端的請求,定期發(fā)送服務(wù)器列表和索引文件給客戶端,以便客戶端更新服務(wù)器列表和索引文件、還適于響應(yīng)于鏡像服務(wù)器的同步請求,發(fā)送資源給鏡像服務(wù)器,其中所發(fā)送的資源包括索引文件。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,連接管理單元還適于接收來自客戶端的資源探測請求,并發(fā)送響應(yīng)消息給客戶端,以及接收來自客戶端的下載請求,并將該下載請求中指向的待下載資源發(fā)送給客戶端。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,列表管理單元還包括:地址編碼模塊,適于根據(jù)資源的標識(ID)和版本號得到資源的相對地址。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,列表管理單元還包括:地址編碼模塊,適于對資源內(nèi)容做hash計算得到資源的相對地址。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,列表管理單元還適于分級存儲索引文件,并根據(jù)一級資源索引能夠查找二級資源索引;以及連接管理單元還適于在響應(yīng)客戶端的請求后,發(fā)送一級資源索引給客戶端,以便于客戶端根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,列表管理單元還適于根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,還包括適于對所有鏡像服務(wù)器進行同步檢測的同步檢測單元,同步檢測單元包括:測試資源管理模塊,適于在每個資源目錄下建立一個測試資源,并生成測試文件,其中測試文件中的一條記錄標記一個測試資源的相對地址;測試地址生成模塊,適于將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并生成多個待下載地址;連接管理單元還適于發(fā)送下載請求給待檢測的鏡像服務(wù)器;計算模塊,適于根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度;以及列表管理單元,適于在待檢測鏡像服務(wù)器的同步進度低于閾值時,從服務(wù)器列表中刪除該鏡像服務(wù)器以便客戶端定期獲取更新的服務(wù)器列表??蛇x地,在根據(jù)本發(fā)明的資源服務(wù)器中,
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,計算模塊還適于根據(jù)響應(yīng)結(jié)果統(tǒng)計待檢測的鏡像服務(wù)器中存在的測試資源數(shù)目,并且根據(jù)該存在的測試資源的數(shù)目和測試資源總數(shù)量計算該鏡像服務(wù)器的同步進度。
可選地,在根據(jù)本發(fā)明的資源服務(wù)器中,測試資源為空文件。
根據(jù)本發(fā)明的另一方面,提供了一種資源下載系統(tǒng),該系統(tǒng)包括:客戶端,具有如上所述的資源下載裝置;如上所述的資源服務(wù)器;以及鏡像服務(wù)器。
根據(jù)本發(fā)明的資源下載方案,資源服務(wù)器根據(jù)資源目錄建立索引文件,在索引文件中,資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化,以保證資源服務(wù)器、鏡像服務(wù)器、客戶端上的數(shù)據(jù)的一致性,只要資源服務(wù)器上的資源有變化,通過定期同步/更新索引文件,鏡像服務(wù)器和客戶端也可以獲知最新資源目錄。同時,客戶端根據(jù)服務(wù)器列表和索引文件,通過資源探測請求動態(tài)選擇響應(yīng)最優(yōu)的鏡像服務(wù)器,保證資源下載時的帶寬最優(yōu)。另外,通過分級/分塊存儲索引文件的方式,可以有效緩解資源服務(wù)器的帶寬壓力,還提高了更新索引文件的效率。
進一步地,鏡像服務(wù)器定時或不定時地從資源服務(wù)器同步資源,資源服務(wù)器根據(jù)鏡像服務(wù)器的同步狀況建立/更新服務(wù)器列表;客戶端再定期從資源服務(wù)器拉取服務(wù)器列表以便更新。這樣就解決了鏡像服務(wù)器不受資源服務(wù)器管理的限制,資源服務(wù)器可以將同步狀況不好的鏡像服務(wù)器從服務(wù)器列表中剔除,客戶端就不用向該鏡像服務(wù)器發(fā)送資源探測請求,以節(jié)省資源、提高效率。
附圖說明
為了實現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明一個實施例的資源下載系統(tǒng)100的示意圖;
圖2示出了根據(jù)本發(fā)明一個實施例的資源下載方法200的流程圖;
圖3示出了根據(jù)本發(fā)明一個實施例的資源下載裝置300的示意圖;
圖4示出了根據(jù)本發(fā)明一個實施例的資源服務(wù)器120的示意圖;以及
圖5示出了根據(jù)本發(fā)明又一實施例的資源服務(wù)器120的示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個實施例的資源下載系統(tǒng)100的示意圖。參見圖1,該系統(tǒng)100包括客戶端110、資源服務(wù)器120以及資源服務(wù)器120的鏡像服務(wù)器130(具有多個),其中客戶端110、資源服務(wù)器120、鏡像服務(wù)器130通過網(wǎng)絡(luò)相互連接,本發(fā)明對連接方式并不作限制。客戶端110可以是計算機(PC)、智能電視等大屏幕計算設(shè)備,也可以是平板、手機等移動終端,或者是智能手表、智能眼鏡等可聯(lián)網(wǎng)的可穿戴設(shè)備等,在客戶端110上布置有資源下載裝置300,以向資源服務(wù)器120和鏡像服務(wù)器130下載資源。雖然圖1中僅示例性地示出了一個客戶端110,但是本領(lǐng)域技術(shù)人員可以意識到,資源下載系統(tǒng)中可以包括多個客戶端,本發(fā)明對系統(tǒng)100中的客戶端的數(shù)目并無限制。資源服務(wù)器120(或鏡像服務(wù)器130)可以是一臺服務(wù)器,也可以是由若干臺服務(wù)器組成的服務(wù)器集群,或者是一個云計算服務(wù)中心。此外,用于組成服務(wù)器集群或云計算服務(wù)中心的多個服務(wù)器可以駐留在多個地理位置中,本發(fā)明對資源服務(wù)器120(或鏡像服務(wù)器130)的部署方式不做限制。
對于資源下載系統(tǒng),目前常用的兩種資源下載方式,一種是在資源服務(wù)器端根據(jù)定期檢測的鏡像服務(wù)器狀態(tài)以及用戶的請求信息進行URL的跳轉(zhuǎn),也就是由資源服務(wù)器智能選取鏡像服務(wù)器,其缺點是在資源服務(wù)器端做出的判斷邏輯,并不能準確反映出客戶端與所選鏡像服務(wù)器的實際連接情況。另一種是由用戶在客戶端選擇固定使用的服務(wù)器,比如在網(wǎng)絡(luò)游戲中,就是由用戶自行選擇服務(wù)器,這種方式的好處是用戶能很準確的使用自己期望的服務(wù)器,但缺點是大部分用戶并不能做出正確判斷,尤其當(dāng)鏡像服務(wù)器的連接出現(xiàn)問題或者沒有同步更新時,客戶端的用戶并不能及時獲取信息。
鑒于此,在本發(fā)明中,初始資源都存儲在資源服務(wù)器120上,資源服務(wù)器120根據(jù)資源目錄建立索引文件;同時,鏡像服務(wù)器130定時或不定時地從資源服務(wù)器120同步資源,資源服務(wù)器120根據(jù)鏡像服務(wù)器的同步狀況建立/更新服務(wù)器列表??蛻舳?10會定期從資源服務(wù)器120更新索引文件和服務(wù)器列表。當(dāng)要下載資源時,客戶端110向鏡像服務(wù)器130發(fā)送資源探測請求,探測到響應(yīng)最優(yōu)的鏡像服務(wù)器130時,就向該鏡像服務(wù)器發(fā)送下載請求,下載資源。一方面,客戶端通過資源探測請求動態(tài)選擇響應(yīng)最優(yōu)的鏡像服務(wù)器,另一方面,通過資源服務(wù)器端的索引文件和服務(wù)器列表,動態(tài)監(jiān)測資源的同步更新,很好地解決了數(shù)據(jù)一致性問題。
以下將詳細介紹在本系統(tǒng)100中執(zhí)行資源下載方法的過程。
在資源服務(wù)器120上建立服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器130的服務(wù)器地址,索引文件包含所有資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化,也就是說,資源內(nèi)容與資源的相對地址是一一對應(yīng)的,只要資源內(nèi)容有變化,它在索引文件中的記錄也會變成另一個新的資源,以便于維護系統(tǒng)100中資源的一致性。
可選地,根據(jù)資源的標識ID和版本號計算得到資源的相對地址。例如,一個資源有如下信息:
Package:deepin-appstore
Version:4.0.8.1-1
Architecture:amd64
將其資源標識(包名)、版本號進行合并得到資源的相對地址為:Filename:pool/main/d/deepin-appstore/deepin-appstore_4.0.8.1-1_amd64.deb。
根據(jù)又一實施例,也可以對資源內(nèi)容做hash計算得到資源的相對地址,例如,在索引文件中記錄一個資源目錄:
Package:deepin-appstore
MD5:2bf414b036aa5d4e1138d01de992e579
客戶端110會定期向資源服務(wù)器120更新服務(wù)器列表和索引文件,響應(yīng)于客戶端110的請求,資源服務(wù)器120會定期發(fā)送上述索引文件和服務(wù)器列表給客戶端110,以便于客戶端110更新數(shù)據(jù)。
同樣,響應(yīng)于鏡像服務(wù)器130的同步請求,資源服務(wù)器120也會發(fā)送資源以及索引文件給鏡像服務(wù)器130,在這里,索引文件被認為是一種特殊的資源文件。
當(dāng)用戶想下載某個資源時,客戶端110根據(jù)待下載資源的相對地址和服務(wù)器列表中的服務(wù)器地址生成多個待下載地址。例如,若資源的相對地址為:R=pool/main/3/389-admin.deb,選取服務(wù)器列表中一個鏡像服務(wù)器的地址為:S1=http://cdn.packages.deepin/deepin,將其合并生成一個待下載地址為:http://cdn.packages.deepin/deepin/pool/main/3/389-admin.deb。
客戶端110可以對服務(wù)器列表中的所有服務(wù)器地址生成一個待下載地址,然后根據(jù)多個待下載地址逐個構(gòu)造資源探測請求發(fā)送給對應(yīng)的鏡像服務(wù)器130。根據(jù)一種實現(xiàn)方式,資源探測請求是HTTP HEAD請求,一個HEAD請求的響應(yīng)中,HTTP頭中包含的元信息應(yīng)該和一個HTTP GET請求的響應(yīng)消息相同,HEAD方法可以用來獲取請求中隱含的元信息,而不用傳輸實體本身,因此常用來測試超鏈接的有效性、可用性和最近的修改。對于有些禁用了HEAD方法的服務(wù)器,客戶端也可以自定義一個特殊的HTTP GET請求,其實質(zhì)和HTTP HEAD請求相同,即得到http header后立刻斷開當(dāng)前連接。
鏡像服務(wù)器130在接收到資源探測請求后,向資源服務(wù)器120反饋響應(yīng)消息。例如,返回200OK,表示客戶端請求成功;返回404Not Found,表示請求資源不存在。
客戶端110根據(jù)多個鏡像服務(wù)器的響應(yīng)結(jié)果,分析其中響應(yīng)最優(yōu)的鏡像服務(wù)器,并從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址,根據(jù)下載地址發(fā)送下載請求給對應(yīng)的服務(wù)器,以獲取待下載資源。根據(jù)一個實施例,客戶端110將返回“200OK”且響應(yīng)速度最快的鏡像服務(wù)器作為響應(yīng)最優(yōu)的鏡像服務(wù)器,然后根據(jù)該鏡像服務(wù)器對應(yīng)的待下載地址向該鏡像服務(wù)器發(fā)送下載請求。
根據(jù)一種實現(xiàn)方式,當(dāng)客戶端110分析得到所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,就將資源服務(wù)器120作為響應(yīng)最優(yōu)服務(wù)器,并根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址,以向資源服務(wù)器120發(fā)送下載請求。
設(shè)想一種場景:若多個客戶端110均向資源服務(wù)器120發(fā)送下載請求,資源服務(wù)器120的壓力就會增大,進而影響下載的帶寬質(zhì)量。本發(fā)明的資源下載方案,一個優(yōu)勢就在于用多個鏡像服務(wù)器來緩解資源服務(wù)器的帶寬壓力,根據(jù)資源探測請求的響應(yīng)結(jié)果判斷,當(dāng)響應(yīng)速度差距不大時,資源服務(wù)器會盡量避免被選中,而是將下載請求分散到各個鏡像服務(wù)器上;只有在所有鏡像服務(wù)器的響應(yīng)速度均不能滿足預(yù)設(shè)要求時,才選用資源服務(wù)器進行下載。
進一步地,為提高客戶端更新索引文件的速度,在本方案中,資源服務(wù)器120適于分級存儲索引文件。例如將索引文件分成多級進行存儲,其中一級資源索引能夠指向二級資源索引、二級資源索引能夠指向三級資源索引……以此類推。依前文所述,在同步時,索引文件也會作為資源文件同步給鏡像服務(wù)器。
當(dāng)接收到客戶端110更新索引文件的請求時,資源服務(wù)器120發(fā)送一級資源索引給客戶端,然后客戶端根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引、三級資源索引…在減小資源服務(wù)器帶寬壓力的同時,可以提高更新的速度。
根據(jù)另一種實施方式,資源服務(wù)器120也適于分塊存儲索引文件。例如根據(jù)資源的內(nèi)容屬性對其分塊,然后分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
在一些場景中,資源的數(shù)據(jù)量非常大,例如超過500多GB,此時索引文件也會有成百MB的數(shù)據(jù)量,更新一次索引文件消費的時間也會很龐大。此時,通過分級/分塊存儲索引文件的方式,就可以有效提高更新索引文件的速度。
另外,前文提到,資源服務(wù)器120根據(jù)鏡像服務(wù)器130的同步狀況建立/更新服務(wù)器列表,那么,資源服務(wù)器要對所有鏡像服務(wù)器的同步進度進行檢測,根據(jù)檢測結(jié)果更新服務(wù)器列表。具體的同步檢測步驟包括:
資源服務(wù)器120在每個資源目錄下建立測試資源,并生成測試文件,其中測試文件就如同索引文件一樣,一條記錄標記一個測試資源的相對地址,并且相對地址的編碼方式能夠反映測試資源內(nèi)容的變動。
例如,測試資源為_GUARD2016-02-18-13:00:32:12,生成100個這種測試資源(用2016-02-18-13:00:**:**區(qū)分不同的測試資源),考慮到測試資源僅作同步檢測用,測試資源的內(nèi)容設(shè)為空。將測試資源的相對地址記錄在一個index2016-18-13:00:32:12文件中,作為測試文件,關(guān)于相對地址的編碼方式,可以參考前文對資源的相對地址的編碼方式。
然后,資源服務(wù)器120將測試文件中每個測試資源的相對地址逐一與待檢測的鏡像服務(wù)器的地址合并生成多個待下載地址,并向?qū)?yīng)的待檢測鏡像服務(wù)器發(fā)送下載請求。因為測試資源的內(nèi)容為空,因此,資源服務(wù)器可以直接下載測試資源看是否有錯即可,當(dāng)然,也可以通過HTTP HEAD請求查看是否存在該測試資源。
根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果,資源服務(wù)器計算該鏡像服務(wù)器的同步進度。例如,對于100個這樣的測試資源,根據(jù)響應(yīng)結(jié)果統(tǒng)計得到鏡像服務(wù)器上存在60個測試資源,那么該鏡像服務(wù)器的同步進度就為60%。
最后,根據(jù)計算得的同步進度結(jié)果,更新服務(wù)器列表——根據(jù)本發(fā)明的一個實施例,若待檢測的鏡像服務(wù)器的同步進度低于閾值,就從服務(wù)器列表中刪除該待檢測鏡像服務(wù)器,以便客戶端定期獲取更新的服務(wù)器列表??蛇x地,對于某些長期不進行同步、或者同步進度極低的鏡像服務(wù)器,可以從服務(wù)器列表中刪除該鏡像服務(wù)器的服務(wù)器地址。由于鏡像服務(wù)器的管理是相對獨立的,也就是說,鏡像服務(wù)器什么時候出問題、什么時候進行同步、帶寬如何等等都是資源服務(wù)器不太好控制的,那么通過同步檢測,根據(jù)鏡像服務(wù)器的同步進度去更新服務(wù)器列表,就可以保證客戶端110進行通訊的鏡像服務(wù)器的有效性,以提高資源下載的效率。
如圖2示出了根據(jù)本發(fā)明一個實施例的資源下載方法200的流程圖。本方法200在客戶端110中執(zhí)行,方法始于步驟S210,從資源服務(wù)器獲取服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器的服務(wù)器地址,索引文件包含資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化??蛇x地,資源的相對地址是根據(jù)資源的標識ID和版本號計算得到;也可以是資源內(nèi)容的hash值,只要資源內(nèi)容發(fā)生變化,資源的相對地址就會變化。本步驟在基于圖2的描述中已經(jīng)給出示例,此處不再贅述。
隨后在步驟S220中,當(dāng)要下載資源時,根據(jù)待下載資源的相對地址和服務(wù)器列表中的服務(wù)器地址生成多個待下載地址。
隨后在步驟S230中,根據(jù)多個待下載地址逐個構(gòu)造資源探測請求發(fā)送給對應(yīng)的鏡像服務(wù)器??蛇x地,資源探測請求是HTTP HEAD請求,或,自定義的HTTP GET請求,其中自定義的HTTP GET請求同HTTP HEAD請求一樣,只獲取請求的響應(yīng)消息,而不需要傳輸實體本身,故在得到http header后斷開當(dāng)前連接。
隨后在步驟S240中,根據(jù)多個鏡像服務(wù)器的響應(yīng)結(jié)果,分析得到響應(yīng)最優(yōu)的鏡像服務(wù)器。例如,將返回“200OK”且響應(yīng)速度最快的鏡像服務(wù)器作為響應(yīng)最優(yōu)的鏡像服務(wù)器,然后從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址。
根據(jù)本發(fā)明的實施方式,當(dāng)所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,將資源服務(wù)器作為響應(yīng)最優(yōu)服務(wù)器,并根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址。
隨后在步驟S250中,根據(jù)該下載地址發(fā)送下載請求,以便獲取待下載資源。
根據(jù)本發(fā)明一個實施例,資源服務(wù)器上的資源發(fā)生變化時,索引文件也會發(fā)生變化,因此客戶端還包括更新索引文件的步驟:每隔預(yù)定時間從資源服務(wù)器獲取資源的索引文件,以更新原有索引文件。為提高更新索引文件的速度和效率,資源服務(wù)器會分級存儲索引文件,且一級資源索引指向二級資源索引……以此類推。在更新索引文件時,客戶端從資源服務(wù)器獲取一級資源索引、再根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引,甚至三級資源索引等多級資源索引。當(dāng)然,除了分級存儲索引文件外,亦可以根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
同理,根據(jù)鏡像服務(wù)器的連接情況(或者說,同步情況),客戶端還包括更新服務(wù)器列表的步驟:由資源服務(wù)器對所有鏡像服務(wù)器的同步進度進行檢測,資源服務(wù)器根據(jù)計算得的同步進度結(jié)果,更新服務(wù)器列表,以便客戶端定期獲取更新的服務(wù)器列表??蛇x地,客戶端可以在定期更新索引文件的同時,更新服務(wù)器列表。
根據(jù)本發(fā)明的資源下載方法200,在索引文件中,資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化,以保證資源服務(wù)器、鏡像服務(wù)器、客戶端上的數(shù)據(jù)的一致性,只要資源服務(wù)器上的資源有變化,通過定期同步/更新索引文件,鏡像服務(wù)器和客戶端也可以獲知最新資源目錄。那么客戶端在下載資源時,就可以根據(jù)服務(wù)器列表和索引文件,通過資源探測請求動態(tài)選擇響應(yīng)最優(yōu)的鏡像服務(wù)器,保證資源下載時的帶寬最優(yōu)。
另外,通過分級/分塊存儲索引文件的方式,可以有效緩解資源服務(wù)器的帶寬壓力,還提高了更新索引文件的效率。
進一步地,資源服務(wù)器根據(jù)鏡像服務(wù)器的同步狀況建立/更新服務(wù)器列表,客戶端再定期從資源服務(wù)器拉取服務(wù)器列表以便更新。這樣就解決了鏡像服務(wù)器不受資源服務(wù)器管理的限制,資源服務(wù)器可以將同步狀況不好的鏡像服務(wù)器從服務(wù)器列表中剔除,客戶端只向服務(wù)器列表中存在的鏡像服務(wù)器發(fā)送資源探測請求,以節(jié)省資源、提高下載效率。
圖3示出了根據(jù)本發(fā)明一個實施例的布置于客戶端110上的資源下載裝置300的示意圖。裝置300包括:接口單元310、存儲單元320、第一處理單元330和第二處理單元340。
接口單元310適于從資源服務(wù)器獲取服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器的服務(wù)器地址,索引文件包含資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化??蛇x地,資源的相對地址可以是根據(jù)資源的標識ID和版本號計算得到;也可以是資源內(nèi)容的hash值。關(guān)于資源相對地址的編碼方式,上文已經(jīng)給出示例說明,此處不再贅述。
存儲單元320適于存儲接口單元310接收的服務(wù)器列表和索引文件。
第一處理單元330適于當(dāng)要下載資源時,根據(jù)待下載資源的相對地址和服務(wù)器列表中的服務(wù)器地址生成多個待下載地址、還適于根據(jù)多個待下載地址逐個構(gòu)造資源探測請求。根據(jù)本發(fā)明一個實施例,資源探測請求是HTTP HEAD請求,或,自定義的GET請求(針對于某些不支持HEAD請求的服務(wù)器),其中自定義的GET請求在得到http header后斷開當(dāng)前連接。
接口單元310還適于發(fā)送資源探測請求給對應(yīng)的鏡像服務(wù)器、以及接收鏡像服務(wù)器的響應(yīng)結(jié)果。
第二處理單元340適于根據(jù)多個鏡像服務(wù)器的響應(yīng)結(jié)果,分析得到響應(yīng)最優(yōu)的鏡像服務(wù)器、且從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址。
根據(jù)一種實現(xiàn)方式,第二處理單元340還包括適于判斷所有鏡像服務(wù)器的響應(yīng)速度是否均低于預(yù)設(shè)的響應(yīng)速度閾值的判斷模塊。第二處理單元340適于當(dāng)判斷模塊判斷得所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,將資源服務(wù)器作為響應(yīng)最優(yōu)服務(wù)器、且根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址。
再由接口單元310根據(jù)下載地址向?qū)?yīng)的響應(yīng)最優(yōu)服務(wù)器發(fā)送下載請求,以便獲取待下載資源。
根據(jù)本發(fā)明的實施方式,接口單元310還適于每隔預(yù)定時間從資源服務(wù)器獲取服務(wù)器列表和資源的索引文件,交由存儲單元320更新原有服務(wù)器列表和索引文件。
依前文所述,資源服務(wù)器適于分級存儲索引文件,且一級資源索引指向二級資源索引,接口單元310適于在獲取索引資源時,從資源服務(wù)器獲取一級資源索引、再根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。
或者,資源服務(wù)器也適于分塊存儲索引文件,那么接口單元310適于根據(jù)資源的內(nèi)容屬性分塊獲取索引文件,存儲單元320亦適于根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
上述獲取資源的索引文件的方式,均是考慮到在資源的數(shù)據(jù)量非常大的場景下(此時索引文件也會很大),更新一次索引文件消費的時間會很龐大。通過分級/分塊獲取索引文件的方式,就可以有效提高更新索引文件的效率。
另一方面,接口單元310還適于定期從資源服務(wù)器獲取更新的服務(wù)器列表,其中資源服務(wù)器定期對所有鏡像服務(wù)器的同步進度進行檢測,并根據(jù)同步進度檢測結(jié)果更新服務(wù)器列表。此處不再贅述。
圖4示出了根據(jù)本發(fā)明一個實施例的資源服務(wù)器120的示意圖。資源服務(wù)器120包括:列表管理單122和連接管理單元124。
列表管理單元122適于建立服務(wù)器列表和所有資源的索引文件,其中服務(wù)器列表中存儲多個鏡像服務(wù)器的服務(wù)器地址,索引文件包含所有資源的相對地址,且資源的相對地址的編碼方式能夠反映資源內(nèi)容的變化。
根據(jù)本發(fā)明的實施方式,列表管理單元122包括地址編碼模塊,適于根據(jù)資源的標識ID和版本號得到資源的相對地址;地址編碼模塊也適于對資源內(nèi)容做hash計算得到資源的相對地址。總之,通過地址編碼模塊得到的資源的相對地址能夠與資源內(nèi)容一一對應(yīng)。
連接管理單元124適于響應(yīng)于客戶端的請求,定期發(fā)送服務(wù)器列表和索引文件給客戶端,以便客戶端更新服務(wù)器列表和索引文件。連接管理單元124還適于響應(yīng)于鏡像服務(wù)器的同步請求,發(fā)送資源給鏡像服務(wù)器,其中所發(fā)送的資源包括索引文件(即,將索引文件作為一種特殊的資源文件一起同步)。
連接管理單元124還適于接收來自客戶端的資源探測請求,并發(fā)送響應(yīng)消息給客戶端;或者是,連接管理單元124接收來自客戶端的下載請求,并將該下載請求中指向的待下載資源發(fā)送給客戶端。如前文所述,資源探測請求是HTTP HEAD請求或自定義的類似HEAD請求的HTTP GET請求,因此,反饋的響應(yīng)消息中只針對請求的元信息,例如,返回200OK,表示客戶端請求成功;返回404Not Found,表示請求資源不存在。根據(jù)本發(fā)明的實施方式,客戶端的資源探測請求可以暫不發(fā)給資源服務(wù)器(只發(fā)給服務(wù)器列表中的鏡像服務(wù)器),只有當(dāng)探測不到響應(yīng)最優(yōu)的鏡像服務(wù)器時,才去資源服務(wù)器下載資源。一般地,資源服務(wù)器上保存所有的資源,故當(dāng)客戶端要向資源服務(wù)器下載資源時,亦可以不發(fā)送資源探測請求、直接發(fā)送下載請求,本發(fā)明對此方面不再限制。
為了分散資源服務(wù)器定期向客戶端更新索引文件的壓力、以及提高更新索引文件的效率,在資源服務(wù)器上采用分級/分塊存儲索引文件的方式。具體地,列表管理單元122適于分級存儲索引文件,并根據(jù)一級資源索引能夠查找二級資源索引,連接管理單元124適于在響應(yīng)客戶端的請求后,發(fā)送一級資源索引給客戶端,以便于客戶端根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引?;蛘呤牵斜砉芾韱卧?22適于根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。
根據(jù)本發(fā)明又一實施例,資源服務(wù)器120還適于定期檢測所有鏡像服務(wù)器130的同步進度,以更新服務(wù)器列表。如圖5示出了根據(jù)本發(fā)明又一實施例的資源服務(wù)器120的示意圖,資源服務(wù)器120除了列表管理單元122和連接管理單元124外,還包括同步檢測單元126。
同步檢測單元126包括適于在每個資源目錄下建立一個測試資源,并生成測試文件的測試資源管理模塊1262、和適于將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并生成多個待下載地址的測試地址生成模塊1264。其中,測試文件中的一條記錄標記一個測試資源的相對地址,并且相對地址的編碼方式能夠反映測試資源內(nèi)容的變動。
根據(jù)一個實施例,由測試資源管理模塊1262在每個資源目錄下建立一個測試資源,例如生成100個如下的測試資源:_GUARD2016-02-18-13:00:32:12、_GUARD2016-02-18-13:00:32:13、_GUARD2016-02-18-13:00:32:14,考慮到測試資源僅作同步檢測用,將測試資源的內(nèi)容設(shè)為空。同時,測試資源的相對地址記錄在一個index2016-18-13:00:32:12文件中,作為測試文件,關(guān)于相對地址的編碼方式,可以參考列表管理單元122中對資源的相對地址的編碼方式。
同樣地,測試地址生成模塊1264將待下載地址傳送給連接管理單元124,由其發(fā)送下載請求給對應(yīng)的待檢測鏡像服務(wù)器。由于測試資源為空文件,連接管理單元124可以通過直接下載測試資源探測其是否存在。
同步檢測單元126還包括計算模塊1266,適于根據(jù)待檢測鏡像服務(wù)器的響應(yīng)結(jié)果計算該待檢測鏡像服務(wù)器的同步進度。例如,對于100個測試資源,根據(jù)響應(yīng)結(jié)果統(tǒng)計得到一個待檢測鏡像服務(wù)器上存有30個測試資源,那么該鏡像服務(wù)器的同步進度就是30%。
列表管理單元122適于根據(jù)計算得的同步進度結(jié)果更新服務(wù)器列表,在待檢測鏡像服務(wù)器的同步進度低于閾值時,從服務(wù)器列表中刪除該鏡像服務(wù)器,以便客戶端定期獲取更新的服務(wù)器列表。由于鏡像服務(wù)器的管理是相對獨立的,也就是說,鏡像服務(wù)器什么時候出問題、什么時候進行同步、帶寬如何等等都不受資源服務(wù)器的控制,通過同步進度檢測,根據(jù)鏡像服務(wù)器的同步進度來更新服務(wù)器列表,變相管理鏡像服務(wù)器的同步進度,以保證客戶端進行通訊的鏡像服務(wù)器的有效性,以提高資源下載的效率。
應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個或多個設(shè)備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
A4、如A1或2所述的方法,其中資源的相對地址是資源內(nèi)容的hash值。A5、如A2-4中任一項所述的方法,其中資源服務(wù)器分級存儲索引文件,且一級資源索引指向二級資源索引,更新索引文件的步驟,還包括步驟:從資源服務(wù)器獲取一級資源索引;以及根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。A6、如A2-4中任一項所述的方法,其中更新索引文件的步驟,還包括步驟:根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。A7、如A1-6中任一項所述的方法,其中分析得到響應(yīng)最優(yōu)的鏡像服務(wù)器,并從多個待下載地址中選取該響應(yīng)最優(yōu)的鏡像服務(wù)器對應(yīng)的下載地址的步驟還包括:當(dāng)所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,將資源服務(wù)器作為響應(yīng)最優(yōu)服務(wù)器;以及根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址。A8、如A2-7中任一項所述的方法,其中資源服務(wù)器定期對所有鏡像服務(wù)器的同步進度進行檢測,并根據(jù)同步進度檢測結(jié)果更新服務(wù)器列表的步驟包括:資源服務(wù)器在每個資源目錄下建立一個測試資源,并生成測試文件,其中測試文件中的一條記錄標記一個測試資源的相對地址;資源服務(wù)器將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并,生成多個待下載地址;根據(jù)生成的多個待下載地址,發(fā)送多個下載請求到待檢測的鏡像服務(wù)器;資源服務(wù)器根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度;以及若待檢測的鏡像服務(wù)器的同步進度低于閾值,資源服務(wù)器就從服務(wù)器列表中刪除該鏡像服務(wù)器,以便客戶端定期獲取更新的服務(wù)器列表。A9、如A8所述的方法,其中資源服務(wù)器根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度的步驟包括:根據(jù)響應(yīng)結(jié)果統(tǒng)計待檢測的鏡像服務(wù)器中存在的測試資源數(shù)目;以及根據(jù)該存在的測試資源的數(shù)目和測試資源總數(shù)量計算該鏡像服務(wù)器的同步進度。A10、如A8或9所述的方式,其中測試資源為空文件。A11、如A1-10中任一項所述的方法,其中資源探測請求是HTTP HEAD請求,或,自定義的HTTP GET請求,其中自定義的HTTP GET請求在得到http header后斷開當(dāng)前連接。
B15、如B12或13所述的裝置,其中資源的相對地址是資源內(nèi)容的hash值。B16、如B13-15中任一項所述的裝置,其中資源服務(wù)器分級存儲索引文件,且一級資源索引指向二級資源索引,接口單元適于從所述資源服務(wù)器獲取一級資源索引;以及根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。B17、如B13-15中任一項所述的裝置,其中接口單元適于根據(jù)資源的內(nèi)容屬性分塊獲取索引文件;存儲單元適于根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中,內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。B18、如B12-17中任一項所述的裝置,其中第二處理單元還包括:判斷模塊,適于判斷所有鏡像服務(wù)器的響應(yīng)速度是否均低于預(yù)設(shè)的響應(yīng)速度閾值;第二處理單元還適于當(dāng)判斷得所有鏡像服務(wù)器的響應(yīng)速度均低于預(yù)設(shè)的響應(yīng)速度閾值時,將資源服務(wù)器作為響應(yīng)最優(yōu)服務(wù)器、且根據(jù)待下載資源的相對地址和資源服務(wù)器地址生成下載地址。B19、如B12-18中任一項所述的裝置,其中資源服務(wù)器被配置為:適于在每個資源目錄下建立一個測試資源,并生成測試文件,其中所述測試文件中的一條記錄標記一個測試資源的相對地址、且將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并,生成多個待下載地址;還適于根據(jù)生成的多個待下載地址,發(fā)送多個下載請求到待檢測的鏡像服務(wù)器、并根據(jù)該待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度;以及還適于在待檢測鏡像服務(wù)器的同步進度低于閾值時,從服務(wù)器列表中刪除該鏡像服務(wù)器以便客戶端定期獲取更新的服務(wù)器列表。B20、如B19所述的裝置,其中資源服務(wù)器還適于根據(jù)響應(yīng)結(jié)果統(tǒng)計待檢測的鏡像服務(wù)器中存在的測試資源數(shù)目,并且根據(jù)該存在的測試資源的數(shù)目和測試資源總數(shù)量計算該鏡像服務(wù)器的同步進度。B21、如B19或20所述的裝置,其中測試資源為空文件。B22、如B12-21中任一項所述的裝置,其中資源探測請求是HTTP HEAD請求,或,自定義的HTTP GET請求,其中自定義的HTTP GET請求在得到http header后斷開當(dāng)前連接。
C26、如C23或24所述的資源服務(wù)器,其中列表管理單元還包括:地址編碼模塊,適于對資源內(nèi)容做hash計算得到資源的相對地址。C27、如C23-26中任一項所述的資源服務(wù)器,其中列表管理單元還適于分級存儲索引文件,并根據(jù)一級資源索引能夠查找二級資源索引;以及連接管理單元還適于在響應(yīng)客戶端的請求后,發(fā)送一級資源索引給客戶端,以便于客戶端根據(jù)一級資源索引向鏡像服務(wù)器獲取二級資源索引。C28、如C23-26中任一項所述的資源服務(wù)器,其中列表管理單元還適于根據(jù)資源的內(nèi)容屬性分塊存儲索引文件,其中內(nèi)容屬性至少包括游戲、驅(qū)動、視音頻中的一種。C29、如C23-28中任一項所述的資源服務(wù)器,還包括適于對所有鏡像服務(wù)器進行同步檢測的同步檢測單元,同步檢測單元包括:測試資源管理模塊,適于在每個資源目錄下建立一個測試資源,并生成測試文件,其中測試文件中的一條記錄標記一個測試資源的相對地址;測試地址生成模塊,適于將待檢測的鏡像服務(wù)器的地址逐一與測試文件中的每個測試資源的相對地址合并生成多個待下載地址;連接管理單元還適于發(fā)送下載請求給待檢測的鏡像服務(wù)器;計算模塊,適于根據(jù)待檢測的鏡像服務(wù)器的響應(yīng)結(jié)果計算該鏡像服務(wù)器的同步進度;以及列表管理單元,適于在待檢測鏡像服務(wù)器的同步進度低于閾值時,從服務(wù)器列表中刪除該鏡像服務(wù)器以便客戶端定期獲取更新的服務(wù)器列表。C30、如C29所述的資源服務(wù)器,其中計算模塊還適于根據(jù)響應(yīng)結(jié)果統(tǒng)計待檢測的鏡像服務(wù)器中存在的測試資源數(shù)目,并且根據(jù)該存在的測試資源的數(shù)目和測試資源總數(shù)量計算該鏡像服務(wù)器的同步進度。C31、如C29或30所述的資源服務(wù)器,其中測試資源為空文件。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
此外,所述實施例中的一些在此被描述成可以由計算機系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。