專(zhuān)利名稱:一種網(wǎng)絡(luò)資源傳輸?shù)姆椒ê脱b置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及網(wǎng)絡(luò)資源傳輸?shù)姆椒ㄑb置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展以及網(wǎng)絡(luò)的普及,越來(lái)越多的用戶通過(guò)互聯(lián)網(wǎng)獲取資訊, 隨之而來(lái),在線學(xué)習(xí)也越來(lái)越普遍。在線學(xué)習(xí)也稱為是E-Learning,在教育領(lǐng)域建立互聯(lián)網(wǎng)平臺(tái),學(xué)生通過(guò)PC上網(wǎng),通過(guò)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)的一種全新的學(xué)習(xí)方式。當(dāng)然,這種學(xué)習(xí)方式離不開(kāi)由多媒體網(wǎng)絡(luò)學(xué)習(xí)資源、網(wǎng)上學(xué)習(xí)社區(qū)及網(wǎng)絡(luò)技術(shù)平臺(tái)構(gòu)成的全新的網(wǎng)絡(luò)學(xué)習(xí)環(huán)境。在網(wǎng)絡(luò)學(xué)習(xí)環(huán)境中,匯集了大量數(shù)據(jù)、檔案資料、程序、教學(xué)軟件、興趣討論組、新聞組等學(xué)習(xí)資源,形成了一個(gè)高度綜合集成的資源庫(kù)。大量的學(xué)習(xí)資源如何共享成為阻礙在線學(xué)習(xí)的發(fā)展,而當(dāng)把P2P技術(shù)引入在線學(xué)習(xí)以后,海量的數(shù)據(jù)便存放在P2P結(jié)點(diǎn)上。這樣如何高效搜索傳輸課程,便成為了一個(gè)問(wèn)題,傳統(tǒng)的課程資源的傳輸有如下形式
1)采用企業(yè)內(nèi)部自主組織課程,自己上傳課程到服務(wù)器,相同系統(tǒng)不同企業(yè)是無(wú)法共享課程的,傳輸只發(fā)生在企業(yè)系統(tǒng)內(nèi)部。2)或者是由課程服務(wù)商代為組織管理課程,以租賃的方式提供給各學(xué)習(xí)機(jī)構(gòu),根據(jù)付費(fèi)情況去學(xué)習(xí)服務(wù)商所提供的課程,傳輸發(fā)生在服務(wù)商的系統(tǒng)內(nèi)部。由于上述情況基本采用集中式且服務(wù)器分布較為簡(jiǎn)單,所以課程的傳輸就是對(duì)總服務(wù)器進(jìn)查詢,得到文件路徑,然后進(jìn)行學(xué)習(xí),不同的系統(tǒng)間的課程資源不能共享、交流。課程傳輸不準(zhǔn)確,不能均衡服務(wù)器集群壓力。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中所存在的諸多的問(wèn)題,本發(fā)明實(shí)施例提出了一種網(wǎng)絡(luò)資源傳輸?shù)姆椒ê脱b置。所述技術(shù)方案如下
本發(fā)明實(shí)施例提出了一種網(wǎng)絡(luò)資源傳輸?shù)姆椒ǎ?獲取網(wǎng)絡(luò)資源的編碼深度;
獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度; 根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼; 按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。本發(fā)明實(shí)施例還提出了一種網(wǎng)絡(luò)資源傳輸?shù)难b置,包括 編碼深度獲取模塊,用于獲取網(wǎng)絡(luò)資源的編碼深度;
編碼寬度獲取模塊,獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度;
編碼模塊,用于根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼;
傳輸模塊,用于按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。
本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是通過(guò)對(duì)網(wǎng)絡(luò)資源各個(gè)編碼深度下的文件夾、文件以及塊進(jìn)行編碼,使得傳輸過(guò)程中可以準(zhǔn)確定位到對(duì)應(yīng)的具體信息,保證網(wǎng)絡(luò)傳輸?shù)臏?zhǔn)確性,同時(shí)實(shí)現(xiàn)斷點(diǎn)續(xù)傳,減少服務(wù)器的壓力。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面所列附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明第一實(shí)施例的流程示意圖。圖2為本發(fā)明第二實(shí)施例的流程示意圖。圖3為本發(fā)明第三實(shí)施例的流程示意圖。圖4為本發(fā)明第三實(shí)施例的示例圖。圖5為本發(fā)明第四實(shí)施例的流程示意圖。圖6為本發(fā)明第四實(shí)施例的示例圖。圖7為本發(fā)明第六實(shí)施例的流程示意圖。圖8為本發(fā)明第六實(shí)施例的示例圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明實(shí)施例的設(shè)計(jì)思路是、獲取網(wǎng)絡(luò)資源的編碼深度;獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度;根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼;按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。本發(fā)明實(shí)施例通過(guò)對(duì)網(wǎng)絡(luò)資源各個(gè)編碼深度下的文件夾、文件以及塊進(jìn)行編碼,使得傳輸過(guò)程中可以準(zhǔn)確定位到對(duì)應(yīng)的具體信息,保證網(wǎng)絡(luò)傳輸?shù)臏?zhǔn)確性,同時(shí)實(shí)現(xiàn)斷點(diǎn)續(xù)傳,減少服務(wù)器的壓力。實(shí)施例1
本發(fā)明第一實(shí)施例提出了一種網(wǎng)絡(luò)資源傳輸方法,其流程如圖1所示,包括 步驟101、獲取網(wǎng)絡(luò)資源的編碼深度;
步驟102、獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度;
具體的,網(wǎng)絡(luò)資源的結(jié)點(diǎn)包括但不限于文件夾、文件和大塊和小塊。文件夾中包括若干文件;所述若干可以為N個(gè),N為大于等于1的自然數(shù);一個(gè)文件內(nèi)部連續(xù)的按一定大小進(jìn)行分割而成的大塊。將一個(gè)大塊內(nèi)部連續(xù)的按一定大小進(jìn)行分割而成的小塊。優(yōu)選的所述編碼深度會(huì)根據(jù)網(wǎng)絡(luò)資源的結(jié)構(gòu)的變化而變化,深度不定。其變動(dòng)主要是文件夾部分,當(dāng)網(wǎng)絡(luò)資源嵌套越深時(shí),其編碼深度越深。步驟103、根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼;
步驟104、按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。
具體的傳輸包括但不限于客戶端/服務(wù)器模式(C/S)和點(diǎn)對(duì)點(diǎn)傳輸模式(P2P)。如果是C/S模式,具體包括
按文件取,以文件為單元向服務(wù)端發(fā)出請(qǐng)求,服務(wù)端發(fā)送文件給終端。按大塊取,以大塊集合為單元向服務(wù)端發(fā)出請(qǐng)求,服務(wù)端發(fā)送大塊集合給終端。按小塊取,以小塊集合為單元向服務(wù)端發(fā)出請(qǐng)求,服務(wù)端發(fā)送小塊集合給終端。如果是P2P模式,具體包括
1)按文件取,以文件為單元向另一個(gè)終端發(fā)出請(qǐng)求,另一個(gè)終端發(fā)送文件給終端。2)按大塊取,以大塊集合為單元向另一個(gè)終端發(fā)出請(qǐng)求,另一個(gè)終端發(fā)送大塊給終端。3)按小塊取,以小塊集合為單元向另一個(gè)終端發(fā)出請(qǐng)求,另一個(gè)終端發(fā)送小塊給
客戶端。所述網(wǎng)絡(luò)資源包括但不限于文本文件、多媒體文件、應(yīng)用程序和課件文件等。后續(xù)的實(shí)施例將會(huì)以課件文件為例進(jìn)行說(shuō)明。本發(fā)明實(shí)施例通過(guò)對(duì)網(wǎng)絡(luò)資源各個(gè)編碼深度下的文件夾、文件以及塊進(jìn)行編碼, 使得傳輸過(guò)程中可以準(zhǔn)確定位到對(duì)應(yīng)的具體信息,保證網(wǎng)絡(luò)傳輸?shù)臏?zhǔn)確性,同時(shí)實(shí)現(xiàn)斷點(diǎn)續(xù)傳,減少服務(wù)器的壓力。比如當(dāng)終端需要一個(gè)課件文件時(shí),就會(huì)以課件文件為單位發(fā)送請(qǐng)求,服務(wù)器或其它終端收到請(qǐng)求后,發(fā)送該課件文件,當(dāng)終端校驗(yàn)數(shù)據(jù)時(shí),發(fā)現(xiàn)某一文件,大塊或小塊未收到或數(shù)據(jù)錯(cuò)誤,就會(huì)以文件,大塊或小塊為單位發(fā)出請(qǐng)求,如此重復(fù),直到全部數(shù)據(jù)接收完整為止。優(yōu)選的,可以在傳輸過(guò)程中,利用壓縮算法對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行壓縮,以便減少帶
覓ο本領(lǐng)域普通技術(shù)人員可知,在接收到網(wǎng)絡(luò)資源的各個(gè)節(jié)點(diǎn)之后,按照網(wǎng)絡(luò)資源的編碼深度,可以重新生成完整的網(wǎng)絡(luò)資源,實(shí)現(xiàn)網(wǎng)絡(luò)資源的傳輸。對(duì)于課件文件而言,可以用于在線學(xué)習(xí),能夠方便用戶精準(zhǔn)的定位某一個(gè)具體的課件信息。優(yōu)選的,步驟101之前,還包括
接收網(wǎng)絡(luò)資源的協(xié)議頭,根據(jù)所述協(xié)議頭獲取網(wǎng)絡(luò)資源的編碼深度; 在傳輸時(shí)前,對(duì)網(wǎng)絡(luò)資源添加傳輸協(xié)議頭,可以表明傳輸?shù)木唧w內(nèi)容,也可表明傳輸?shù)膮f(xié)議類(lèi)型。優(yōu)選的將協(xié)議頭做成一個(gè)發(fā)送任務(wù),采用TCP模式進(jìn)行傳輸,保證該協(xié)議頭能夠完整的傳輸?shù)綄?duì)端。對(duì)端獲取該發(fā)送任務(wù)后,即可了解到即將傳輸?shù)膬?nèi)容以及傳輸?shù)膮f(xié)議類(lèi)型、以及編碼深度。實(shí)施例2
本發(fā)明第二實(shí)施例提出了一種網(wǎng)絡(luò)傳輸方法,其流程如圖2所示,步驟102具體包括 步驟201、獲取課件文件的編碼深度;
所述編碼深度隨課件文件的結(jié)構(gòu)變化而變化,級(jí)數(shù)不定。其變動(dòng)的主要是文件夾部份, 當(dāng)課件文件夾嵌套越深時(shí),其編碼深度越深。需要明確的,如果課件文件沒(méi)有文件夾,則所述編碼深度不包括文件夾級(jí)別,僅為3級(jí)。如果有文件夾,則編碼深度為4級(jí)。步驟202、獲取所述課件文件每個(gè)編碼深度下的節(jié)點(diǎn)個(gè)數(shù)得到編碼寬度,根據(jù)所述編碼寬度對(duì)所述課件文件的節(jié)點(diǎn)進(jìn)行編碼;
具體的,獲取課件文件的編碼深度,對(duì)課件文件的每個(gè)編碼深度進(jìn)行逐層編碼,在課件文件的同一編碼深度下,對(duì)節(jié)點(diǎn)從1開(kāi)始遞增,當(dāng)?shù)竭_(dá)最后一個(gè)節(jié)點(diǎn)時(shí),其編碼為編碼寬度;回溯之前的節(jié)點(diǎn),并用0填充形成等長(zhǎng)寬度,即完成該編碼深度下對(duì)節(jié)點(diǎn)的編碼。所述每個(gè)編碼深度下的編碼寬度是指同一編碼深度下文件夾或者文件或大塊或小塊的個(gè)數(shù),也就是節(jié)點(diǎn)的個(gè)數(shù)。在同一編碼深度下,對(duì)全部節(jié)點(diǎn)進(jìn)行排序編號(hào),編號(hào)從1 開(kāi)始,最后一個(gè)節(jié)點(diǎn)的編號(hào)長(zhǎng)度,就是節(jié)點(diǎn)的個(gè)數(shù),也就是編碼寬度。為了保證各個(gè)階段的寬度一致,不足寬度的用0填充,比如001表示寬度為3,序號(hào)為1,由于不足3位,所以在1 前面填充兩個(gè)0 ;同時(shí)也可以推到出,此編碼寬度下節(jié)點(diǎn)個(gè)數(shù)超過(guò)100個(gè),最多為998個(gè)。比如
1 I 01代表某課件第一個(gè)文件夾。1 I 01 I 001 I 02 I 01 I 01 代表一個(gè)小塊。其編碼深度為5級(jí),分為文件夾、文件、大塊和小塊。一般文件夾有多級(jí),而文件、 大塊和小塊分別都只有1級(jí)。小塊所在位置為01文件夾下的001文件夾中第02個(gè)文件的第01個(gè)大塊中的第01個(gè)小塊。大塊最多有10個(gè),文件最多有10個(gè)。第二層文件夾最多有998個(gè),最少有100個(gè)。實(shí)施例3
本發(fā)明第三實(shí)施例提出了一種網(wǎng)絡(luò)傳輸方法,其流程如圖3所示,步驟102具體包括 步驟301、獲取課件文件的編碼深度;
所述編碼深度隨課件文件的結(jié)構(gòu)變化而變化,級(jí)數(shù)不定。其變動(dòng)的主要是文件夾部份, 當(dāng)課件文件夾嵌套越深時(shí),其編碼深度越深。需要明確的,如果課件文件沒(méi)有文件夾,則所述編碼深度不包括文件夾級(jí)別,僅為 3級(jí)。如果有文件夾,則編碼深度為4級(jí)。步驟302、根據(jù)所述課件文件的編碼深度,形成樹(shù)形結(jié)構(gòu),得到所述樹(shù)形結(jié)構(gòu)的每個(gè)層級(jí)的編碼寬度;
步驟303、根據(jù)所述編碼寬度,逐層對(duì)各個(gè)樹(shù)形結(jié)構(gòu)的層級(jí)的節(jié)點(diǎn)進(jìn)行編碼。具體的,對(duì)同一層級(jí)從1開(kāi)始遞增,當(dāng)達(dá)到最后一個(gè)編碼時(shí),得到編碼寬度,并回溯其他節(jié)點(diǎn),為了形成等長(zhǎng)寬度,不足寬度的部分用0填充。當(dāng)切換到其他層級(jí)時(shí),又從1 開(kāi)始遞增。示例如圖4所示
假設(shè)圖4是課件邏輯樹(shù),現(xiàn)在需要對(duì)它進(jìn)行編碼; 1,首先課件根節(jié)點(diǎn)只有一個(gè),所以編碼為1。2,從左到右遍歷根節(jié)點(diǎn)1的子節(jié)點(diǎn),得到1,2···,50個(gè)編號(hào),說(shuō)明根節(jié)點(diǎn)1下有50 個(gè)子節(jié)點(diǎn)。需要使用兩位數(shù)字才能表示完整。所以可得此級(jí)的編碼寬度為2。3,回溯全部該級(jí)節(jié)點(diǎn),不足兩位的用0填充,得到01,02···。50,并在之前加上父節(jié)點(diǎn)編碼1,最終形成完整的編碼101,102··· 150。 4,重復(fù)以上動(dòng)作,最終完成對(duì)整棵樹(shù)進(jìn)行編碼。 不論是課件文件,文件夾,文件,大塊,小塊都是樹(shù)上的一個(gè)節(jié)點(diǎn),樹(shù)的建立有利于課件在終端的重新還原。其具體的每級(jí)編碼數(shù)字代表的意義,是根據(jù)課件文件掃描時(shí)程序設(shè)定的,文件夾及文件節(jié)點(diǎn)的先后次序主要是依據(jù)名稱排列,而大小塊節(jié)點(diǎn)的先后則是依據(jù)它們的相對(duì)偏移。相對(duì)初始偏移越大,則編號(hào)越大。上述編碼邏輯的好處在于對(duì)節(jié)點(diǎn)進(jìn)行先序排列,加快檢索速度。實(shí)施例4
本發(fā)明第三實(shí)施例提出了一種網(wǎng)絡(luò)傳輸方法,其流程如圖5所示,包括 步驟501 獲取課件文件的編碼深度,生成樹(shù)形結(jié)構(gòu);
所述編碼深度隨課件文件的結(jié)構(gòu)變化而變化,級(jí)數(shù)不定。其變動(dòng)的主要是文件夾部份, 當(dāng)課件文件夾嵌套越深時(shí),其編碼深度越深。需要明確的,如果課件文件沒(méi)有文件夾,則所述編碼深度不包括文件夾級(jí)別,僅為 3級(jí)。如果有文件夾,則編碼深度為4級(jí)。步驟502、根據(jù)所述樹(shù)形結(jié)構(gòu)最低層節(jié)點(diǎn)的數(shù)據(jù)內(nèi)容,獲取該節(jié)點(diǎn)的哈希值; 一般小塊是最低層節(jié)點(diǎn),根據(jù)小塊的數(shù)據(jù)內(nèi)容獲取其哈希值。步驟503、從低層級(jí)到高層級(jí)依次遍歷,每層級(jí)節(jié)點(diǎn)都對(duì)其下級(jí)節(jié)點(diǎn)的哈希值匯總,再取哈希值;
步驟504、判斷節(jié)點(diǎn)為課件節(jié)點(diǎn)為是時(shí),所述課件節(jié)點(diǎn)的哈希值為所述課件哈希值。每個(gè)課件只有1個(gè)課件節(jié)點(diǎn),為最頂層的樹(shù)形結(jié)構(gòu)的節(jié)點(diǎn)。本實(shí)施例可謂可單獨(dú)實(shí)施,也可以作為第一實(shí)施例的優(yōu)選方案。將各個(gè)節(jié)點(diǎn)的哈希值作為各個(gè)節(jié)點(diǎn)的編碼,也就是文件夾、文件、大塊、小塊的哈希值作為其編碼。然后為了保證寬度統(tǒng)一,通過(guò)填補(bǔ)0的方式進(jìn)行調(diào)整。優(yōu)選的,課件文件的哈希值是根據(jù)各個(gè)小塊以及劃分順序得到的,其哈希值一致, 則必然課件內(nèi)容一致。因此,可以通過(guò)該哈希值來(lái)準(zhǔn)確定位對(duì)應(yīng)的課件文件,提高了網(wǎng)絡(luò)定位的準(zhǔn)確性。如圖6所示,例如
1,對(duì)節(jié)點(diǎn) 1111 進(jìn)行運(yùn)算得到散列值33BBEC8556E03F85B27D90C18A2C38256B82E1D1 2,對(duì)節(jié)點(diǎn) 1112 進(jìn)行運(yùn)算得到散列值33BBEC8556E03F85B27D90C18A2C38256B82E1D2 3,將1111與1112的散列值疊加再進(jìn)行散列運(yùn)算,便得到節(jié)點(diǎn)111的散列值 4,以此類(lèi)推,父級(jí)散列基于子級(jí)的散列。最終得到根節(jié)點(diǎn)散列,也就是課件的散列,該散列與整個(gè)課件結(jié)構(gòu)相對(duì)應(yīng),只要課件任一部分發(fā)生變動(dòng),都會(huì)影響散列值。所以散列值唯一代表著課件。5,當(dāng)終端接收到1112的數(shù)據(jù)時(shí),也會(huì)對(duì)相同的散列算法計(jì)算出散列,如果計(jì)算值與課件信息不一致則重傳1112。6,當(dāng)終端接收到111的數(shù)據(jù)后,校驗(yàn)得出數(shù)據(jù)錯(cuò)誤,則分別檢驗(yàn)1111和1112,從而定位到最小的分支,而不用重傳整個(gè)111提高了效率。7,為了減少碰撞機(jī)率,采用了 shal算法進(jìn)行散列運(yùn)算(相對(duì)于md5散列算法,較短)。由于掃描規(guī)則是固定的,除了小塊節(jié)點(diǎn)是對(duì)內(nèi)容進(jìn)行散列外,其它節(jié)點(diǎn)都是依據(jù)子節(jié)點(diǎn)的散列值疊加再求散列,方向上都是從樹(shù)上從左到右將子進(jìn)行疊加,所以對(duì)同一課件求多次散列值都是一樣的??梢员WC傳輸?shù)耐暾浴?br>
8
優(yōu)選的,在實(shí)施例1-4實(shí)施之前,還可以判斷課件文件是本地課程還是云課程。具體的獲得課件文件的編碼深度同時(shí),還可以獲取課件文件的存儲(chǔ)參數(shù),所述參數(shù)標(biāo)明該課件文件是在云中心還是在本地課程。所謂的云課程是指由供應(yīng)商發(fā)布課件到新為課件云中心,可以訂閱到本地,并利用終端進(jìn)行學(xué)習(xí)的課件。它是云存儲(chǔ)一種方式,課件被加密放置在各個(gè)終端和服務(wù)器上,當(dāng)終端學(xué)習(xí)需要數(shù)據(jù)時(shí),通過(guò)云中心可以定位到具體的服務(wù)器,再由服務(wù)器協(xié)調(diào)進(jìn)行p2p傳輸或者中轉(zhuǎn)傳輸。如果課件文件是在本地,由終端和系統(tǒng)進(jìn)行協(xié)商,確定課件文件所在服務(wù)器進(jìn)行傳輸。如果課件文件在云中心,則通過(guò)云中心先定位到具體的學(xué)習(xí)系統(tǒng),然后定位到課件文件所在的服務(wù)器。所述云中心在課件文件上傳審核通過(guò)后進(jìn)行歸類(lèi)操作,有利于檢索和定位。所述歸類(lèi)包括但不限于按照供應(yīng)商名稱、課件名、點(diǎn)擊率、最新最熱和推薦課件進(jìn)行歸類(lèi),以便于檢索。所述服務(wù)器可以為P2P服務(wù)器,也可以為普通的存儲(chǔ)服務(wù)器。實(shí)施例5
本發(fā)明第五實(shí)施例提出了一種網(wǎng)絡(luò)傳輸方法,具體應(yīng)用的P2P傳輸時(shí),所述步驟104, 還包括
步驟105、按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,P2P服務(wù)器根據(jù)其他P2P終端的所持有節(jié)點(diǎn)的情況,按照優(yōu)先級(jí)因子,對(duì)網(wǎng)絡(luò)資源進(jìn)行傳輸。所述優(yōu)先級(jí)因子的判斷緯度有
1,終端的帶寬權(quán)重如果帶寬權(quán)重越大則優(yōu)先級(jí)越大
2,終端的服務(wù)數(shù)權(quán)重如果服務(wù)數(shù)越多的話,優(yōu)先級(jí)會(huì)下降,主要為了降低負(fù)荷。3,終端的在線時(shí)間權(quán)重在線時(shí)間越長(zhǎng),代表它下段時(shí)間在線機(jī)率越大,所以優(yōu)級(jí)越大。4,終端的NAT類(lèi)型如果NAT是完全端口,或無(wú)NAT,即可穿透型的,優(yōu)先級(jí)越大, 否則優(yōu)先級(jí)較低或?yàn)?,即不能提供服務(wù)。5,播放優(yōu)先級(jí)如果是用戶當(dāng)前要播放的內(nèi)容,則該節(jié)點(diǎn)傳輸?shù)膬?yōu)先級(jí)最大,優(yōu)選服務(wù)器中轉(zhuǎn)為方式進(jìn)行傳輸。因?yàn)镻2P傳輸不穩(wěn)定,通過(guò)服務(wù)器將其放入優(yōu)先級(jí)最高的隊(duì)列,同時(shí)終端接收完成后,按照最高優(yōu)先級(jí)處理寫(xiě)入。在實(shí)際的運(yùn)算中,根據(jù)不同的權(quán)重進(jìn)行疊加之后產(chǎn)生的優(yōu)先級(jí)因子,就可以對(duì)可能為候選數(shù)據(jù)源做優(yōu)先排序形成資源隊(duì)列,最優(yōu)質(zhì)的節(jié)點(diǎn)排在最前面。隨著時(shí)間及網(wǎng)絡(luò)環(huán)境的變化。此隊(duì)列可能會(huì)發(fā)生變動(dòng)。終端根據(jù)此隊(duì)列。做相應(yīng)的調(diào)整。以便可以最快的取到需要數(shù)據(jù)。優(yōu)選的,步驟104還包括
按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,依據(jù)網(wǎng)絡(luò)傳輸流量進(jìn)行調(diào)整,對(duì)網(wǎng)絡(luò)資源進(jìn)行傳輸。當(dāng)終端的下行速度慢時(shí),服務(wù)器也要感知并相應(yīng)調(diào)整發(fā)送速度,確保服務(wù)器不會(huì)造成擁塞,服務(wù)器具有服務(wù)數(shù)量上限,根據(jù)并發(fā)數(shù)發(fā)攤流量,保證終端的公平性。
具體包括
服務(wù)器發(fā)送一定數(shù)量的數(shù)據(jù)包后會(huì)包含一個(gè)回執(zhí)包請(qǐng)求,如果終端已經(jīng)接收完畢就可以發(fā)送回執(zhí),服務(wù)器收到回執(zhí)確認(rèn)以后,才會(huì)繼續(xù)發(fā)包,同時(shí)根據(jù)上次的交互時(shí)間,及數(shù)據(jù)大小,估算出客戶端的當(dāng)前下行速度,在下一次的發(fā)送中,調(diào)整包大小及數(shù)量。當(dāng)服務(wù)數(shù)量未達(dá)到或是剛達(dá)到限時(shí),平均服務(wù)流量=流量\服務(wù)數(shù)量流量; 假如終端的實(shí)際接收能力 >=平均服務(wù)流量,按平均服務(wù)流量發(fā)送數(shù)據(jù);
假如終端的實(shí)際接收能力〈平均服務(wù)流量,按實(shí)際接收能力發(fā)送數(shù)據(jù); 終端設(shè)置了流量范圍的情況下
如果設(shè)置值 <=實(shí)際接收能力,即終端放慢了接收速度,此時(shí)服務(wù)器認(rèn)為終端的接收能力為設(shè)置值,服務(wù)端按上述處理。如果設(shè)置值〉實(shí)際接收能力,終端不處理,此時(shí)服務(wù)器認(rèn)為終端的接收能力為實(shí)際接收能力,服務(wù)端按上述處理。這樣可以起到調(diào)整發(fā)送速度的功能。優(yōu)選的,步驟104還可以包括
按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,按照節(jié)點(diǎn)級(jí)別進(jìn)行合并,然后進(jìn)行傳輸; 由于SCORM和AICC文件可能包含大量的小文件,數(shù)量多的時(shí)候會(huì)引起頻繁的請(qǐng)求,就要求從文件級(jí)別進(jìn)行壓縮,減少交互次數(shù),加快工作效率。按照一定的大小值對(duì)文件進(jìn)行級(jí)別劃分,對(duì)于符合級(jí)別的文件進(jìn)行統(tǒng)一壓縮處理。文件級(jí)別是相對(duì)于塊級(jí)別而言,文件級(jí)別的壓縮即指對(duì)幾個(gè)文件進(jìn)行壓縮,塊級(jí)別壓縮是指對(duì)幾個(gè)塊進(jìn)行壓縮,小文件是指大小小于人為劃定的經(jīng)驗(yàn)值的文件,比如100K, 由于SCORM課件的特點(diǎn)是這類(lèi)文件數(shù)量多,但是都很小,如果每個(gè)文件都按標(biāo)準(zhǔn)流程傳輸, 會(huì)導(dǎo)致比較大的資源浪費(fèi)。可以將小文件合并壓縮,一次上下文切換就可以傳輸完畢,省時(shí)省力。對(duì)于劃分是否為小文件的劃定值,可以在服務(wù)器端任意設(shè)置,通過(guò)實(shí)踐可以得到較合適的經(jīng)驗(yàn)值。優(yōu)選的,在傳輸過(guò)程中,根據(jù)網(wǎng)絡(luò)資源節(jié)點(diǎn)所在位置的不同,動(dòng)態(tài)切換網(wǎng)絡(luò)。例如
1.客戶端A請(qǐng)求課件E,
2.服務(wù)端收到請(qǐng)求以后,發(fā)現(xiàn)客戶端B持有A課件的一部分,于是通知客戶端A。3.此時(shí)客戶端A的課件E來(lái)源包含服務(wù)器和客戶端B
4.客戶端A與服務(wù)器端是C/S模式,則采用了 TCP直接進(jìn)行數(shù)據(jù)傳輸。5.客戶端A與客戶端B是P2P模式,則先由探測(cè)模塊,探測(cè)出A和B所處NAT類(lèi)型,再使用UDP進(jìn)行打洞,打洞成功以后,采用UDP進(jìn)行數(shù)據(jù)傳輸,如果打洞不成功,又切換回與服務(wù)器進(jìn)行TCP傳輸。實(shí)施例6
本發(fā)明第六實(shí)施例提出了一種網(wǎng)絡(luò)傳輸方法,在實(shí)施例1的基礎(chǔ)上,如圖7所示,包
括
步驟601、獲取網(wǎng)絡(luò)資源的編碼深度;
步驟602、獲取所述網(wǎng)絡(luò)資源的不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度;具體的,網(wǎng)絡(luò)資源的結(jié)點(diǎn)包括但不限于文件夾、文件和大塊和小塊。文件夾中包括若干文件;一個(gè)文件內(nèi)部連續(xù)的按一定大小進(jìn)行分割而成的大塊。將一個(gè)大塊內(nèi)部連續(xù)的按一定大小進(jìn)行分割而成的小塊。優(yōu)選的所述編碼深度會(huì)根據(jù)網(wǎng)絡(luò)資源的結(jié)構(gòu)的變化而變化,深度不定。其變動(dòng)主要是文件夾部分,當(dāng)網(wǎng)絡(luò)資源嵌套越深時(shí),其編碼深度越深。步驟603、根據(jù)所述編碼深度,依據(jù)所述編碼寬度形成樹(shù)形結(jié)構(gòu),依次對(duì)網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼;
步驟604、從樹(shù)形結(jié)構(gòu)最低層級(jí)的節(jié)點(diǎn)開(kāi)始進(jìn)行傳輸;
步驟605、判斷是否所有節(jié)點(diǎn)已經(jīng)傳輸完成,如果沒(méi)有,則通過(guò)最小樹(shù)算法,獲取未傳輸完成的節(jié)點(diǎn),再次形成樹(shù)形結(jié)構(gòu),執(zhí)行步驟604;如果判斷已經(jīng)完成所有節(jié)點(diǎn)的傳輸,則流程結(jié)束。一個(gè)課件文件請(qǐng)求和傳輸過(guò)程往往是多次才完成的,當(dāng)一次請(qǐng)求完成以后,通過(guò)最小樹(shù)算法,可以計(jì)算出下一輪要請(qǐng)求的節(jié)點(diǎn)集合。這個(gè)集合要求是一棵精減的未傳輸?shù)墓?jié)點(diǎn)的集合,它仍然是一棵樹(shù)形。最小樹(shù)算法依賴于節(jié)點(diǎn)編碼(節(jié)點(diǎn)編碼是變長(zhǎng)的編碼),通過(guò)對(duì)編碼的排序,可以有效的避免遞歸,從而提高計(jì)算速度。例如如圖8所示
1,開(kāi)始下載,此時(shí)由于整棵樹(shù)是空的,由于根節(jié)點(diǎn)的編碼是“1”,所以只需請(qǐng)求節(jié)點(diǎn) “1”,即可以代表請(qǐng)求一個(gè)課件;
2,下載中,當(dāng)編碼為1112節(jié)點(diǎn)被下載時(shí),它的祖先節(jié)點(diǎn)的狀態(tài)都會(huì)設(shè)置為下載中狀
態(tài);
這一輪的請(qǐng)求中,需要請(qǐng)求的節(jié)點(diǎn)包含1111,112,12三個(gè)即可; 3,下載中,當(dāng)節(jié)點(diǎn)1111下載完成后,由于兄弟節(jié)點(diǎn)1112也已經(jīng)完成下載,這時(shí)應(yīng)設(shè)置它們的父親111的狀態(tài)為下載完成;
在新一輪的請(qǐng)求節(jié)點(diǎn)中,包含的節(jié)點(diǎn)有112,12 ; 4,重復(fù)上述動(dòng)作,直到邏輯樹(shù)的節(jié)點(diǎn)全下載完畢;
采用這種算法,都能保證每一次請(qǐng)求的節(jié)點(diǎn)數(shù)量最少,且能覆蓋所有未下載節(jié)點(diǎn)。本發(fā)明實(shí)施例所述單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。以上僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種網(wǎng)絡(luò)資源傳輸?shù)姆椒?,其特征在于,包?獲取網(wǎng)絡(luò)資源的編碼深度;獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度; 根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼; 按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)資源傳輸?shù)姆椒ǎ涮卣髟谟?,所述?jié)點(diǎn)具體包括但不限于文件夾、文件、大塊和小塊;所述文件夾包含N個(gè)文件,N為大于等于1的自然數(shù); 一個(gè)文件內(nèi)部連續(xù)的按一定大小進(jìn)行分割而成的大塊; 將一個(gè)大塊內(nèi)部連續(xù)的按一定大小進(jìn)行分割而成的小塊。
3.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)資源傳輸?shù)姆椒?,其特征在于,所述獲取網(wǎng)絡(luò)資源的編碼深度之前,還包括接收網(wǎng)絡(luò)資源的協(xié)議頭,根據(jù)所述協(xié)議頭獲取網(wǎng)絡(luò)資源的編碼深度;所述網(wǎng)絡(luò)資源的協(xié)議頭,可以表明傳輸?shù)木唧w內(nèi)容,也可以表明傳輸?shù)膮f(xié)議類(lèi)型。
4.根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò)資源的傳輸方法,其特征在于 將所述協(xié)議頭做成一個(gè)發(fā)送任務(wù),采用TCP模式進(jìn)行傳輸?shù)綄?duì)端。
5.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)資源的傳輸方法,其特征在于,所述獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度的步驟具體包括獲取所述網(wǎng)絡(luò)資源的編碼深度,對(duì)網(wǎng)絡(luò)資源的每個(gè)編碼深度進(jìn)行逐層編碼; 在同一編碼深度下,對(duì)節(jié)點(diǎn)從1開(kāi)始遞增,當(dāng)?shù)竭_(dá)最后一個(gè)節(jié)點(diǎn)時(shí),其編碼為編碼寬度;回溯之前的節(jié)點(diǎn),并用0填充形成等長(zhǎng)寬度,即完成所述編碼深度下對(duì)節(jié)點(diǎn)的編碼。
6.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)資源的傳輸方法,其特征在于,所述對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸時(shí),還包括判斷所述網(wǎng)絡(luò)資源在本地還是在云中心; 具體的在獲取網(wǎng)絡(luò)資源的編碼深度同時(shí),獲取網(wǎng)絡(luò)資源的存儲(chǔ)參數(shù),所述存儲(chǔ)參數(shù)標(biāo)明所述網(wǎng)絡(luò)資源是在本地,還是在云中心。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)資源的傳輸方法,其特征在于如果是在本地,由終端和系統(tǒng)進(jìn)行協(xié)商,確定所述網(wǎng)絡(luò)資源所在服務(wù)器進(jìn)行傳輸; 如果在云中心,則通過(guò)云中心先定位到具體的系統(tǒng),然后定位到所述網(wǎng)絡(luò)資源所在的服務(wù)器;所述云中心在所述網(wǎng)絡(luò)資源上傳審核通過(guò)后進(jìn)行歸類(lèi)操作,有利于檢索和定位; 所述歸類(lèi)包括但不限于按照供應(yīng)商名稱、名稱、點(diǎn)擊率、最新最熱和推薦進(jìn)行歸類(lèi)。
8.—種網(wǎng)絡(luò)資源傳輸?shù)难b置,其特征在于,包括 編碼深度獲取模塊,用于獲取網(wǎng)絡(luò)資源的編碼深度;編碼寬度獲取模塊,獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度;編碼模塊,用于根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼;傳輸模塊,用于按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。
9.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)資源傳輸裝置,其特征在于,還包括判斷模塊所述判斷模塊,用于判斷所述網(wǎng)絡(luò)資源在本地還是在云中心;具體的在獲取網(wǎng)絡(luò)資源的編碼深度同時(shí),獲取網(wǎng)絡(luò)資源的存儲(chǔ)參數(shù),所述存儲(chǔ)參數(shù)標(biāo)明所述網(wǎng)絡(luò)資源是在本地,還是在云中心。
10.根據(jù)權(quán)利要求8或9所述的網(wǎng)絡(luò)資源傳輸裝置,其特征在于,所述編碼模塊包括編碼單元、遍歷單元、回溯單元所述編碼單元,用于獲取所述網(wǎng)絡(luò)資源的編碼深度,對(duì)網(wǎng)絡(luò)資源的每個(gè)編碼深度進(jìn)行逐層編碼;所述遍歷單元,用于在同一編碼深度下,對(duì)節(jié)點(diǎn)從1開(kāi)始遞增,當(dāng)?shù)竭_(dá)最后一個(gè)節(jié)點(diǎn)時(shí),其編碼為編碼寬度;所述回溯單元,用于回溯之前的節(jié)點(diǎn),并用0填充形成等長(zhǎng)寬度,即完成所述編碼深度下對(duì)節(jié)點(diǎn)的編碼。
全文摘要
本發(fā)明提出了一種網(wǎng)絡(luò)資源傳輸?shù)姆椒ê脱b置,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。所述方法包括獲取網(wǎng)絡(luò)資源的編碼深度;獲取網(wǎng)絡(luò)資源在不同編碼深度下的節(jié)點(diǎn)的個(gè)數(shù),得到所述編碼深度下的編碼寬度;根據(jù)所述編碼深度,依據(jù)所述編碼寬度依次對(duì)所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)進(jìn)行編碼;按照所述網(wǎng)絡(luò)資源的節(jié)點(diǎn)編碼,對(duì)所述網(wǎng)絡(luò)資源進(jìn)行傳輸。還提出了一種網(wǎng)絡(luò)資源傳輸?shù)难b置。本發(fā)明實(shí)例通過(guò)對(duì)網(wǎng)絡(luò)資源各個(gè)編碼深度下的文件夾、文件以及塊進(jìn)行編碼,使得傳輸過(guò)程中可以準(zhǔn)確定位到對(duì)應(yīng)的具體信息,保證網(wǎng)絡(luò)傳輸?shù)臏?zhǔn)確性,同時(shí)實(shí)現(xiàn)斷點(diǎn)續(xù)傳,減少服務(wù)器的壓力。
文檔編號(hào)H04L1/00GK102546105SQ20111044772
公開(kāi)日2012年7月4日 申請(qǐng)日期2011年12月28日 優(yōu)先權(quán)日2011年12月28日
發(fā)明者汪崢嶸, 袁紅兵, 黃圣護(hù) 申請(qǐng)人:深圳市新為軟件有限公司