專利名稱::分布式文件上傳、下載方法及其裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種文件上傳、下載方法及其裝置和系統(tǒng)。技術(shù)背景目前的在線傳輸系統(tǒng)有兩種方式1、單點(diǎn)上傳單點(diǎn)下載方式;2、單點(diǎn)上傳P2P下載方式。圖l所示的ftp文件傳輸系統(tǒng)(可以用ftp或者h(yuǎn)ttp協(xié)議來(lái)傳輸數(shù)據(jù),本發(fā)明中統(tǒng)稱為ftp)就是一種典型的單點(diǎn)上傳單點(diǎn)下載系統(tǒng)。這種系統(tǒng)目前主要是用于文件下載服務(wù)。這樣的服務(wù)在互連網(wǎng)上很常見(jiàn)。服務(wù)器上的文件由管理員通過(guò)專用通道放到服務(wù)器上,比如通過(guò)本地存儲(chǔ)接口(例如CDR0M、移動(dòng)硬盤(pán)等)、本地局域網(wǎng)或者其它專用上傳通道等。這時(shí)上傳文件往往都不是問(wèn)題。但單點(diǎn)下載模型很難應(yīng)付大量客戶端的海量數(shù)據(jù)下載。為此人們通常在各個(gè)城市部署多個(gè)服務(wù)器來(lái)分流客戶下載流量,如圖1中所示的服務(wù)器1和服務(wù)器2。通常此類分流是通過(guò)給用戶提供多個(gè)選擇的鏈接點(diǎn)來(lái)實(shí)現(xiàn),例如在下載頁(yè)面中給出一個(gè)鏈接列表,用戶從該鏈接列表中選擇提供下載的服務(wù)器。在以下載為主要目的應(yīng)用中,人們發(fā)明了P2P傳輸方法來(lái)取代ftp這類的單點(diǎn)文件下載方式。Bittorrent、Emule和迅雷等下載軟件都是這類下載方式的代表。在這些P2P系統(tǒng)中,要想獲得較快的下載速度,前提就是必需有多個(gè)用戶同時(shí)下載同一個(gè)文件,而這就要求該文件在很大的范圍內(nèi)全局共享。在新一代互聯(lián)網(wǎng)(又稱"web2.0")中,數(shù)據(jù)的來(lái)源發(fā)生了變化,服務(wù)器數(shù)據(jù)源不是由服務(wù)器管理者提供,而是來(lái)自客戶端。人們不只是單純地從互聯(lián)網(wǎng)上尋找下載的文件數(shù)據(jù),而是逐漸開(kāi)始把他們自己的數(shù)據(jù)上傳到互聯(lián)網(wǎng)上。雖然現(xiàn)在涌現(xiàn)出很多在線存儲(chǔ)服務(wù),如"網(wǎng)絡(luò)U盤(pán)"、大容量的郵件空間等。這些網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)均采用單點(diǎn)上傳的方式讓用戶上傳數(shù)據(jù)。用戶在上傳數(shù)據(jù)時(shí),僅連接到一個(gè)服務(wù)器上,然后采用ftp或http協(xié)議上傳輸文件,此類在線傳輸系統(tǒng)存在以下技術(shù)問(wèn)題。一、單點(diǎn)上傳本身存在的問(wèn)題。在用戶較多時(shí),用戶爭(zhēng)奪有限的服務(wù)器帶寬資源,使服務(wù)器成為嚴(yán)重的瓶頸,而客戶端的帶寬卻無(wú)法得到充分利用。以下舉一例子簡(jiǎn)要說(shuō)明該問(wèn)題。假設(shè)一個(gè)服務(wù)器有100Mbps帶寬,如果有1000個(gè)用戶在線,每個(gè)用戶的接入帶寬為500Kbps,那么每個(gè)用戶平均能夠得到的帶寬是100Kbps。在服務(wù)器可用帶寬不足時(shí),目前的方法就是增加服務(wù)器的數(shù)量或帶寬來(lái)提高數(shù)據(jù)傳輸率。如果同等級(jí)的服務(wù)器的數(shù)量增至3個(gè),以服務(wù)器1、2、3表示,每個(gè)服務(wù)器提供的帶寬仍為100Mbps,則現(xiàn)在總的服務(wù)器帶寬為300Mbps。在理想的情況下,如果1000個(gè)用戶平均分散到3個(gè)服務(wù)器上,那么每個(gè)用戶能夠得到的帶寬是300Mbps除以1000等于300Kbps。如果服務(wù)器2、3上的用戶完成了數(shù)據(jù)傳輸,而服務(wù)器1上的用戶還在繼續(xù)進(jìn)行數(shù)據(jù)傳輸。這時(shí)服務(wù)器2、3已經(jīng)空閑了,但是服務(wù)器1上的用戶卻不能使用服務(wù)器2、3的帶寬資源。服務(wù)器總帶寬占用率只有1/3,而服務(wù)器l已經(jīng)飽和,當(dāng)前活動(dòng)的用戶仍然只能使用300Kbps的帶寬。如果從總?cè)萘可蟻?lái)看,理論上現(xiàn)在服務(wù)器1上的每個(gè)用戶應(yīng)該得到約300Mbps除以三分之一的用戶數(shù)等于900Kbps的可用服務(wù)器帶寬。所以剩下的用戶應(yīng)該能夠以本地最大可用帶寬,即接入帶寬500Kbps的速率上傳數(shù)據(jù),但是單點(diǎn)上傳方式卻無(wú)法做到。而且此時(shí)如果有新的用戶加入服務(wù)器,由于新的用戶并不了解全局服務(wù)器的使用狀況,所以新的用戶可能選擇的還是己經(jīng)飽和的服務(wù)器l。這是因?yàn)樵趥鹘y(tǒng)的單點(diǎn)上傳系統(tǒng)中這種選擇是盲目的,很多時(shí)候是讓用戶自己選擇。二、單點(diǎn)上傳帶來(lái)的下載問(wèn)題。由于用戶將他的文件傳輸?shù)絾我坏姆?wù)器中,所以他只能從這個(gè)服務(wù)器下載數(shù)據(jù),這顯然不能最大限度地利用服務(wù)器和客戶端的資源。在此類在線傳輸系統(tǒng)中,有很多用戶的文件和數(shù)據(jù)并不是在很大的范圍內(nèi)共享,所以不可能被大量的用戶同時(shí)下載,這樣P2P多點(diǎn)下載方法就不能發(fā)揮作用,用戶獲取文件時(shí)的下載速度也退縮到單點(diǎn)下載系統(tǒng)的境地。
發(fā)明內(nèi)容本發(fā)明的主要目的在于,提供一種分布式文件上傳方法及其裝置和系統(tǒng),以方便用戶將數(shù)據(jù)上傳到服務(wù)器的在線存儲(chǔ)空間中。本發(fā)明的另一目的在于,提供一種分布式文件下載方法及其裝置和系統(tǒng),為用戶下載提供便利。本發(fā)明的再一目的在于,提供一種分布式文件傳輸系統(tǒng),為用戶上傳和下載提供便利。為達(dá)上述目的,本發(fā)明采用如下技術(shù)方案一種分布式文件上傳方法,其特征在于包括以下步驟al)服務(wù)器獲取步驟,用于與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務(wù)器列表中的服務(wù)器中;其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。作為本發(fā)明分布式文件上傳方法的一種改進(jìn),在所述步驟al)之后步驟a2)之前,還包括權(quán)值計(jì)算步驟,計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值,在所述步驟a2)根據(jù)權(quán)值計(jì)算結(jié)果,優(yōu)先發(fā)送所述文件分片至權(quán)值高的服務(wù)器中。作為本發(fā)明分布式文件上傳方法的進(jìn)一步改進(jìn),所述權(quán)值計(jì)算步驟中,定時(shí)計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值。作為本發(fā)明分布式文件上傳方法的再一改進(jìn),在所述權(quán)值計(jì)算步驟之后步驟a2)之前,還包括活動(dòng)服務(wù)器列表建立和更新步驟,根據(jù)定時(shí)計(jì)算的權(quán)值,按權(quán)值高低建立和更新所述活動(dòng)服務(wù)器列表,在所述步驟a2)中從該活動(dòng)服務(wù)器列表中優(yōu)選上傳文件分片至權(quán)值最大且可用的服務(wù)器中。該所述步驟a2)可具體包括以下步驟a21)從活動(dòng)服務(wù)器列表中選擇權(quán)值最大且可用的服務(wù)器,并從文件中選取一個(gè)文件分片上傳至該選擇的服務(wù)器中,在該選擇的服務(wù)器正在接收同一文件的文件分片時(shí),設(shè)定其狀態(tài)為不可用,在該選擇的服務(wù)器完成文件分片的接收后,設(shè)定其狀態(tài)為可用,更新所述文件分布表;a22)判斷所有文件分片是否傳輸完成,如果是,則執(zhí)行步驟a23),否則,執(zhí)行步驟a21);a23)將文件分布表上傳至所有存儲(chǔ)有文件分片的服務(wù)器中。其中,在所述步驟a2)之后,還包括a3)上傳驗(yàn)證步驟,用于驗(yàn)證上傳文件的正確性。其中,所述文件分片的上傳可采用平均分布的上傳方式或填鴨分布的上傳方式。一種分布式文件下載方法,包括以下步驟bl)服務(wù)器獲取步驟,與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;b2)數(shù)據(jù)下載步驟,從所述服務(wù)器列表中的服務(wù)器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構(gòu)為文件。作為本發(fā)明分布式文件下載方法的一種改進(jìn),在所述步驟b2)中,先測(cè)試所述服務(wù)器列表中的服務(wù)器的下載速度,選擇下載速度快的一個(gè)或多個(gè)服務(wù)器下載所述文件。一種分布式文件上傳裝置,包括服務(wù)器獲取模塊,用于與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;數(shù)據(jù)上傳模塊,用于將包括文件分片和文件分布表的文件上傳至所述服務(wù)器列表中的服務(wù)器中,其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。作為本發(fā)明分布式文件上傳裝置的一種改進(jìn),還包括權(quán)值計(jì)算模塊,用于定時(shí)計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值,所述數(shù)據(jù)上傳模塊獲取該權(quán)值的計(jì)算結(jié)果并優(yōu)先發(fā)送文件至權(quán)值高的服務(wù)器中。作為本發(fā)明分布式文件上傳裝置的又一改進(jìn),還包括活動(dòng)服務(wù)器列表建立模塊,用于根據(jù)權(quán)值計(jì)算結(jié)果,按權(quán)值高低建立一活動(dòng)服務(wù)器列表,所述數(shù)據(jù)上傳模塊獲取該活動(dòng)服務(wù)器列表并優(yōu)選發(fā)送所述文件分片至該活動(dòng)服務(wù)器列表中權(quán)值高的服務(wù)器中。一種分布式文件下載裝置,包括服務(wù)器獲取模塊,用于與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;數(shù)據(jù)下載模塊,用于從所述服務(wù)器列表中的服務(wù)器中下載包括文件分片和文件分布表的文件;文件重構(gòu)模塊,用于根據(jù)文件分布表將文件分片重構(gòu)為文件。作為本發(fā)明分布式文件下載裝置的一種改進(jìn),還包括下載速度測(cè)試模塊,用于測(cè)試所述服務(wù)器列表中的服務(wù)器下載速度,所述數(shù)據(jù)下載模塊選擇一個(gè)或多個(gè)下載速度快的服務(wù)器下載文件。一種分布式文件上傳系統(tǒng),包括-多個(gè)服務(wù)器,用于接收上傳的文件,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件上傳裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,并與服務(wù)器列表中的服務(wù)器建立連接并上傳所述文件。作為本發(fā)明分布式文件上傳系統(tǒng)的一種改進(jìn),所述目錄服務(wù)器包括存儲(chǔ)有服務(wù)器信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供上傳文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。一種分布式文件下載系統(tǒng),包括多個(gè)服務(wù)器,用于存儲(chǔ)上傳的文件;所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件下載裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,與服務(wù)器列表中的服務(wù)器建立連接并下載文件。作為本發(fā)明分布式文件下載系統(tǒng)的一種改進(jìn),所述目錄服務(wù)器包括存儲(chǔ)有所述多個(gè)服務(wù)器的信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供下載文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。一種分布式文件傳輸系統(tǒng),包括多個(gè)服務(wù)器,用于接收和存儲(chǔ)上傳的文件,并提供該文件的下載,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件傳輸裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,并與服務(wù)器列表中的服務(wù)器建立連接,以上傳或下載所述文件。作為本發(fā)明分布式文件傳輸系統(tǒng)的改進(jìn),所述目錄服務(wù)器包括存儲(chǔ)有服務(wù)器信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供上傳或下載文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。作為本發(fā)明分布式文件傳輸系統(tǒng)的又一改進(jìn),所述多個(gè)服務(wù)器還包括一文件分布表管理模塊,在獲取所述分布式文件傳輸裝置的請(qǐng)求后,判斷該請(qǐng)求類型,如果是上傳文件分布表,則存儲(chǔ)該文件分布表,如果是下載文件分布表,則提取對(duì)應(yīng)的文件分布表以提供下載。本發(fā)明中,用戶通過(guò)分布的方式將傳文件上傳到多個(gè)服務(wù)器上。該方案具有以下優(yōu)點(diǎn)1、服務(wù)器總帶寬容量能夠最好地分配給活動(dòng)的用戶,提高服務(wù)器的資源利用率。每個(gè)上傳裝置都能感知到服務(wù)器環(huán)境的變化,都能最及時(shí)地利用被其他上傳裝置釋放的服務(wù)器帶寬資源。2、用戶有更多的機(jī)會(huì)得到高的可用服務(wù)器帶寬;理想情況下每個(gè)上傳裝置可用的服務(wù)器帶寬資源總是(總服務(wù)器帶寬)/(總用戶數(shù))。3、服務(wù)器為用戶的分布式下載提供了便利。由于用戶上傳的文件很自然地分布在多個(gè)服務(wù)器上,所以當(dāng)用戶下載該文件的時(shí)候,無(wú)論是獨(dú)享下載還是共同下載都可以利用多點(diǎn)下載來(lái)提高下載速度。4、增加了容錯(cuò)性?,F(xiàn)有的單點(diǎn)上傳方案中,必然存在單點(diǎn)上傳失敗。用戶的文件所在的服務(wù)器上傳失敗后,用戶將不能下載數(shù)據(jù)。而本發(fā)明由于采用分布式上傳方案,其文件被分布在多個(gè)服務(wù)器上,即使單個(gè)的服務(wù)器上傳失效,其它的服務(wù)器仍能夠繼續(xù)完成文件的接收,從而增加數(shù)據(jù)傳輸?shù)娜蒎e(cuò)性,不會(huì)造成用戶數(shù)據(jù)無(wú)法訪問(wèn)。以下結(jié)合附圖及實(shí)施例進(jìn)一步說(shuō)明本發(fā)明。圖1為現(xiàn)有ftp文件傳輸系統(tǒng)結(jié)構(gòu)示意圖;圖2為本發(fā)明分布式文件上傳裝置結(jié)構(gòu)示意圖;圖3為本發(fā)明分布式文件下載裝置結(jié)構(gòu)示意圖;圖4為本發(fā)明采用平均分布方式的文件分片的分布圖;圖5為本發(fā)明采用填鴨分布方式的文件分片的分布圖;圖6為本發(fā)明分布式文件傳輸系統(tǒng)實(shí)施例。具體實(shí)施方式實(shí)施例一一種分布式文件上傳方法,包括以下步驟-al)服務(wù)器獲取步驟,與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務(wù)器列表中的服務(wù)器中;其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。每個(gè)文件通過(guò)文件分布表文件來(lái)記錄其在每個(gè)服務(wù)器上的分布情況。文件分布表保存在所有參與分布上傳的服務(wù)器上。文件分布表文件記錄文件中各個(gè)分片存放的服務(wù)器。例如可采用如下格式服務(wù)器ID:分片編號(hào);分片編號(hào);分片編號(hào);0000;……;服務(wù)器ID:分片編號(hào);分片編號(hào);分片編號(hào);0000;假設(shè)共有三個(gè)服務(wù)器并且用ip地址來(lái)定位,其ip地址分別為168.1.1.1,202.1.1.1,155.1.1.1。則對(duì)應(yīng)的文件分布表文件的內(nèi)容為168.1.1.1:1;7;0000;202.1.1.1:2;5;9;0000;155.1.1.1:3;4;6;8;10;0000;其中,在所述步驟al)之后步驟a2)之前,還包括權(quán)值計(jì)算步驟,定時(shí)計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值,在所述步驟a2)中根據(jù)權(quán)值計(jì)算結(jié)果,優(yōu)先發(fā)送所述文件分片至權(quán)值高的服務(wù)器中。該權(quán)值可以綜合平衡了連接速度、服務(wù)器所處的物理位置、網(wǎng)絡(luò)實(shí)際穩(wěn)定狀態(tài)等中的一個(gè)或多個(gè)值,以評(píng)定該服務(wù)器的提供上傳的服務(wù)質(zhì)量。其中,在所述權(quán)值計(jì)算步驟之后步驟a2)之前,還包括活動(dòng)服務(wù)器列表建立和更新步驟,根據(jù)定時(shí)計(jì)算的權(quán)值,按權(quán)值高低建立和更新所述活動(dòng)服務(wù)器列表,在所述步驟a2)中從該活動(dòng)服務(wù)器列表中優(yōu)選上傳文件分片至權(quán)值最大且可用的服務(wù)器中。其中,所述步驟a2)具體包括以下步驟a21)從活動(dòng)服務(wù)器列表中選擇權(quán)值最大且可用的服務(wù)器,并從文件中選取一個(gè)文件分片上傳至該選擇的服務(wù)器中,在該選擇的服務(wù)器正在接收同一文件的文件分片時(shí),設(shè)定其狀態(tài)為不可用,在該選擇的服務(wù)器完成文件分片的接收后,設(shè)定其狀態(tài)為可用,更新所述文件分布表;a22)判斷所有文件分片是否傳輸完成,如果是,則執(zhí)行步驟a23),否則,執(zhí)行步驟a21);a23)將文件分布表上傳至所有存儲(chǔ)有文件分片的服務(wù)器中。其中,在所述步驟a2)之后,還包括a3)上傳驗(yàn)證步驟,用于驗(yàn)證上傳文件的正確性。實(shí)施例二一種分布式文件下載方法,包括以下步驟-bl)服務(wù)器獲取步驟,與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;b2)數(shù)據(jù)下載步驟,從所述服務(wù)器列表中的服務(wù)器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構(gòu)為文件。其中,在所述步驟b2)中,先測(cè)試所述服務(wù)器列表中的服務(wù)器的下載速度,選擇下載速度快的一個(gè)或多個(gè)服務(wù)器下載文件。實(shí)施例三一種分布式文件上傳裝置,包括服務(wù)器獲取模塊,用于與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;權(quán)值計(jì)算模塊,用于定時(shí)計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值;活動(dòng)服務(wù)器列表建立模塊,用于根據(jù)權(quán)值計(jì)算結(jié)果,按權(quán)值高低建立一活動(dòng)服務(wù)器列表;數(shù)據(jù)上傳模塊,獲取該權(quán)值的計(jì)算結(jié)果,并優(yōu)選發(fā)送所述文件分片和文件分布表至該活動(dòng)服務(wù)器列表中權(quán)值高的服務(wù)器中。其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。實(shí)施例四一種分布式文件下載裝置,包括服務(wù)器獲取模塊,用于與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;下載速度測(cè)試模塊,用于測(cè)試所述服務(wù)器列表中的服務(wù)器下載速度,數(shù)據(jù)下載模塊,用于選擇一個(gè)或多個(gè)下載速度快的服務(wù)器,并從中下載包括文件分片和文件分布表的文件;文件重構(gòu)模塊,用于根據(jù)文件分布表將文件分片重構(gòu)為文件。實(shí)施例五一種分布式文件上傳系統(tǒng),包括多個(gè)服務(wù)器,用于接收上傳的文件,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)所述多個(gè)服務(wù)器信息的服務(wù)器列表;采用實(shí)施例三所述的分布式文件上傳裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,并與服務(wù)器列表中的服務(wù)器建立連接并上傳所述文件。實(shí)施例六一種分布式文件下載系統(tǒng),包括多個(gè)服務(wù)器,用于存儲(chǔ)上傳的文件;所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;采用實(shí)施例四所述的分布式文件下載裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,與服務(wù)器列表中的服務(wù)器建立連接并下載文件。實(shí)施例七如圖6所示,一種分布式文件傳輸系統(tǒng),包括多個(gè)服務(wù)器,用于接收和存儲(chǔ)上傳的文件,并提供該文件的下載,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件傳輸裝置(圖6中以客戶端表示),該分布式文件傳輸裝置可以是將實(shí)施例五與實(shí)施例六中的分布式文件上傳、下載裝置合并后形成。用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,并與服務(wù)器列表中的服務(wù)器建立連接,以上傳或下載所述文件。其中,所述目錄服務(wù)器包括存儲(chǔ)有服務(wù)器信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供上傳或下載文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。其中,所述多個(gè)服務(wù)器還包括一文件分布表管理模塊,在獲取所述分布式文件傳輸裝置的請(qǐng)求后,判斷該請(qǐng)求類型,如果是上傳文件分布表,則存儲(chǔ)該文件分布表,如果是下載文件分布表,則提取對(duì)應(yīng)的文件分布表以提供下載。上述實(shí)施例中涉及將文件分片上傳至多個(gè)服務(wù)器中的過(guò)程,可采用平均分布和填鴨分布兩種方式,以下分別具體描述其實(shí)施方式。1、平均分布方式平均分布方式是將文件分片平均地分散到可用的服務(wù)器上,向每個(gè)服務(wù)器上傳的數(shù)據(jù)量基本相同。假設(shè)上傳的文件的為長(zhǎng)度L,按照預(yù)定義的單元大小P分成N個(gè)文件分片。然后將這N個(gè)文件分片分布上傳到M個(gè)服務(wù)器上。則每個(gè)服務(wù)器上保存的分片最多相差1文件分片,當(dāng)文件長(zhǎng)度L遠(yuǎn)大于P時(shí),可以認(rèn)為每個(gè)服務(wù)器上的文件分片數(shù)相同。以下用一個(gè)實(shí)例來(lái)進(jìn)一步說(shuō)明。假設(shè)L=10MB,P=128KB,則N=L/P=10*1024/128=80,假設(shè)M=3。則服務(wù)器1上面上傳Pn^27個(gè)文件分片,服務(wù)器2上上傳Pn2:27個(gè)文件分片,服務(wù)器3上上傳Pn3=26個(gè)文件分片。每個(gè)服務(wù)器上的文件分片分布情況如圖4所示。用戶客戶端依次將固定大小的分片上傳到3個(gè)服務(wù)器,這樣每個(gè)服務(wù)器上傳的數(shù)據(jù)量幾乎相同。在用戶客戶端和各個(gè)服務(wù)器連接速度差別不大的情況下,這種方式很好。但是如果每條鏈路速度差別較大,那么其中的最慢的鏈路就會(huì)制約整個(gè)上傳過(guò)程。假設(shè)客戶端到服務(wù)器l、服務(wù)器2、服務(wù)器3的可用帶寬分別為Bl=16KBps、B2=32KBps、B3=64KBps。那么整個(gè)文件上傳完成需時(shí)max(Pnl*P/Bl,Pn2*P/B2,Pn3*P/B3)=max(27*128/16,27*128/32,26*128/64)=216s。在實(shí)際的應(yīng)用中,每條鏈路的可用帶寬都是動(dòng)態(tài)變化的,隨著用戶總量的變化,每個(gè)用戶在上傳過(guò)程中和每個(gè)服務(wù)器的鏈接上的可用帶寬都是動(dòng)態(tài)變化的。平均分布模型不能隨著這種變化作任何調(diào)整。2、填鴨分布方式為了適應(yīng)可用帶寬的動(dòng)態(tài)變化,本發(fā)明提出一種新的分布方式,取名填鴨分布方式。填鴨分布方式中,每個(gè)數(shù)據(jù)分片選擇的服務(wù)器鏈路沒(méi)有規(guī)律可循,采用自適應(yīng)的方式,完全由上傳時(shí)的每條活動(dòng)鏈路的可用帶寬決定。其基本過(guò)程與實(shí)施例一、實(shí)施例三中的從活動(dòng)服務(wù)器列表中選擇權(quán)值最大且可用的服務(wù)器進(jìn)行文件分片上傳過(guò)程類似,艮卩-c21)從活動(dòng)服務(wù)器列表中選擇連接速度最快且可用的服務(wù)器,從文件中選取一個(gè)文件分片上傳至該選擇的服務(wù)器中,在該選擇的服務(wù)器正在接收同一文件的文件分片時(shí),設(shè)定其狀態(tài)為不可用,在該選擇的服務(wù)器完成文件分片的接收后,設(shè)定其狀態(tài)為可用,更新所述文件分布表;c22)判斷所有文件分片是否傳輸完成,如果是,則結(jié)束文件分片上傳,否則,執(zhí)行步驟c21)。以下假設(shè)在某個(gè)短的時(shí)間段內(nèi)(16秒)中,3條鏈路的帶寬分別穩(wěn)定在8KBps,16KBps,32KBps。每個(gè)分片大小P-64KB,總共有10個(gè)分片。則采用填鴨分布模型后每個(gè)服務(wù)器上的分片分布情況如圖5所示。每一文件分片上傳的服務(wù)器及耗時(shí)如下表所示<table>tableseeoriginaldocumentpage14</column></row><table>整個(gè)文件傳輸完成時(shí)間max(64*2/8,64*3/16,64*5/32)=16s。如果采用平均分布模型則這個(gè)文件傳輸完成時(shí)間將是64*4/8=32s。本實(shí)施例中,由于文件以文件分片的方式上傳于多個(gè)服務(wù)器中,文件自然就分布的方式存放。因此,在用戶訪問(wèn)單個(gè)文件時(shí),可從多個(gè)服務(wù)器中下載文件,從而提高了下載速度。本實(shí)施例中提供的兩種不同的分布式上傳方式,對(duì)于下載的產(chǎn)生的影響不同。用戶下載數(shù)據(jù)時(shí)所處的網(wǎng)絡(luò)環(huán)境可能和上傳時(shí)的環(huán)境不同,可能在同一個(gè)地點(diǎn),可能在同一個(gè)城市的不同位置,也可能在不同的城巿或國(guó)家。那么上傳時(shí)和各個(gè)服務(wù)器連接的可用帶寬和下載時(shí)沒(méi)有必然聯(lián)系。如果上傳的時(shí)候采用填鴨分布模型選擇了最佳上傳方案,那么下載的時(shí)候可能遇到存放分片最多的服務(wù)器的連接的可用帶寬最少的情況,這樣將對(duì)下載產(chǎn)生負(fù)面影響。而采用平均分布模型上傳,這樣的負(fù)面影響就要少一些。所以需要根據(jù)用戶的類型作適當(dāng)選擇。此外,文件在劃分為文件分片時(shí),可以通過(guò)冗余的方式,提高下載的可靠性。例如,對(duì)于文件的某一文件分片,可以保存在多個(gè)服務(wù)器中,用戶下載時(shí),根據(jù)文件分布表獲知該文件分片所在的服務(wù)器,并選擇下載速度快的服務(wù)器下載該分件分片。上述實(shí)施例中,涉及與服務(wù)器進(jìn)行網(wǎng)絡(luò)通訊的部分,可采用UDP協(xié)議實(shí)現(xiàn)。涉及與數(shù)據(jù)分片和文件分布表文件的上傳和下載的部分可采用TCP協(xié)議實(shí)現(xiàn)。在windows平臺(tái)下,如果是用戶態(tài)可以采用WinSock接口(WindowsSockets,基于套接字模型的應(yīng)用程序接口)來(lái)開(kāi)發(fā)。如果是內(nèi)核態(tài)可以采用傳輸驅(qū)動(dòng)程序接口(TransportDriverInterface,TDI)來(lái)開(kāi)發(fā)。實(shí)施例中的其它部分均可以用例如0++語(yǔ)言等一般編程語(yǔ)言和操作系統(tǒng)接口開(kāi)發(fā)實(shí)現(xiàn)。在此需要特別說(shuō)明的是,本發(fā)明實(shí)施例中涉及的目錄服務(wù)器和多個(gè)服務(wù)器,可以通過(guò)編程語(yǔ)程序靈活地使所述目錄服務(wù)器實(shí)現(xiàn)每一所述服務(wù)器相同的功能,也可以使任一所述服務(wù)器同時(shí)也實(shí)現(xiàn)所述目錄服務(wù)器的功能。同時(shí)也可以使實(shí)施例中的所述分布式文件上傳裝置、下載裝置、傳輸裝置,采用現(xiàn)有技術(shù)中的客戶端通過(guò)程序設(shè)置靈活實(shí)施其中的部分或全部功能。以上所述的僅為本發(fā)明的較佳實(shí)施例,并非用來(lái)限定本發(fā)明的實(shí)施范圍,因此凡依本發(fā)明申請(qǐng)專利范圍所述的構(gòu)造、特征及精神所作的等同變化與修飾,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。權(quán)利要求1.一種分布式文件上傳方法,其特征在于包括以下步驟a1)服務(wù)器獲取步驟,用于與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務(wù)器列表中的服務(wù)器中;其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。2、根據(jù)權(quán)利要求1所述的分布式文件上傳方法,其特征在于在所述步驟al)之后步驟a2)之前,還包括權(quán)值計(jì)算步驟,計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值,在所述步驟a2)根據(jù)權(quán)值計(jì)算結(jié)果,優(yōu)先發(fā)送所述文件分片至權(quán)值高的服務(wù)器中。3、根據(jù)權(quán)利要求2所述的分布式文件上傳方法,其特征在于所述權(quán)值計(jì)算步驟中,定時(shí)計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值。4、根據(jù)權(quán)利要求3所述的分布式文件上傳方法,其特征在于在所述權(quán)值計(jì)算步驟之后步驟a2)之前,還包括活動(dòng)服務(wù)器列表建立和更新步驟,根據(jù)定時(shí)計(jì)算的權(quán)值,按權(quán)值高低建立和更新所述活動(dòng)服務(wù)器列表,在所述步驟a2)中從該活動(dòng)服務(wù)器列表中優(yōu)選上傳文件分片至權(quán)值最大且可用的服務(wù)器中。5、根據(jù)權(quán)利要求4所述的分布式文件上傳方法,其特征在于所述步驟a2)具體包括以下步驟a21)從活動(dòng)服務(wù)器列表中選擇權(quán)值最大且可用的服務(wù)器,并從文件中選取一個(gè)文件分片上傳至該選擇的服務(wù)器中,在該選擇的服務(wù)器正在接收同一文件的文件分片時(shí),設(shè)定其狀態(tài)為不可用,在該選擇的服務(wù)器完成文件分片的接收后,設(shè)定其狀態(tài)為可用,更新所述文件分布表;a22)判斷所有文件分片是否傳輸完成,如果是,則執(zhí)行步驟a23),否則,執(zhí)行步驟a21);a23)將文件分布表上傳至所有存儲(chǔ)有文件分片的服務(wù)器中。6、根據(jù)權(quán)利要求1所述的分布式文件上傳方法,其特征在于在所述步驟a2)之后,還包括a3)上傳驗(yàn)證步驟,用于驗(yàn)證上傳文件的正確性。7、根據(jù)權(quán)利要求1至6中任一所述的分布式文件上傳方法,其特征在于所述文件分片的上傳釆用平均分布的上傳方式或填鴨分布的上傳方式。8、一種分布式文件下載方法,其特征在于包括以下步驟bl)服務(wù)器獲取步驟,與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;b2)數(shù)據(jù)下載步驟,從所述服務(wù)器列表中的服務(wù)器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構(gòu)為文件。9、根據(jù)權(quán)利要求8所述的分布式文件下載方法,其特征在于在所述步驟b2)中,先測(cè)試所述服務(wù)器列表中的服務(wù)器的下載速度,選擇下載速度快的一個(gè)或多個(gè)服務(wù)器下載所述文件。10、一種分布式文件上傳裝置,其特征在于包括服務(wù)器獲取模塊,用于與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;數(shù)據(jù)上傳模塊,用于將包括文件分片和文件分布表的文件上傳至所述服務(wù)器列表中的服務(wù)器中,其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。11、根據(jù)權(quán)利要求10所述的分布式文件上傳裝置,其特征在于還包括權(quán)值計(jì)算模塊,用于定時(shí)計(jì)算服務(wù)器列表中的服務(wù)器的權(quán)值,所述數(shù)據(jù)上傳模塊獲取該權(quán)值的計(jì)算結(jié)果并優(yōu)先發(fā)送文件至權(quán)值高的服務(wù)器中。12、根據(jù)權(quán)利要求ll所述的分布式文件上傳裝置,其特征在于還包括活動(dòng)服務(wù)器列表建立模塊,用于根據(jù)權(quán)值計(jì)算結(jié)果,按權(quán)值高低建立一活動(dòng)服務(wù)器列表,所述數(shù)據(jù)上傳模塊獲取該活動(dòng)服務(wù)器列表并優(yōu)選發(fā)送所述文件分片至該活動(dòng)服務(wù)器列表中權(quán)值高的服務(wù)器中。13、一種分布式文件下載裝置,其特征在于包括服務(wù)器獲取模塊,用于與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;數(shù)據(jù)下載模塊,用于從所述服務(wù)器列表中的服務(wù)器中下載包括文件分片和文件分布表的文件;文件重構(gòu)模塊,用于根據(jù)文件分布表將文件分片重構(gòu)為文件。14、根據(jù)權(quán)利要求13所述的分布式文件下載裝置,其特征在于還包括下載速度測(cè)試模塊,用于測(cè)試所述服務(wù)器列表中的服務(wù)器下載速度,所述數(shù)據(jù)下載模塊選擇一個(gè)或多個(gè)下載速度快的服務(wù)器下載文件。15、一種分布式文件上傳系統(tǒng),其特征在于包括-多個(gè)服務(wù)器,用于接收上傳的文件,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件上傳裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,并與服務(wù)器列表中的服務(wù)器建立連接并上傳所述文件。16、根據(jù)權(quán)利要求15所述的分布式文件上傳系統(tǒng),其特征在于所述目錄服務(wù)器包括存儲(chǔ)有服務(wù)器信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供上傳文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。17、一種分布式文件下載系統(tǒng),其特征在于包括多個(gè)服務(wù)器,用于存儲(chǔ)上傳的文件;所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件下載裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,與服務(wù)器列表中的服務(wù)器建立連接并下載文件。18、根據(jù)權(quán)利要求17所述的分布式文件下載系統(tǒng),其特征在于所述目錄服務(wù)器包括存儲(chǔ)有所述多個(gè)服務(wù)器的信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供下載文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。19、一種分布式文件傳輸系統(tǒng),其特征在于包括多個(gè)服務(wù)器,用于接收和存儲(chǔ)上傳的文件,并提供該文件的下載,所述文件包括文件分片和文件分布表,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息;目錄服務(wù)器,存儲(chǔ)有所述多個(gè)服務(wù)器信息的服務(wù)器列表;分布式文件傳輸裝置,用于從所述目錄服務(wù)器中獲取所述服務(wù)器列表,并與服務(wù)器列表中的服務(wù)器建立連接,以上傳或下載所述文件。20、根據(jù)權(quán)利要求19所述的分布式文件傳輸系統(tǒng),其特征在于所述目錄服務(wù)器包括存儲(chǔ)有服務(wù)器信息的服務(wù)器庫(kù)和可用服務(wù)器列表管理模塊,所述可用服務(wù)器列表管理模塊驗(yàn)證服務(wù)器庫(kù)中服務(wù)器的狀態(tài),將可以提供上傳或下載文件服務(wù)的服務(wù)器信息加入所述服務(wù)器列表中。21、根據(jù)權(quán)利要求20所述的分布式文件傳輸系統(tǒng),其特征在于所述多個(gè)服務(wù)器還包括一文件分布表管理模塊,在獲取所述分布式文件傳輸裝置的請(qǐng)求后,判斷該請(qǐng)求類型,如果是上傳文件分布表,則存儲(chǔ)該文件分布表,如果是下載文件分布表,則提取對(duì)應(yīng)的文件分布表以提供下載。全文摘要一種分布式文件上傳、下載方法及其裝置和系統(tǒng),分布式文件上傳方法為a1)服務(wù)器獲取步驟,用于與目錄服務(wù)器建立連接,獲取可上傳文件的服務(wù)器列表;a2)數(shù)據(jù)上傳步驟,將包括文件分片和文件分布表的文件上傳至所述服務(wù)器列表中的服務(wù)器中;其中,所述文件分布表記錄有文件的各個(gè)文件分片的存儲(chǔ)信息。分布式文件下載方法為b1)服務(wù)器獲取步驟,與目錄服務(wù)器建立連接,獲取可下載文件的服務(wù)器列表;b2)數(shù)據(jù)下載步驟,從所述服務(wù)器列表中的服務(wù)器中下載包括文件分片和文件分布表的文件;b3)根據(jù)文件分布表將文件分片重構(gòu)為文件。用戶通過(guò)分布的方式將傳文件上傳到多個(gè)服務(wù)器上。服務(wù)器總帶寬容量能夠最好地分配給用戶,提高了資源的利用率。文檔編號(hào)H04L29/06GK101227460SQ20071003665公開(kāi)日2008年7月23日申請(qǐng)日期2007年1月19日優(yōu)先權(quán)日2007年1月19日發(fā)明者晨秦申請(qǐng)人:晨秦