本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及一種基于網(wǎng)絡(luò)感知和覆蓋率閾值矩陣的文件智能緩存方法。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)和通信技術(shù)的不斷發(fā)展,用戶對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量的要求越來越高,如何提高響應(yīng)速度、解決網(wǎng)絡(luò)擁擠問題、提升尋址速度和降低服務(wù)拒絕率都是影響用戶體驗(yàn)的重要問題。通過將各種信息以文件形式預(yù)先推送到作為分布式緩存的最接近用戶的網(wǎng)絡(luò)邊緣,使用戶就近取得所需的內(nèi)容,是一種有效的解決方案。具體而言,通過應(yīng)用分布式緩存、負(fù)載均衡和流量工程等技術(shù),提供各種內(nèi)容分布和服務(wù)發(fā)送的功能,包括動(dòng)態(tài)地部署網(wǎng)絡(luò)內(nèi)容到邊緣,根據(jù)網(wǎng)絡(luò)內(nèi)容處理通信量,將訪問請(qǐng)求轉(zhuǎn)發(fā)給最近的服務(wù)器,使得用戶能以最快的速度,從最接近用戶的地方獲得所需的內(nèi)容,從而縮短服務(wù)提供點(diǎn)與用戶之間的網(wǎng)絡(luò)距離,提高響應(yīng)速度、減少延遲、解決網(wǎng)絡(luò)擁擠等問題,提高網(wǎng)絡(luò)利用率,改善用戶體驗(yàn)。
另一方面,隨著智能路由器和業(yè)務(wù)服務(wù)器的規(guī)模不斷增加,可以為用戶提供的服務(wù)種類也不斷豐富,包括音頻服務(wù)、視頻服務(wù)、多媒體服務(wù)、新聞提供、搜索服務(wù)、臺(tái)風(fēng)預(yù)報(bào)、海嘯警報(bào)、災(zāi)難通知、交通情況、輿情傳播等。那些對(duì)實(shí)時(shí)性要求低的服務(wù),其提供方式一般是由用戶主動(dòng)去獲取的,即用戶使用連接在因特網(wǎng)上的各類終端,主動(dòng)與因特網(wǎng)上的特定業(yè)務(wù)服務(wù)器建立連接,向業(yè)務(wù)服務(wù)器發(fā)送特定的業(yè)務(wù)請(qǐng)求,然后從業(yè)務(wù)服務(wù)器得到響應(yīng),該響應(yīng)中包含了用戶所需要的各類信息。但是,這樣的提供方式對(duì)很多服務(wù)來說是不適合的,或者是過于低效的,比如臺(tái)風(fēng)預(yù)報(bào)、海嘯警報(bào)、災(zāi)難通知等。對(duì)于這些實(shí)時(shí)性要求很高的服務(wù),用戶希望業(yè)務(wù)服務(wù)器可以主動(dòng)推送給用戶,而不需要等到用戶主動(dòng)去訪問業(yè)務(wù)服務(wù)器來獲取,因?yàn)榈却脩舻闹鲃?dòng)訪問會(huì)影響預(yù)報(bào)信息的及時(shí)性。
此外,隨著互聯(lián)網(wǎng)的信息量不斷增加,如何通過網(wǎng)絡(luò)感知獲取實(shí)時(shí)數(shù)據(jù),并從海量的數(shù)據(jù)中挖掘出不同用戶的隨時(shí)變化的需求,變得尤為重要。而傳統(tǒng)的文件緩存方法大都是靜態(tài)的或缺乏時(shí)效性的,即一般不會(huì)隨著時(shí)間變化而實(shí)時(shí)調(diào)整文件緩存方法或參數(shù),也很少根據(jù)不同用戶的實(shí)時(shí)反饋信息來動(dòng)態(tài)調(diào)整緩存方法或參數(shù)。隨著節(jié)目的數(shù)目和用戶的數(shù)量不斷增多,計(jì)算和存儲(chǔ)難度也在不斷增大,傳統(tǒng)的文 件緩存方法已經(jīng)不能準(zhǔn)確地滿足用戶的需求。因此,針對(duì)在復(fù)雜多變的廣域網(wǎng)絡(luò)中用戶的不同需求,有必要提供更智能的文件緩存方法,以滿足大規(guī)模網(wǎng)絡(luò)用戶的個(gè)性化、動(dòng)態(tài)化和時(shí)效性的需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服已有的文件緩存方法內(nèi)容緩存效率低、個(gè)性化不足和時(shí)效性不夠,從而提供一種具有時(shí)效性、動(dòng)態(tài)化的文件智能緩存方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于網(wǎng)絡(luò)感知和覆蓋率閾值矩陣的文件智能緩存方法,包括:
步驟1)、基于網(wǎng)絡(luò)感知采集和預(yù)處理用戶數(shù)據(jù)和數(shù)據(jù)文件的屬性數(shù)據(jù),確定被緩存數(shù)據(jù)文件的源節(jié)點(diǎn),動(dòng)態(tài)更新覆蓋率閾值矩陣,然后將網(wǎng)絡(luò)中所有滿足未激活條件的節(jié)點(diǎn)放入未激活節(jié)點(diǎn)集合pinactive中;其中,
所述覆蓋率閾值矩陣是指由用戶對(duì)未訪問數(shù)據(jù)文件的感興趣程度作為權(quán)重,來決定該數(shù)據(jù)文件在相應(yīng)用戶附近的覆蓋率閾值而形成的矩陣(cij),其中cij為在用戶i的附近關(guān)于數(shù)據(jù)文件j的覆蓋率閾值;
未激活節(jié)點(diǎn)是指在一定時(shí)效內(nèi)未執(zhí)行過對(duì)當(dāng)前文件的信令的節(jié)點(diǎn);
步驟2)、未激活節(jié)點(diǎn)集合pinactive中的一未激活節(jié)點(diǎn)vi接收到信令后,根據(jù)所接收的信令的類型、數(shù)量,以多信令處理方式確定所要執(zhí)行的信令的類型;其中,
所述信令按照類型包括緩存信令、通知信令;所述緩存信令是指當(dāng)節(jié)點(diǎn)收到該信令時(shí),需要緩存內(nèi)容,并計(jì)算節(jié)點(diǎn)覆蓋率,且擴(kuò)散信令;所述通知信令是指當(dāng)節(jié)點(diǎn)收到該信令時(shí),不需要緩存內(nèi)容,只需要計(jì)算節(jié)點(diǎn)覆蓋率,并擴(kuò)散信令;
步驟3)、檢測(cè)未激活節(jié)點(diǎn)vi之前是否已經(jīng)執(zhí)行過緩存信令,如果是,轉(zhuǎn)到步驟11),否則,執(zhí)行下一步;
步驟4)、判斷信令類型是否為緩存信令,如果是,則未激活節(jié)點(diǎn)vi上緩存文件,并轉(zhuǎn)到步驟6),否則,執(zhí)行下一步;
步驟5)、檢測(cè)未激活節(jié)點(diǎn)vi之前是否已經(jīng)執(zhí)行過通知信令,如果是,轉(zhuǎn)到步驟11),否則,執(zhí)行下一步;
步驟6)、計(jì)算未激活節(jié)點(diǎn)vi的鄰居節(jié)點(diǎn)中當(dāng)前文件的節(jié)點(diǎn)覆蓋率,得到ccur, 并將鄰居節(jié)點(diǎn)中未處理過緩存或通知信令的節(jié)點(diǎn),添加到集合w中,所述集合w初始時(shí)為空集;其中,節(jié)點(diǎn)覆蓋率是指在未激活節(jié)點(diǎn)vi本身及其鄰居節(jié)點(diǎn)內(nèi),已收到當(dāng)前文件的緩存信令的節(jié)點(diǎn)數(shù)pik與所有鄰居節(jié)點(diǎn)數(shù)pikt的比值pik/pikt;
步驟7)、判斷ccur≥cthreshold,其中cthreshold表示由覆蓋率閾值矩陣得到的覆蓋率閾值,如果是,轉(zhuǎn)到步驟9),否則,執(zhí)行下一步;
步驟8)、在未激活節(jié)點(diǎn)vi的鄰居節(jié)點(diǎn)集合中,按照節(jié)點(diǎn)優(yōu)先順序來選擇足夠多的未收到緩存信令的節(jié)點(diǎn),向其發(fā)送緩存信令,以便滿足當(dāng)前節(jié)點(diǎn)的最小覆蓋率需求;
步驟9)、向集合w中未被隨機(jī)選擇的節(jié)點(diǎn)發(fā)送通知信令;
步驟10)、將節(jié)點(diǎn)vi從未激活節(jié)點(diǎn)集合pinactive中刪去;
步驟11)、判斷未激活節(jié)點(diǎn)集合pinactive是否為空集,如果否,則返回步驟2),以便處理下一個(gè)節(jié)點(diǎn)的信令,如果是,執(zhí)行下一步;
步驟12)、判斷最后刪除的節(jié)點(diǎn)所發(fā)出的緩存信令是否還未執(zhí)行完,如果是,則執(zhí)行完所有最后刪除的節(jié)點(diǎn)所發(fā)出的緩存信令,否則,結(jié)束操作。
上述技術(shù)方案中,所述用戶數(shù)據(jù)至少包括用戶基本信息、用戶行為數(shù)據(jù)、用戶對(duì)數(shù)據(jù)文件的訪問歷史;所述數(shù)據(jù)文件的屬性數(shù)據(jù)至少包括:數(shù)據(jù)文件的基本信息,數(shù)據(jù)文件的被訪問統(tǒng)計(jì)信息。
上述技術(shù)方案中,在步驟1)中,所述覆蓋率閾值矩陣的計(jì)算方法為:根據(jù)用戶數(shù)據(jù)和節(jié)目數(shù)據(jù),計(jì)算用戶i對(duì)已訪問數(shù)據(jù)文件k的喜愛程度c(i,k)以及任意兩個(gè)數(shù)據(jù)文件之間的相似度s(j,k),然后用
上述技術(shù)方案中,在步驟2)中,以多信令處理方式確定所要執(zhí)行的信令的類型包括:
a)收到多個(gè)通知信令時(shí),只處理一次通知信令;
b)收到多個(gè)緩存信令時(shí),只處理一次緩存信令;
c)收到多個(gè)通知和多個(gè)緩存信令時(shí),只處理一次緩存信令;
d、)已經(jīng)處理過一次緩存信令后,不再處理任何信令;
e)已經(jīng)處理過一次通知信令后,不再處理通知信令,但如果又接收到緩存信令,允許再處理一次緩存信令。
上述技術(shù)方案中,在步驟8)中,所述節(jié)點(diǎn)優(yōu)先順序包括:首先,若當(dāng)前節(jié)點(diǎn)沒有緩存當(dāng)前文件,則優(yōu)先在當(dāng)前節(jié)點(diǎn)上緩存該文件;其次,選擇在未處理過信令的節(jié)點(diǎn)上緩存該文件;再次,選擇在未緩存該文件的其他節(jié)點(diǎn)上緩存該文件;如果優(yōu)先級(jí)相同,則隨機(jī)選擇。
上述技術(shù)方案中,在步驟8)中,所述足夠多的未收到緩存信令的節(jié)點(diǎn)的數(shù)量通過如下計(jì)算公式確定:cthreshold×pikt—pik。
本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明提高了內(nèi)容緩存效率和自適應(yīng)性,以滿足不同用戶的個(gè)性化需求和高時(shí)效性的需求。
附圖說明
圖1是本發(fā)明的基于網(wǎng)絡(luò)感知和覆蓋率閾值矩陣的文件智能緩存方法的流程圖。
具體實(shí)施方式
現(xiàn)結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。
如圖1所示,本發(fā)明的基于網(wǎng)絡(luò)感知和覆蓋率閾值矩陣的文件智能緩存方法包括:
步驟1:先利用網(wǎng)絡(luò)感知技術(shù),采集和預(yù)處理用戶數(shù)據(jù)和數(shù)據(jù)文件的屬性數(shù)據(jù),確定被緩存數(shù)據(jù)文件的源節(jié)點(diǎn),動(dòng)態(tài)更新覆蓋率閾值矩陣,然后將網(wǎng)絡(luò)中所有滿足未激活條件的節(jié)點(diǎn)放入未激活節(jié)點(diǎn)集合pinactive中,設(shè)v0為數(shù)據(jù)文件緩存的源節(jié)點(diǎn),v0的鄰居節(jié)點(diǎn)集合為vneigh={vj}。
在本步驟中,用戶數(shù)據(jù)包括用戶基本信息、用戶行為數(shù)據(jù)、用戶對(duì)數(shù)據(jù)文件的訪問歷史等;所述數(shù)據(jù)文件的屬性數(shù)據(jù)包括:數(shù)據(jù)文件的基本信息,數(shù)據(jù)文件的被訪問統(tǒng)計(jì)信息等。在本發(fā)明中,所述數(shù)據(jù)文件主要是指大容量的數(shù)據(jù)文件,在一個(gè)實(shí)施例中,所述數(shù)據(jù)文件為視頻節(jié)目,在其他實(shí)施例中,可以為其他類型的大容量數(shù)據(jù)文件。
緩存有數(shù)據(jù)文件的源節(jié)點(diǎn)可以是網(wǎng)絡(luò)中的任意節(jié)點(diǎn),被緩存數(shù)據(jù)文件的唯一標(biāo)識(shí)符記為file_id。
覆蓋率閾值矩陣是指由用戶對(duì)未訪問數(shù)據(jù)文件的感興趣程度作為權(quán)重,來決定該數(shù)據(jù)文件在相應(yīng)用戶附近的覆蓋率閾值而形成的矩陣(cij),其中cij為在用戶i的附近關(guān)于數(shù)據(jù)文件j的覆蓋率閾值。在該矩陣中,一行向量代表一個(gè)用戶,矩陣中的每一個(gè)元素的用途是:針對(duì)某一被緩存數(shù)據(jù)文件file_id的節(jié)點(diǎn)覆蓋率的閾值。
具體地,覆蓋率閾值矩陣的計(jì)算方法為:根據(jù)用戶數(shù)據(jù)和節(jié)目數(shù)據(jù),采用現(xiàn)有方法來計(jì)算用戶i對(duì)已訪問數(shù)據(jù)文件k的喜愛程度c(i,k)以及任意兩個(gè)數(shù)據(jù)文件之間的相似度s(j,k),然后用
未激活節(jié)點(diǎn)是指在一定時(shí)效內(nèi)未執(zhí)行過對(duì)當(dāng)前文件的信令的節(jié)點(diǎn)。
步驟2:未激活節(jié)點(diǎn)vi接收到當(dāng)前文件的緩存或通知信令,若在節(jié)點(diǎn)vi收到多條信令,則對(duì)vi收到的信令的類型進(jìn)行“或”運(yùn)算,運(yùn)算結(jié)果作為要執(zhí)行的信令類型。
在本發(fā)明中,信令的類型分為緩存信令與通知信令,所述緩存信令是指當(dāng)節(jié)點(diǎn)收到該信令時(shí),需要緩存內(nèi)容,并計(jì)算節(jié)點(diǎn)覆蓋率,且擴(kuò)散信令;所述通知信令是指當(dāng)節(jié)點(diǎn)收到該信令時(shí),不需要緩存內(nèi)容,只需要計(jì)算節(jié)點(diǎn)覆蓋率,并擴(kuò)散信令。
節(jié)點(diǎn)在收到多條信令時(shí),可按照多信令處理方式來確定所要執(zhí)行的信令的類型。所述多信令處理方式是指當(dāng)前節(jié)點(diǎn)對(duì)相同文件收到多個(gè)信令時(shí)的處理方式如下:1)收到多個(gè)通知信令時(shí),只處理一次通知信令;2)收到多個(gè)緩存信令時(shí),只處理一次緩存信令;3)收到多個(gè)通知和多個(gè)緩存信令時(shí),只處理一次緩存信令;4)已經(jīng)處理過一次緩存信令后,不再處理任何信令;5)已經(jīng)處理過一次通知信令后,不再處理通知信令,但如果又接收到緩存信令,可以再處理一次緩存信令。
在計(jì)算機(jī)上實(shí)現(xiàn)時(shí),可將用于表示信令類型的位設(shè)置為1,表示該信令為緩存信令,將用于表示信令類型的位設(shè)置為0,表示該信令為通知信令。根據(jù)這一設(shè)置方式,通過“或”運(yùn)算來確定所要執(zhí)行的信令的類型。
步驟3:檢測(cè)節(jié)點(diǎn)vi是否已經(jīng)執(zhí)行過緩存信令,如果是,轉(zhuǎn)到步驟11,否則,執(zhí)行下一步。
步驟4:判斷信令類型是否為緩存,如果是,則節(jié)點(diǎn)vi上緩存,并轉(zhuǎn)到步驟6,否則,執(zhí)行下一步。
步驟5:檢測(cè)節(jié)點(diǎn)vi是否已經(jīng)執(zhí)行過通知信令,如果是,轉(zhuǎn)到步驟11,否則,執(zhí)行下一步。
步驟6:計(jì)算節(jié)點(diǎn)vi的鄰居節(jié)點(diǎn)中當(dāng)前文件的節(jié)點(diǎn)覆蓋率,得到ccur,并將鄰居節(jié)點(diǎn)中未處理過緩存或通知信令的節(jié)點(diǎn),添加到集合w中,即更新w。
其中,鄰居節(jié)點(diǎn)是指與節(jié)點(diǎn)vi的距離為k跳以內(nèi)的節(jié)點(diǎn),k是一個(gè)自然數(shù),其 缺省值為1;鄰居節(jié)點(diǎn)集合記為vneigh,鄰居列表的獲取不局限于跳數(shù),也可以用帶寬、時(shí)延等指標(biāo)來生成鄰居列表。節(jié)點(diǎn)覆蓋率是指在節(jié)點(diǎn)vi本身及其鄰居節(jié)點(diǎn)內(nèi),已收到當(dāng)前文件的緩存信令的節(jié)點(diǎn)數(shù)pik與所有鄰居節(jié)點(diǎn)數(shù)pikt的比值pik/pikt,根據(jù)該定義即可計(jì)算節(jié)點(diǎn)覆蓋率的數(shù)值。
步驟7:判斷ccur≥cthreshold,如果是,轉(zhuǎn)到步驟9,否則,執(zhí)行下一步。
本步驟中的cthreshold表示覆蓋率閾值,所述覆蓋率閾值由覆蓋率閾值矩陣給出。
步驟8:在鄰居節(jié)點(diǎn)集合中,按照節(jié)點(diǎn)優(yōu)先順序來選擇足夠多的未收到緩存信令的節(jié)點(diǎn),向其發(fā)送緩存信令,以便滿足當(dāng)前節(jié)點(diǎn)的最小覆蓋率需求。
本步驟中所涉及的節(jié)點(diǎn)優(yōu)先順序如下:首先,若當(dāng)前節(jié)點(diǎn)沒有緩存當(dāng)前文件,則優(yōu)先在當(dāng)前節(jié)點(diǎn)上緩存該文件;其次,選擇在未處理過信令的節(jié)點(diǎn)上緩存該文件;再次,選擇在未緩存該文件的其他節(jié)點(diǎn)上緩存該文件;如果優(yōu)先級(jí)相同,則隨機(jī)選擇。所述足夠多的未收到緩存信令的節(jié)點(diǎn)的數(shù)量可通過如下計(jì)算公式確定:cthreshold×pikt—pik。
步驟9:向集合w中未被隨機(jī)選擇的節(jié)點(diǎn)發(fā)送通知信令。
步驟10:將節(jié)點(diǎn)vi從未激活節(jié)點(diǎn)集合pinactive中刪去,即更新集合pinactive。
步驟11:判斷未激活節(jié)點(diǎn)集合pinactive是否為空集,如果否,則返回步驟2,以便處理下一個(gè)節(jié)點(diǎn)的信令,如果是,執(zhí)行下一步。
步驟12:判斷最后刪除的節(jié)點(diǎn)所發(fā)出的緩存信令是否還未執(zhí)行完,如果是,則執(zhí)行完所有最后刪除的節(jié)點(diǎn)所發(fā)出的緩存信令,否則,結(jié)束操作。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。