專利名稱:在網(wǎng)絡(luò)環(huán)境中傳輸文件的協(xié)作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種在網(wǎng)路環(huán)境中傳輸一個(gè)文件的協(xié)作方法,尤其涉及一種在網(wǎng)絡(luò)環(huán)境中接收由多個(gè)服務(wù)器分割單個(gè)文件所獲得的多個(gè)文件的方法。
背景技術(shù):
在網(wǎng)絡(luò)環(huán)境下的現(xiàn)有技術(shù)的客戶機(jī)/服務(wù)器模式中,使用一對(duì)一的傳輸方法,其中一個(gè)客戶機(jī)連接到一個(gè)服務(wù)器,并接收一個(gè)文件。在這種方法中,如果服務(wù)器的傳輸速率很低,則客戶機(jī)也以一個(gè)很低的速率接收文件,因此它不能最佳地使用其帶寬。如果在傳輸過(guò)程中因特網(wǎng)用戶數(shù)量增加,即使客戶機(jī)連接到最合適的服務(wù)器,傳輸速率也將顯著地降低。此外,如果傳輸一個(gè)文件的服務(wù)器出現(xiàn)錯(cuò)誤,則文件傳輸在故障中結(jié)束。因此,出現(xiàn)客戶機(jī)必需再次從另一個(gè)服務(wù)器接收一個(gè)文件的問(wèn)題。
美國(guó)第6,085,251號(hào)專利公開了一種并行傳輸多個(gè)文件以提高文件傳輸速率的方法。在這種方法中,一個(gè)服務(wù)器將單個(gè)文件分割成多個(gè)數(shù)據(jù)包,同時(shí)并行地將這些數(shù)據(jù)包傳送給一個(gè)客戶機(jī),并從該客戶機(jī)接收一個(gè)確認(rèn)信號(hào)。服務(wù)器將文件分割的事實(shí)通知客戶機(jī),然后在客戶機(jī)上合并這些被分割的數(shù)據(jù)包。與逐個(gè)傳輸數(shù)據(jù)包并驗(yàn)證每個(gè)數(shù)據(jù)包的正確發(fā)送相比,該方法提供非常高的文件傳輸速率。然而,如果在服務(wù)器上出現(xiàn)一個(gè)錯(cuò)誤,則不可能進(jìn)行文件傳輸,因此不能保證一個(gè)穩(wěn)定的文件傳輸。
因?yàn)橐粚?duì)一的傳輸方法具有這樣一個(gè)缺點(diǎn),而個(gè)人計(jì)算機(jī)可以用作一個(gè)在個(gè)人計(jì)算機(jī)的性能上改進(jìn)的服務(wù)器,所以沒(méi)有必要維持這種一對(duì)一的傳輸方法。
發(fā)明內(nèi)容
因此,本發(fā)明的一個(gè)目的是通過(guò)允許用戶接收由多個(gè)服務(wù)器分割單個(gè)文件所獲得的多個(gè)文件來(lái)最佳地使用其帶寬以提高傳輸速率。
本發(fā)明的另一個(gè)目的是通過(guò)在文件傳輸過(guò)程中在多個(gè)服務(wù)器中的一個(gè)服務(wù)器中出現(xiàn)任何異常時(shí)立即用另一個(gè)服務(wù)器替代該故障服務(wù)器來(lái)提供一種容錯(cuò)系統(tǒng)。
本發(fā)明的另一個(gè)目的是提供一種確保從多個(gè)服務(wù)器傳輸相同文件的多個(gè)片段作為接收由多個(gè)服務(wù)器分割成多個(gè)片段的單個(gè)文件的前提條件的方法。
本發(fā)明的另一個(gè)目的是提供一種如果一個(gè)文件不能全部地存儲(chǔ)在單個(gè)設(shè)備內(nèi)則分割該文件并將其存儲(chǔ)在多個(gè)設(shè)備內(nèi),然后通過(guò)根據(jù)本發(fā)明的文件傳輸方法瀏覽整個(gè)文件內(nèi)容的方法。
為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的第一方面,提供一種在通過(guò)網(wǎng)絡(luò)連接的多個(gè)設(shè)備之間傳輸一個(gè)文件的方法,包括步驟選擇一個(gè)用戶設(shè)備希望接收的文件;從一個(gè)管理文件傳輸?shù)奈募芾硐到y(tǒng)接收有關(guān)存儲(chǔ)該文件的設(shè)備的信息;在存儲(chǔ)該文件的設(shè)備之中確定一個(gè)或多個(gè)將用于傳輸文件的服務(wù)器;請(qǐng)求一個(gè)或多個(gè)服務(wù)器分別傳輸該文件的一個(gè)片段;從所述的一個(gè)或多個(gè)服務(wù)器分別接收所請(qǐng)求的文件片段;然后,將所傳輸?shù)奈募魏喜⒊蓡蝹€(gè)文件。
在這里,服務(wù)器是指一個(gè)用作服務(wù)器的設(shè)備,即用于傳輸一個(gè)文件的一個(gè)設(shè)備,所述傳輸包括數(shù)據(jù)流和下載。
為了從多個(gè)服務(wù)器接收一個(gè)文件,必需存在一個(gè)管理文件傳輸?shù)南到y(tǒng)。這個(gè)文件管理系統(tǒng)可以作為單個(gè)的文件管理服務(wù)器存在,或者劃分成多個(gè)設(shè)備。
當(dāng)用戶設(shè)備確定傳輸一個(gè)文件的一個(gè)或多個(gè)服務(wù)器時(shí),最好以傳輸速率為順序確定這些服務(wù)器。此外,當(dāng)從多個(gè)服務(wù)器接收每個(gè)文件片段時(shí),最好從一個(gè)傳輸速率高的服務(wù)器接收大量數(shù)據(jù),而從一個(gè)傳輸速率低的服務(wù)器接收少量數(shù)據(jù)。
在用戶設(shè)備已經(jīng)從多個(gè)服務(wù)器接收每個(gè)文件片段時(shí),它在一個(gè)日志文件中記錄此信息。這個(gè)日志文件隨后用于將這些文件片段合并成原始文件。
每次用戶設(shè)備從每個(gè)服務(wù)器接收一定大小的多個(gè)數(shù)據(jù)包時(shí),它估計(jì)該服務(wù)器的傳輸速率。如果傳輸速率急劇降低,或者存在一個(gè)不穩(wěn)定的服務(wù)器,則用另外一個(gè)服務(wù)器替代這個(gè)服務(wù)器。
根據(jù)從文件管理系統(tǒng)接收到的一個(gè)存儲(chǔ)該文件的設(shè)備列表,或者根據(jù)按照請(qǐng)求由文件管理系統(tǒng)更新的列表來(lái)確定所述替代服務(wù)器。
同時(shí),為了接收由多個(gè)服務(wù)器分割單個(gè)文件所獲得的多個(gè)文件,必需保證所有的服務(wù)器傳輸同一文件的片段。在本發(fā)明中,在文件傳輸時(shí),將原始文件的信息記錄在一個(gè)元文件中,一旦將該文件的片段傳輸給另一個(gè)用戶,則將要傳輸?shù)奈募c在該元文件內(nèi)存儲(chǔ)的信息相比較。
根據(jù)本發(fā)明的第一方面,用戶可以通過(guò)接收由多個(gè)服務(wù)器分割單個(gè)文件所獲得的多個(gè)文件最佳地使用其帶寬,從而提高傳輸速率。當(dāng)在一個(gè)文件的傳輸過(guò)程中在一個(gè)服務(wù)器內(nèi)出現(xiàn)任何異常時(shí),可以立即通過(guò)用另一個(gè)服務(wù)器替代該故障服務(wù)器使用服務(wù)器的容錯(cuò)來(lái)傳輸該文件。
在將一個(gè)文件充分地分割并存儲(chǔ)在多個(gè)服務(wù)器內(nèi)的情況下,以及在合并和接收來(lái)自多個(gè)服務(wù)器的多個(gè)文件的情況下,也可以使用本發(fā)明。
也就是說(shuō),根據(jù)本發(fā)明的第二方面,在將一個(gè)文件分割并存儲(chǔ)在通過(guò)網(wǎng)絡(luò)連接的多個(gè)設(shè)備的情況下,提供一種調(diào)用該文件的方法,包括步驟從一個(gè)管理文件傳輸?shù)奈募芾硐到y(tǒng)接收有關(guān)存儲(chǔ)該文件每個(gè)片段的多個(gè)設(shè)備的信息;從存儲(chǔ)該文件每個(gè)片段的多個(gè)設(shè)備中確定傳輸該文件每個(gè)片段的一個(gè)或多個(gè)服務(wù)器;從所確定的一個(gè)或多個(gè)服務(wù)器接收該文件的每個(gè)片段;以及將該文件的每個(gè)片段合并成單個(gè)文件。
此外,根據(jù)本發(fā)明的第三方面,提供一種將一個(gè)文件從一個(gè)設(shè)備傳輸給通過(guò)網(wǎng)絡(luò)連接的許多設(shè)備中的多個(gè)設(shè)備的方法,包括步驟所述的一個(gè)設(shè)備將該文件傳輸給所述的多個(gè)設(shè)備中最快的設(shè)備;以這樣的方式將該文件向下傳輸給最慢的設(shè)備,即已接收到該文件的最快的設(shè)備將該文件傳輸給所述的多個(gè)設(shè)備中第二快的設(shè)備,已經(jīng)接收到該文件的第二快的設(shè)備將該文件傳輸給第三快的設(shè)備,并且在該方法中,如果所述的一個(gè)設(shè)備完成了到所述的多個(gè)設(shè)備中一個(gè)設(shè)備的文件傳輸,則將該文件傳輸給所述多個(gè)設(shè)備中的另一個(gè)設(shè)備。
另外,根據(jù)本發(fā)明的第四方面,提供一種將一個(gè)文件從一個(gè)設(shè)備傳輸給通過(guò)網(wǎng)絡(luò)連接的許多設(shè)備中的多個(gè)設(shè)備的方法,包括步驟所述的一個(gè)設(shè)備將該文件傳輸給所述的多個(gè)設(shè)備;以及如果傳輸量超過(guò)一個(gè)預(yù)定量值,則所述的一個(gè)設(shè)備僅將該文件傳輸給所述的多個(gè)設(shè)備中最快的設(shè)備,該最快的設(shè)備從所述的一個(gè)設(shè)備接收該文件,同時(shí)將該文件傳輸給所述多個(gè)設(shè)備中的其它設(shè)備。
根據(jù)本發(fā)明的第三和第四方面,可以高速率地將一個(gè)文件從一個(gè)設(shè)備傳輸給多個(gè)設(shè)備。
當(dāng)結(jié)合附圖時(shí),本發(fā)明的上述目的、特征和優(yōu)點(diǎn)根據(jù)下面的詳細(xì)描述將變得更加明顯,在附圖中圖1是根據(jù)本發(fā)明的一個(gè)文件傳輸系統(tǒng)的總體結(jié)構(gòu)圖;圖2至圖4是根據(jù)本發(fā)明的一個(gè)文件管理系統(tǒng)的總體結(jié)構(gòu)圖;圖5是示意性地圖示根據(jù)本發(fā)明的一個(gè)文件傳輸處理的流程圖;圖6是一個(gè)候選服務(wù)器列表的數(shù)據(jù)結(jié)構(gòu)圖,在該列表中存儲(chǔ)能夠傳輸一個(gè)文件的服務(wù)器的信息;圖7是一個(gè)記錄文件傳輸信息的日志文件的示意圖;圖8圖示根據(jù)本發(fā)明傳輸一個(gè)文件的狀態(tài);圖9圖示根據(jù)本發(fā)明將一個(gè)文件從一個(gè)設(shè)備傳輸給多個(gè)設(shè)備的狀態(tài)。
具體實(shí)施例方式
現(xiàn)在將參考附圖描述本發(fā)明的一個(gè)優(yōu)選實(shí)施例。
圖1是根據(jù)本發(fā)明的一個(gè)文件管理系統(tǒng)的總體結(jié)構(gòu)圖。
如圖1所示,本發(fā)明的文件傳輸系統(tǒng)包括通過(guò)一個(gè)網(wǎng)絡(luò)10連接的多個(gè)設(shè)備201、202、203、......20n。
網(wǎng)絡(luò)10包括所有的能夠互通的環(huán)境,例如使用調(diào)制解調(diào)器、PSTN、專用線和ISDN等的有線因特網(wǎng)、使用PCS、微波和衛(wèi)星通信網(wǎng)絡(luò)等的無(wú)線因特網(wǎng)、內(nèi)部網(wǎng)、外部網(wǎng)等等。設(shè)備201、202、203、......20n可以是所有可用于數(shù)據(jù)通信的設(shè)備,例如個(gè)人計(jì)算機(jī)、工作站、小型計(jì)算機(jī)、大型計(jì)算機(jī)、筆記本計(jì)算機(jī)、普通便攜式通信終端、PDA(個(gè)人數(shù)字助理)、機(jī)頂盒、數(shù)字電視機(jī)、網(wǎng)絡(luò)電話等等。
設(shè)備201、202、203、......20n可以從連接到網(wǎng)絡(luò)10的其它設(shè)備接收一個(gè)文件,并可以將該文件傳輸給其它設(shè)備。為了該目的,存在一個(gè)文件管理系統(tǒng)30,用于管理每個(gè)設(shè)備的位置、文件信息等等。
文件管理系統(tǒng)執(zhí)行下述功能給在多個(gè)設(shè)備間共享的文件提供一個(gè)專用文件標(biāo)識(shí)符,管理一個(gè)可以在這些設(shè)備間傳輸?shù)奈募牧斜恚虼艘粋€(gè)設(shè)備可以從多個(gè)設(shè)備接收分段文件。該文件管理系統(tǒng)可以是圖1所示多個(gè)設(shè)備中的一個(gè)設(shè)備,它也可以包含協(xié)同工作的多個(gè)設(shè)備。
在圖2至圖4中圖示了多種類型的文件管理系統(tǒng)。圖2圖示一個(gè)中央控制文件管理系統(tǒng)30,可以在一個(gè)諸如服務(wù)器的大型設(shè)備中實(shí)現(xiàn)該文件管理系統(tǒng)。在這種情況下,該文件管理服務(wù)器管理文件傳輸所需要的所有信息,并總體控制這些設(shè)備之間的文件傳輸。
圖3圖示一個(gè)分布式文件管理系統(tǒng)30,其中將該文件管理系統(tǒng)劃分成多個(gè)設(shè)備。在這種情況下,將在傳輸一個(gè)文件中協(xié)作所需要的信息分割并存儲(chǔ)在多個(gè)設(shè)備內(nèi),并在多個(gè)設(shè)備之間協(xié)作執(zhí)行文件傳輸?shù)目刂啤?br>
圖4圖示一個(gè)混合文件管理系統(tǒng)30,即圖2和圖3所示系統(tǒng)的組合。在這種情況下,盡管主要由文件管理系統(tǒng)30執(zhí)行文件傳輸所需信息的管理和文件傳輸?shù)目刂?,但是由其余的設(shè)備協(xié)作執(zhí)行部分工作。
圖2至圖4僅僅是一個(gè)文件管理系統(tǒng)的例子,也可以通過(guò)各種拓?fù)浣Y(jié)構(gòu)來(lái)實(shí)現(xiàn)該文件管理系統(tǒng)。
圖5是解釋根據(jù)本發(fā)明的傳輸一個(gè)文件的處理的流程圖。
首先,在S501,希望接收一個(gè)文件的用戶設(shè)備20從文件管理系統(tǒng)接收一個(gè)可接收文件的列表,指定一個(gè)希望接收的文件,并在S502將此通知給文件管理系統(tǒng)。
文件管理系統(tǒng)檢測(cè)存儲(chǔ)用戶設(shè)備20所指定的文件的多個(gè)設(shè)備,計(jì)算每個(gè)設(shè)備的位置和傳輸速率,然后在S503通過(guò)以傳輸速率為順序排列這些設(shè)備將此傳輸給用戶設(shè)備20。在圖6中圖示了這樣一個(gè)設(shè)備列表的例子(在下文中,稱作“一個(gè)候選服務(wù)器列表”,所述“服務(wù)器”是指一個(gè)用作服務(wù)器的設(shè)備)。如圖6所示,該候選服務(wù)器列表包括每個(gè)服務(wù)器的服務(wù)器標(biāo)識(shí)符601、服務(wù)器位置602、服務(wù)器傳輸速率603,并以服務(wù)器傳輸速率為順序排列。根據(jù)帶寬和當(dāng)前執(zhí)行的工作數(shù)量來(lái)計(jì)算服務(wù)器傳輸速率603。
用戶設(shè)備20接收候選服務(wù)器列表,并在S504從列表中確定適合文件傳輸?shù)亩鄠€(gè)服務(wù)器。換句話說(shuō),用戶設(shè)備20以傳輸速率為順序指定n個(gè)服務(wù)器40,從而最佳地使用其帶寬,這將通過(guò)下述表達(dá)式來(lái)表示。
BW v1+v2+Λ+vn(vi≥vi+1)BW用戶帶寬Vi第i個(gè)設(shè)備的速率如上面的表達(dá)式所示,因此用戶設(shè)備20可以最佳地使用它的帶寬,服務(wù)器40的傳輸速率之和必須是一個(gè)接近帶寬的值。為了完全使用帶寬,服務(wù)器40的傳輸速率之和必須是一個(gè)大于或小于帶寬的值。例如,在一個(gè)低傳輸速率的環(huán)境下,例如一個(gè)調(diào)制解調(diào)器用戶的環(huán)境,指定一個(gè)傳輸速率最高的服務(wù)器40是合適的。
在用戶設(shè)備20已經(jīng)確定具有高傳輸速率的n個(gè)服務(wù)器40之后,它在S504確定從所確定的服務(wù)器40接收文件的哪一部分及大小。在這種情況下,最好從具有一個(gè)高傳輸速率的服務(wù)器40接收該文件的大部分,而從具有一個(gè)較低傳輸速率的服務(wù)器40接收該文件的小部分,這將用下面的表達(dá)式來(lái)表示。
fi=FviΣj=1nvj]]>fi分配給第i個(gè)設(shè)備的文件片段大小F將要接收的文件大小在一個(gè)日志文件中記錄在S504中確定的傳輸服務(wù)器40的列表和將由每個(gè)服務(wù)器40傳輸?shù)囊粋€(gè)文件片段的相關(guān)信息。在用戶設(shè)備20從多個(gè)服務(wù)器40接收一個(gè)文件的多個(gè)片段和將它們合并成文件時(shí)需要這個(gè)日志文件。
接著,用戶設(shè)備20把將要傳輸?shù)囊粋€(gè)文件的多個(gè)片段的相關(guān)信息通知給一個(gè)傳輸服務(wù)器40,并在S505請(qǐng)求一個(gè)文件傳輸。
用戶設(shè)備20接收該文件的多個(gè)片段,并在日志文件中記錄所傳輸?shù)男畔?。在這個(gè)處理過(guò)程中,另一個(gè)服務(wù)器40替代在傳輸一個(gè)文件時(shí)出現(xiàn)問(wèn)題的服務(wù)器40進(jìn)行傳輸,隨后將詳細(xì)解釋文件的傳輸。另外,從多個(gè)服務(wù)器傳輸?shù)奈募伪仨毷峭晃募钠危S后將解釋保證文件同一性的方法。
當(dāng)從多個(gè)服務(wù)器40的文件片段的傳輸已經(jīng)完成時(shí),用戶設(shè)備20在S507根據(jù)日志文件將這些文件片段合并成單個(gè)文件,并在S508通知文件管理系統(tǒng)30文件傳輸已經(jīng)完成。
圖7圖示一個(gè)日志文件的例子。圖7的日志文件已經(jīng)計(jì)劃從第三服務(wù)器40接收10000000字節(jié)文件的從1000001字節(jié)至50000000字節(jié)的多個(gè)片段。然而,它在傳輸文件時(shí)出現(xiàn)故障,導(dǎo)致文件只傳輸?shù)?000578字節(jié)。從另一個(gè)服務(wù)器40接收其余字節(jié)的文件作為“片段6”。用戶設(shè)備20根據(jù)該日志文件的傳輸信息將這些文件片段合并成原始文件。
在完成文件傳輸之后,當(dāng)所傳輸?shù)奈募鳛槠鋵S梦募?biāo)識(shí)符存儲(chǔ)在用戶設(shè)備20中,文件管理系統(tǒng)30記錄該用戶設(shè)備20存儲(chǔ)了具有該文件標(biāo)識(shí)符的文件。在由于修改、位置移動(dòng)和用戶對(duì)文件的破壞而不能確保所傳輸文件的同一性時(shí),可以將該文件從一個(gè)文件共享環(huán)境中刪除或者排除。
現(xiàn)在將詳細(xì)描述根據(jù)本發(fā)明的傳輸一個(gè)文件多個(gè)片段的圖5的步驟S506。
用戶設(shè)備20在從每個(gè)服務(wù)器接收一定大小的多個(gè)數(shù)據(jù)包時(shí)估計(jì)傳輸速率,從而在傳輸管理中利用該傳輸速率。服務(wù)器的傳輸速率不是恒定的,而是不斷改變的。因此,如果在文件片段傳輸過(guò)程中出現(xiàn)一個(gè)傳輸速率急劇降低或者傳輸不穩(wěn)定的服務(wù)器,則必須用另一個(gè)服務(wù)器替代該服務(wù)器。
為了替代該傳輸服務(wù)器,使用如圖6所示的候選服務(wù)器列表。根據(jù)該候選服務(wù)器列表確定另一個(gè)具有較高傳輸速率的服務(wù)器,然后傳輸該出現(xiàn)問(wèn)題的服務(wù)器尚未傳輸?shù)钠溆嗖糠?。替代故障服?wù)器的數(shù)量也可以是多個(gè)。
如果在候選服務(wù)器列表中沒(méi)有替代服務(wù)器,則用戶設(shè)備20通過(guò)請(qǐng)求從文件管理系統(tǒng)獲得候選服務(wù)器的更新列表,并在該列表內(nèi)搜索一個(gè)替代服務(wù)器。
下面,現(xiàn)在將描述一種保證由一個(gè)服務(wù)器傳輸?shù)囊粋€(gè)文件的多個(gè)片段是同一文件的多個(gè)片段的方法。
如上所述,為了通過(guò)多個(gè)設(shè)備傳輸由單個(gè)文件分割而來(lái)的多個(gè)文件,必須保證所有設(shè)備傳輸同一文件的多個(gè)片段。如果多個(gè)設(shè)備傳輸不同文件的多個(gè)片段,并且用戶設(shè)備將這些片段合并成一個(gè)文件,則這個(gè)文件并不是用戶所想要的文件,而是一個(gè)受損文件。
為了保證文件的同一性,在本發(fā)明中,一旦傳輸一個(gè)文件就在一個(gè)元文件上記錄原始文件的信息,并且一旦將該文件的片段傳輸給另一個(gè)用戶就比較將要傳輸文件的相關(guān)信息和在該元文件中存儲(chǔ)的信息。作為比較的結(jié)果,如果該文件與原始文件相同,則傳輸,如果不同,則通過(guò)從文件管理系統(tǒng)接收一個(gè)新標(biāo)識(shí)符將其管理為一個(gè)新文件??梢酝ㄟ^(guò)下述方法來(lái)判斷該文件是否與原始文件相同。
首先,如果該文件的大小與原始文件相同,則判斷它們是相同的。
其次,將該文件分割成m個(gè)片段,然后將每個(gè)片段某一部分的相關(guān)信息記錄在元文件中。當(dāng)將文件傳輸至另一個(gè)設(shè)備時(shí),比較將要傳輸?shù)脑撈文骋徊糠值南嚓P(guān)信息與在元文件上記錄的信息,判斷它們是否相同。此時(shí),可以根據(jù)文件管理系統(tǒng)的需要來(lái)調(diào)整所述某一部分的位置和大小。
第三,將該文件分割成m個(gè)片段,然后編碼(消息摘要)每個(gè)片段的內(nèi)容以記錄在元文件上。當(dāng)隨后將該文件傳輸給另一個(gè)設(shè)備時(shí),編碼將要傳輸?shù)钠?,然后與在元文件上記錄的編碼比較。如果編碼不同,則判斷出該文件與原始文件不同。因此,不傳輸該片段,并在整個(gè)系統(tǒng)內(nèi)將其管理為一個(gè)新文件。
如果在元文件上記錄所有的片段內(nèi)容之后執(zhí)行比較,則可以百分之百地保證文件的同一性。但是,在這種情況下,元文件的大小與原始文件相同,從而導(dǎo)致資源的浪費(fèi)。因此,將所傳輸片段的內(nèi)容轉(zhuǎn)換成一個(gè)適當(dāng)大小的編碼,然后記錄在元文件上。
將用下面的表達(dá)式來(lái)表示用于編碼一個(gè)文件的多個(gè)片段的方法。
codei=f(xi)f編碼函數(shù)xi第i個(gè)片段的內(nèi)容由文件管理系統(tǒng)根據(jù)它的目的來(lái)適當(dāng)?shù)剡x擇編碼函數(shù)和編碼的大小。作為最簡(jiǎn)單的編碼函數(shù),一個(gè)獲取內(nèi)容總和的函數(shù)將是一個(gè)很好的例子。在重點(diǎn)強(qiáng)調(diào)保證同一性的情況下,可以將一種內(nèi)容完全無(wú)損失的壓縮方法用作一個(gè)編碼函數(shù)。
圖8圖示通過(guò)圖5所示的處理方法一個(gè)用戶設(shè)備從多個(gè)服務(wù)器接收一個(gè)文件的多個(gè)片段并將它們合并成單個(gè)文件的狀態(tài)。
在圖8中,五個(gè)服務(wù)器81-85分別將一個(gè)文件的多個(gè)片段傳輸給用戶設(shè)備20。在這種情況下,傳輸速率高的服務(wù)器傳輸該文件的一個(gè)較大部分。在圖8中,傳輸最大部分的服務(wù)器83具有最高速率,而傳輸最小部分的服務(wù)器81具有最低速率。
以這種方式,通過(guò)利用協(xié)同工作的五個(gè)服務(wù)器81至85傳輸一個(gè)文件,用戶設(shè)備20可以最佳地使用其帶寬,從而顯著地提高文件傳輸速率。
雖然已經(jīng)針對(duì)接收由多個(gè)服務(wù)器分割單個(gè)完整文件所獲得的多個(gè)文件的方法圖示和描述了本發(fā)明,它還將適合于將一個(gè)文件分割并存儲(chǔ)在多個(gè)設(shè)備內(nèi)的情況。因此,根據(jù)本發(fā)明用于在傳輸一個(gè)文件時(shí)協(xié)同工作的方法和系統(tǒng)可以用作一種分割和存儲(chǔ)一個(gè)大容量文件的方法。在下文中,將解釋它的描述。
隨著一個(gè)文件大小的增加,可能出現(xiàn)一個(gè)設(shè)備不能存儲(chǔ)整個(gè)文件。在這種情況下,不能存儲(chǔ)整個(gè)文件的設(shè)備(稱作設(shè)備A)存儲(chǔ)該大容量文件的一個(gè)片段,其它的設(shè)備存儲(chǔ)其余的部分。而且,如果設(shè)備A希望查看該大容量文件的內(nèi)容,通過(guò)使用根據(jù)本發(fā)明的一個(gè)文件管理系統(tǒng)接收該文件的其它片段,它可以查看該文件,如同設(shè)備A本身存儲(chǔ)了整個(gè)文件。此時(shí),將分割并存儲(chǔ)在多個(gè)設(shè)備內(nèi)的該文件的多個(gè)片段視為一個(gè)普通文件。傳輸一個(gè)文件的處理過(guò)程也與參考圖5所描述的傳輸處理過(guò)程相同。
例如,如果設(shè)備A不能完全存儲(chǔ)某個(gè)大容量的文件,因此將該文件分割成一定大小的十個(gè)片段,所述大小易于處理以便存儲(chǔ)在包括設(shè)備A本身的多個(gè)設(shè)備內(nèi),設(shè)備A通過(guò)使用根據(jù)本發(fā)明的文件管理系統(tǒng)接收未由其自身存儲(chǔ)的該文件的其余部分來(lái)查看整個(gè)文件。該文件管理系統(tǒng)將這十個(gè)片段視為十個(gè)普通文件,并如圖5所示將它們傳輸給設(shè)備A。
此時(shí),文件共享系統(tǒng)可以將這十個(gè)獨(dú)立文件管理為一個(gè)文件的連續(xù)片段。此外,使用整個(gè)文件的設(shè)備A存儲(chǔ)該文件的一個(gè)片段,尤其是,它有效地存儲(chǔ)這些片段使其它設(shè)備具有該文件的較小部分。為了這個(gè)目的,設(shè)備A向文件管理系統(tǒng)請(qǐng)求與這十個(gè)文件有關(guān)的如圖6所示的一個(gè)候選服務(wù)器列表,發(fā)現(xiàn)擁有每個(gè)文件片段的服務(wù)器數(shù)量,并存儲(chǔ)由最少數(shù)量的服務(wù)器所擁有的文件片段。
至此,在將同一文件分割和存儲(chǔ)在多個(gè)服務(wù)器內(nèi)的假設(shè)下,已經(jīng)描述了從多個(gè)服務(wù)器接收一個(gè)文件的多個(gè)片段并將它們合并成單個(gè)文件(多對(duì)一傳輸)的方法。
然而,當(dāng)?shù)谝淮紊梢粋€(gè)文件時(shí),這個(gè)文件僅在一個(gè)設(shè)備內(nèi)存在。因此,在下文中將描述在將一個(gè)文件傳輸給多個(gè)設(shè)備(一對(duì)多傳輸)的情況下提高傳輸速率的兩種方法。
首先,前一種方法涉及如圖2所示的一個(gè)中央控制文件管理系統(tǒng)管理多個(gè)設(shè)備的速率,使這些設(shè)備以它們的傳輸速率為順序接收一個(gè)文件的情況。
換句話說(shuō),該文件管理系統(tǒng)獲取這些設(shè)備傳輸一個(gè)文件的傳輸速率,以傳輸速率為順序排列它們,并將這些設(shè)備的列表發(fā)送給存儲(chǔ)該文件的設(shè)備(服務(wù)器)和接收該文件的多個(gè)設(shè)備。參考這個(gè)列表,該服務(wù)器將該文件傳輸給最快的設(shè)備,最快的設(shè)備將該文件傳輸給第二快的設(shè)備,第二快的設(shè)備將該文件傳輸給第三快的設(shè)備。在傳輸過(guò)程中,當(dāng)最快的設(shè)備完成該文件的一個(gè)傳輸時(shí),它向服務(wù)器通知一個(gè)傳輸結(jié)束消息。然后,允許該最快的設(shè)備用作另一個(gè)服務(wù)器,并允許作為原始服務(wù)器的設(shè)備將該文件傳輸給第二快的設(shè)備。
現(xiàn)在將參考圖9通過(guò)一個(gè)例子來(lái)描述上述方法。假設(shè)當(dāng)前僅設(shè)備No.0具有一個(gè)特定文件,以傳輸速率為順序排列的設(shè)備No.1至No.100從設(shè)備No.0接收這個(gè)文件。執(zhí)行設(shè)備No.0直到設(shè)備No.100的轉(zhuǎn)發(fā),以使設(shè)備No.0將該文件傳輸給設(shè)備No.1,設(shè)備No.1將該文件傳輸給設(shè)備No.2,依此類推。當(dāng)在傳輸過(guò)程中完成一個(gè)到設(shè)備No.1的文件傳輸時(shí),允許設(shè)備No.1用作一個(gè)服務(wù)器,并允許設(shè)備No.0即原始服務(wù)器將該文件傳輸給設(shè)備No.2。以這種方式,隨著服務(wù)器數(shù)量繼續(xù)增加,這個(gè)傳輸逐漸變成多對(duì)一的傳輸,從而提高該文件的傳輸速率。
其次,后一種方法涉及一種文件管理系統(tǒng)并不必須管理設(shè)備速率的方法。如果請(qǐng)求用作服務(wù)器的設(shè)備(設(shè)備No.0)執(zhí)行文件傳輸?shù)脑O(shè)備數(shù)量超過(guò)一個(gè)預(yù)定容量,則設(shè)備No.0將它的文件傳輸集中于速率最高的設(shè)備(設(shè)備No.1),基本上不向其它設(shè)備傳輸一個(gè)文件,因此引起其它設(shè)備搜索另一個(gè)服務(wù)器。同時(shí),設(shè)備0向文件管理系統(tǒng)通知當(dāng)前執(zhí)行一個(gè)傳輸?shù)脑O(shè)備No.1將成為用作一個(gè)新服務(wù)器的設(shè)備。
當(dāng)其它設(shè)備請(qǐng)求用作服務(wù)器的設(shè)備列表時(shí),文件管理系統(tǒng)發(fā)送一個(gè)包含設(shè)備No.1的列表。一旦看到這個(gè)列表,其它設(shè)備就試圖從設(shè)備No.1接收一個(gè)文件。
因此,在從設(shè)備No.0接收一個(gè)文件的同時(shí),設(shè)備No.1在當(dāng)前已經(jīng)接收的數(shù)據(jù)范圍內(nèi)將一個(gè)文件傳輸給其它設(shè)備。如果存在過(guò)多的請(qǐng)求設(shè)備No.1執(zhí)行文件傳輸?shù)脑O(shè)備,則文件管理系統(tǒng)被告知由設(shè)備No.1正在向其傳輸文件的設(shè)備(設(shè)備No.2)是一個(gè)用作新服務(wù)器的設(shè)備。以這種方式,這個(gè)一對(duì)多的傳輸逐漸地變化成一個(gè)多對(duì)一的傳輸,從而提高傳輸速率。
雖然至此已經(jīng)參考下載一個(gè)文件的形式描述了本發(fā)明,它也可以適用于一個(gè)流傳輸。流傳輸是在不需要下載一個(gè)大容量文件的情況下在接收數(shù)據(jù)的同時(shí)再生視頻或音頻內(nèi)容從而欣賞視頻和音頻內(nèi)容的技術(shù)。同樣,在這種情況下,在下載一個(gè)文件時(shí)可以直接應(yīng)用本發(fā)明。
雖然已經(jīng)針對(duì)本發(fā)明的某些優(yōu)選實(shí)施例圖示和描述了本發(fā)明,本領(lǐng)域的普通技術(shù)人員將理解在不脫離權(quán)利要求書所定義的本發(fā)明的精神和范圍的情況下,可以在其中在形式和細(xì)節(jié)上進(jìn)行各種改變。
并不僅通過(guò)單個(gè)服務(wù)器將整個(gè)文件傳輸給多個(gè)用戶,而是通過(guò)接收由多個(gè)服務(wù)器分割單個(gè)文件所獲得的多個(gè)文件,根據(jù)本發(fā)明的文件傳輸系統(tǒng)和方法顯著地提高了文件傳輸速率。
此外,當(dāng)在傳輸一個(gè)文件的過(guò)程中在服務(wù)器之一內(nèi)出現(xiàn)任何問(wèn)題時(shí),使用服務(wù)器容錯(cuò)技術(shù)由另一個(gè)服務(wù)器替代該文件的傳輸。
此外,即使一個(gè)文件存在于單個(gè)設(shè)備中,而且其必須從該單個(gè)設(shè)備傳輸給多個(gè)設(shè)備,文件的傳輸速率也可以提高。
根據(jù)本發(fā)明的文件傳輸系統(tǒng)和方法可以用于使用在現(xiàn)有技術(shù)中難以使用的一個(gè)大容量文件,并且還可以用于數(shù)據(jù)流業(yè)務(wù)。
權(quán)利要求
1.一種在通過(guò)網(wǎng)絡(luò)連接的多個(gè)設(shè)備之間傳輸一個(gè)文件的方法,包括步驟選擇一個(gè)希望由一個(gè)用戶設(shè)備接收的文件;從一個(gè)管理文件傳輸?shù)奈募芾硐到y(tǒng)接收有關(guān)存儲(chǔ)該文件的多個(gè)設(shè)備的信息;在存儲(chǔ)該文件的設(shè)備之中確定一個(gè)或多個(gè)將用于傳輸文件的服務(wù)器;請(qǐng)求一個(gè)或多個(gè)服務(wù)器分別傳輸該文件的一個(gè)片段;從所述的一個(gè)或多個(gè)服務(wù)器分別接收所請(qǐng)求的文件片段;和將所傳輸?shù)奈募魏喜⒊蓡蝹€(gè)文件。
2.如權(quán)利要求1所述的方法,其中以設(shè)備的傳輸速率為順序從存儲(chǔ)該文件的多個(gè)設(shè)備中選擇一個(gè)或多個(gè)服務(wù)器。
3.如權(quán)利要求1所述的方法,其中一旦向一個(gè)或多個(gè)服務(wù)器請(qǐng)求一個(gè)文件片段,服務(wù)器的傳輸速率越高,則所請(qǐng)求的文件片段越大。
4.如權(quán)利要求1所述的方法,其中在分別從一個(gè)或多個(gè)服務(wù)器傳輸所請(qǐng)求的文件片段的情況下,將所傳輸片段的信息記錄在一個(gè)日志文件上。
5.如權(quán)利要求4所述的方法,其中用戶設(shè)備在將所傳輸文件的多個(gè)片段合并成單個(gè)文件時(shí)參考所述日志文件。
6.如權(quán)利要求1所述的方法,其中該文件傳輸方法還包括步驟在將該文件的多個(gè)片段合并成單個(gè)文件的步驟之后,將文件傳輸?shù)耐瓿赏ㄖo文件管理系統(tǒng)。
7.如權(quán)利要求1所述的方法,其中在從一個(gè)或多個(gè)服務(wù)器接收所請(qǐng)求的文件片段的步驟中,無(wú)論何時(shí)接收一定大小的多個(gè)數(shù)據(jù)包,都要檢測(cè)每個(gè)服務(wù)器的傳輸速率。
8.如權(quán)利要求7所述的方法,其中,如果存在一個(gè)傳輸速率低于一個(gè)預(yù)定值的服務(wù)器,則由另一個(gè)服務(wù)器替代該故障服務(wù)器。
9.如權(quán)利要求8所述的方法,如果沒(méi)有替代服務(wù)器,則再次接收存儲(chǔ)該文件的多個(gè)設(shè)備和這些設(shè)備的傳輸速率的信息,并根據(jù)該信息確定替代服務(wù)器。
10.如權(quán)利要求1所述的方法,其中該設(shè)備代表一個(gè)可用于數(shù)據(jù)通信的設(shè)備,例如個(gè)人計(jì)算機(jī)、工作站、小型計(jì)算機(jī)、大型計(jì)算機(jī)、筆記本電腦、PDA(個(gè)人數(shù)字助理)等等。
11.如權(quán)利要求1所述的方法,其中該網(wǎng)絡(luò)代表一個(gè)能夠互通的環(huán)境,例如有線因特網(wǎng)、無(wú)線因特網(wǎng)、LAN(局域網(wǎng))、內(nèi)部網(wǎng)和外部網(wǎng)。
12.如權(quán)利要求12所述的方法,其中希望接收的文件在存儲(chǔ)該文件的設(shè)備內(nèi)具有一個(gè)公共文件標(biāo)識(shí)符。
13.如權(quán)利要求1所述的方法,其中文件管理系統(tǒng)是通過(guò)網(wǎng)絡(luò)連接的多個(gè)設(shè)備之一。
14.如權(quán)利要求1所述的方法,其中文件管理系統(tǒng)被分割成通過(guò)網(wǎng)絡(luò)連接的多個(gè)設(shè)備。
15.如權(quán)利要求1所述的方法,其中存儲(chǔ)該文件的多個(gè)設(shè)備的信息包括這些設(shè)備的標(biāo)識(shí)符、位置和傳輸速率。
16.如權(quán)利要求1所述的方法,其中該文件傳輸方法進(jìn)一步包括用戶設(shè)備將合并文件的信息存儲(chǔ)在元文件內(nèi)的步驟。
17.如權(quán)利要求16所述的方法,其中當(dāng)將合并文件再次傳輸給其它設(shè)備時(shí),檢查該文件的信息與在元文件上記錄的信息是否相同。
18.如權(quán)利要求1所述的方法,其中所述傳輸包括下載和數(shù)據(jù)流技術(shù)。
19.一種調(diào)用文件的方法,應(yīng)用于在將單個(gè)文件分割并存儲(chǔ)在通過(guò)網(wǎng)絡(luò)連接的多個(gè)設(shè)備的情況下,包括步驟從一個(gè)管理文件傳輸?shù)奈募芾硐到y(tǒng)接收有關(guān)存儲(chǔ)該文件多個(gè)片段的設(shè)備的信息;在存儲(chǔ)該文件多個(gè)片段的多個(gè)設(shè)備之中確定將用于傳輸該文件的一個(gè)或多個(gè)服務(wù)器;從所確定的一個(gè)或多個(gè)服務(wù)器接收該文件的多個(gè)片段;和將所傳輸文件的多個(gè)片段合并成單個(gè)文件。
20.如權(quán)利要求19所述的方法,其中該文件的多個(gè)片段屬于同一文件。
21.一種將一個(gè)文件從一個(gè)設(shè)備傳輸給通過(guò)網(wǎng)絡(luò)連接的許多設(shè)備中的多個(gè)設(shè)備的方法,包括步驟所述的一個(gè)設(shè)備將該文件傳輸給所述的多個(gè)設(shè)備中最快的設(shè)備;以這樣的方式將該文件向下傳輸給最慢的設(shè)備,即已接收到該文件的最快的設(shè)備將該文件傳輸給所述多個(gè)設(shè)備中第二快的設(shè)備,已經(jīng)接收到該文件的第二快的設(shè)備將該文件傳輸給第三快的設(shè)備,和其中如果所述的一個(gè)設(shè)備完成了到所述的多個(gè)設(shè)備中一個(gè)設(shè)備的文件傳輸,則將該文件傳輸給所述的多個(gè)設(shè)備中的另一個(gè)設(shè)備。
22.一種將一個(gè)文件從一個(gè)設(shè)備傳輸給通過(guò)網(wǎng)絡(luò)連接的許多設(shè)備中的多個(gè)設(shè)備的方法,包括步驟所述的一個(gè)設(shè)備將該文件傳輸給所述的多個(gè)設(shè)備;和如果傳輸量超過(guò)一個(gè)預(yù)定量值,則所述的一個(gè)設(shè)備僅將該文件傳輸給所述的多個(gè)設(shè)備中最快的設(shè)備,從所述的一個(gè)設(shè)備接收該文件的,該最快的設(shè)備同時(shí)將該文件傳輸給所述的多個(gè)設(shè)備中的其它設(shè)備。
23.如權(quán)利要求21或22所述的方法,其中所述傳輸包括下載和數(shù)據(jù)流技術(shù)。
24.一種作為一個(gè)請(qǐng)求文件傳輸同一文件的方法,包括步驟將該文件分割成多個(gè)預(yù)定片段,并存儲(chǔ)每個(gè)片段一部分的信息;響應(yīng)于該文件的傳輸請(qǐng)求,將該文件分割成多個(gè)預(yù)定片段以提取每個(gè)片段所述部分的信息;比較所提取的信息與在元文件中存儲(chǔ)的信息;和如果作為比較結(jié)果它們是相同的,則傳輸該文件,如果不同,則將一個(gè)特定的文件標(biāo)識(shí)符提供給該文件。
25.一種作為請(qǐng)求文件傳輸同一文件的方法,包括步驟a)將該文件分割成多個(gè)預(yù)定片段,通過(guò)一個(gè)編碼函數(shù)編碼每個(gè)片段,并在元文件中存儲(chǔ)每個(gè)編碼;b)響應(yīng)于該文件的傳輸請(qǐng)求,將該文件分割成多個(gè)預(yù)定片段,并將每個(gè)片段編碼成一個(gè)編碼函數(shù);c)比較步驟b)中的編碼結(jié)果與在元文件中記錄的信息;d)如果作為比較結(jié)果它們是相同的,則傳輸該文件,如果不同,則將一個(gè)特定的文件標(biāo)識(shí)符提供給該文件。
全文摘要
本發(fā)明公開了一種在網(wǎng)絡(luò)環(huán)境下接收由多個(gè)服務(wù)器分割單個(gè)文件所獲得的多個(gè)文件的方法。根據(jù)本發(fā)明的方法包括步驟選擇一個(gè)由一個(gè)用戶設(shè)備希望接收的文件;從一個(gè)管理文件傳輸?shù)奈募芾硐到y(tǒng)接收有關(guān)存儲(chǔ)該文件的多個(gè)設(shè)備的信息;在存儲(chǔ)該文件的多個(gè)設(shè)備之中確定一個(gè)或多個(gè)將用于傳輸該文件的服務(wù)器;請(qǐng)求一個(gè)或多個(gè)服務(wù)器分別傳輸該文件的一部分;從所述的一個(gè)或多個(gè)服務(wù)器分別接收所請(qǐng)求的文件部分;然后,將所傳輸文件的多個(gè)部分合并成單個(gè)文件。該文件管理系統(tǒng)是一個(gè)管理文件傳輸?shù)南到y(tǒng),可以作為一個(gè)獨(dú)立的文件管理服務(wù)器存在或者分割成多個(gè)設(shè)備。根據(jù)本發(fā)明,通過(guò)接收分配給多個(gè)服務(wù)器的多個(gè)文件提高了傳輸速度。當(dāng)在傳輸一個(gè)文件的過(guò)程中,在多個(gè)服務(wù)器之一中出現(xiàn)任何問(wèn)題時(shí),使用服務(wù)器容錯(cuò)由另一個(gè)服務(wù)器代替?zhèn)鬏斣撐募?br>
文檔編號(hào)H04L29/08GK1494790SQ01823102
公開日2004年5月5日 申請(qǐng)日期2001年3月28日 優(yōu)先權(quán)日2001年3月28日
發(fā)明者樸泳燦 申請(qǐng)人:樸泳燦