本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種命名數(shù)據(jù)網(wǎng)絡(luò)的多維命名支持方法。
背景技術(shù):
近年來,針對現(xiàn)有互聯(lián)網(wǎng)的諸多缺陷,世界各國都積極開展了未來互聯(lián)網(wǎng)的研究工作,并逐漸出現(xiàn)一些具有影響力的研究成果,命名數(shù)據(jù)網(wǎng)絡(luò)NDN(Named Data Networking)就是其中的重要代表。NDN改變了當(dāng)前互聯(lián)網(wǎng)端到端的通信機制,把內(nèi)容與終端位置分離,將用戶的關(guān)注點由終端改為內(nèi)容,實現(xiàn)了以內(nèi)容為中心的網(wǎng)絡(luò)體系及通信機制。NDN網(wǎng)絡(luò)采用了基于內(nèi)容接收者的服務(wù)模型和基于命名數(shù)據(jù)的通信模型,通過對網(wǎng)絡(luò)內(nèi)容進行分層命名,利用興趣包(Interest)和數(shù)據(jù)包(Data)的交互完成內(nèi)容的查找、路由與轉(zhuǎn)發(fā),有利于提升網(wǎng)絡(luò)的安全性、移動性及資源利用率。
雖然NDN是為未來互聯(lián)網(wǎng)體系架構(gòu)而設(shè)計,但由于其采用了分布式內(nèi)容匹配和數(shù)據(jù)轉(zhuǎn)發(fā),在支持物聯(lián)網(wǎng)應(yīng)用方面具有先天優(yōu)勢。近年來,學(xué)術(shù)界已經(jīng)開展如何將NDN架構(gòu)應(yīng)用于物聯(lián)網(wǎng)的研究工作,包括應(yīng)用于車聯(lián)網(wǎng)、無線傳感器網(wǎng)絡(luò)、延遲容忍網(wǎng)絡(luò)、移動自組織網(wǎng)絡(luò)等。
數(shù)據(jù)命名是NDN架構(gòu)體系中最重要的技術(shù)之一。NDN最初定位于未來互聯(lián)網(wǎng)體系架構(gòu)而設(shè)計,由于互聯(lián)網(wǎng)數(shù)據(jù)具有天然的單元或顆粒度,而且沒有明顯的時間或空間維度特征,因而NDN采用類似于URL(統(tǒng)一資源定位符)的分級可讀的一維命名規(guī)則(以“/”分隔的分層命名機制)來描述互聯(lián)網(wǎng)數(shù)據(jù),如/ucla/videos/demo.mpg表示由UCLA提供的一個名字為demo.mpg的視頻文件。這種命名機制具有較好的可讀性,便于進行名字聚合和路由聚合,有助于提升內(nèi)容路由轉(zhuǎn)發(fā)效率。為了適應(yīng)這種命名機制,NDN在FIB(轉(zhuǎn)發(fā)信息庫)表查詢過程中采用最長前綴匹配算法進行路由查詢。最長前綴匹配查詢對名字前綴的順序有嚴(yán)格要求,如果出現(xiàn)某個分層名字出現(xiàn)不一致,則查詢失敗。
圖1以車聯(lián)網(wǎng)應(yīng)用為例分析了現(xiàn)有NDN命名機制的不足。在圖1中,用戶用三維屬性{空間、時間、類型}來表示所感興趣的特定時間和空間內(nèi)的特定數(shù)據(jù)信息。NDN采用與IP網(wǎng)絡(luò)類似的最長前綴匹配查詢方式進行內(nèi)容匹配和數(shù)據(jù)轉(zhuǎn)發(fā)。假定網(wǎng)內(nèi)緩存名字已確定(見圖1),根據(jù)最長前綴匹配的查詢結(jié)果,只有用戶請求A可以成功獲得所請求的數(shù)據(jù),而用戶請求B、C和D都將無法得到所感興趣的數(shù)據(jù),即使從語義上來講,網(wǎng)內(nèi)緩存數(shù)據(jù)也符合用戶B、C和D的請求(見圖1語義匹配查詢結(jié)果)。正是由于最長前綴匹配對名字前綴的順序有嚴(yán)格要求,用戶請求B、C和D的查詢請求會出現(xiàn)失敗??梢钥闯?,基于最長前綴匹配查詢方法難以實現(xiàn)對多維數(shù)據(jù)的高效查詢和匹配。
已有研究提出從多維屬性對NDN內(nèi)容進行命名。如在文獻[3-4]中,作者提出以“/空間/時間/類型”三種以“/”分隔的維度對數(shù)據(jù)進行多維命名。例如,使用/traffic/Highway 101/north/{400,410}/{1323201600,1323205200}/speed/來表示101號高速公路北向400公里至410公里區(qū)間內(nèi)2011年12月6日12:00至13:00時間段的車流速度信息。這種命名方式體現(xiàn)了數(shù)據(jù)自身的多維屬性,但這些命名設(shè)計針對空間和時間維度均使用了區(qū)間的概念,即:使用了空間區(qū)間或時間區(qū)間對某個數(shù)據(jù)進行描述。這樣,在網(wǎng)絡(luò)層對來自用戶的多維請求進行匹配時,必須引入語義匹配方式,傳統(tǒng)的最長前綴匹配方式將不再適用。語義匹配雖然更智能化,但其查詢效率要遠(yuǎn)低于最長前綴匹配,無法實現(xiàn)硬件處理和高效轉(zhuǎn)發(fā)。為支持物聯(lián)網(wǎng)應(yīng)用的多維數(shù)據(jù)而為NDN網(wǎng)絡(luò)引入語義匹配查詢機制,不但會破壞與其他NDN網(wǎng)絡(luò)設(shè)備的兼容性和互聯(lián)互通,而且會帶來網(wǎng)絡(luò)層面轉(zhuǎn)發(fā)效率的性能降低。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種命名數(shù)據(jù)網(wǎng)絡(luò)的多維命名支持方法,可以在不改變NDN一維命名和網(wǎng)絡(luò)層最長前綴匹配的前提下為NDN增加多維數(shù)據(jù)支持能力。
本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
一種命名數(shù)據(jù)網(wǎng)絡(luò)的多維命名支持方法,包括:在命名數(shù)據(jù)網(wǎng)絡(luò)NDN的網(wǎng)絡(luò)層和應(yīng)用層之間增加一個中間件層;
該中間件層,結(jié)合網(wǎng)絡(luò)層內(nèi)各種內(nèi)容數(shù)據(jù)的可用性,將應(yīng)用層輸出的含多維語義的內(nèi)容請求翻譯并優(yōu)化為符合網(wǎng)絡(luò)層原始一維命名規(guī)則的Interest消息,進而由網(wǎng)絡(luò)層向外發(fā)出相應(yīng)的Interest包;其中,所述含多維語義的內(nèi)容請求采用了一維多組件的離散化的命名機制。
所述中間件層包括:內(nèi)容智慧感知模塊、名字動態(tài)映射模塊,以及南向接口與北向接口;
中間件層基于南向接口并采用標(biāo)準(zhǔn)的NDN消息格式與網(wǎng)絡(luò)層通信,基于北向接口與應(yīng)用層通信,所述北向接口支持從多個維度以不同顆粒度對所感興趣的內(nèi)容屬性進行描述和限定;
內(nèi)容智慧感知模塊,感知網(wǎng)絡(luò)層內(nèi)各種內(nèi)容數(shù)據(jù)的可用性,通過相應(yīng)的內(nèi)容發(fā)現(xiàn)機制獲取內(nèi)容數(shù)據(jù)的存在狀態(tài)并存儲在本地的內(nèi)容名字?jǐn)?shù)據(jù)庫中;
名字動態(tài)映射模塊,將含有多維語義的請求翻譯為帶固定顆粒度的原始名字,然后根據(jù)原始名字的聚合特征,從原始名字集合中生成所有可能的聚合名字,從而獲得名字集合;再結(jié)合內(nèi)容智慧感知模塊中的內(nèi)容名字?jǐn)?shù)據(jù)庫對名字集合進行優(yōu)化。
所述結(jié)合內(nèi)容智慧感知模塊中的內(nèi)容名字?jǐn)?shù)據(jù)庫對名字結(jié)合進行優(yōu)化包括:
名字集合根據(jù)名字前綴的長短,構(gòu)成了一個樹形分層結(jié)構(gòu),從上層至下層的名字聚合程度高逐漸降低,名字的前綴逐漸加長;
采用精確匹配的方式對內(nèi)容名字?jǐn)?shù)據(jù)庫進行查找;查找過程中,優(yōu)先選取名字集合中位于較高層次的前綴名字進行精確匹配,如果匹配成功,則將該前綴對應(yīng)的下層內(nèi)容前綴從名字集合中剔除;如果失敗,則嘗試匹配較低層次的前綴名字;最終優(yōu)化后的名字集合中包含匹配成功的聚合名字剩余的原始名字。
所述中間件層還包括:
名字分解與數(shù)據(jù)融合模塊,用于判斷是否需要對優(yōu)化后名字集合中的名字進行一到多的名字分解;若需要,則進行名字分解,并由網(wǎng)絡(luò)層根據(jù)名字分解結(jié)果將所述Interest包拆分成多個子Interest包向外發(fā)送;
還用于接收到內(nèi)容提供端返回的Data包后,檢查Data包是否響應(yīng)之前名字分解后的子Interest包;若是,則需要等待其他Data包,當(dāng)收到所有的Data包后,將進行多到一的數(shù)據(jù)融合。
所述判斷是否需要對優(yōu)化后名字集合中的某一名字進行一到多的名字分解包括:
若內(nèi)容智慧感知模塊中的內(nèi)容名字?jǐn)?shù)據(jù)庫與其他結(jié)點中內(nèi)容名字?jǐn)?shù)據(jù)庫的數(shù)據(jù)不一致,則判定需要對名字進行一到多的名字分解。
所述一維多組件的離散化的命名機制包括:
面向物聯(lián)網(wǎng)的NDN原始命名機制采用一維多組件的離散化的命名機制,每個組件對應(yīng)描述對象的一個維度,每個組件采用分層離散化可聚合的名字形式,原始命名的離散化顆粒度由不同應(yīng)用特點決定,通過在應(yīng)用層提供以特定命名策略為索引的API接口來實現(xiàn)對不同命名機制和翻譯策略的調(diào)用。
由上述本發(fā)明提供的技術(shù)方案可以看出,通過支持多維命名的中間件體系架構(gòu)、描述物聯(lián)網(wǎng)數(shù)據(jù)特征的多維命名機制、多維命名動態(tài)映射等,能夠完成多維用戶請求到一維離散名字空間的映射,從而實現(xiàn)網(wǎng)絡(luò)層面的高效轉(zhuǎn)發(fā)和應(yīng)用層面快速準(zhǔn)確的內(nèi)容獲取,同時保證命名數(shù)據(jù)網(wǎng)絡(luò)的兼容性和轉(zhuǎn)發(fā)效率。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。
圖1為本發(fā)明背景技術(shù)提供的以車聯(lián)網(wǎng)應(yīng)用為例分析了現(xiàn)有NDN命名機制不足的示意圖;
圖2為本發(fā)明實施例提供的一種命名數(shù)據(jù)網(wǎng)絡(luò)的多維命名支持方法的示意圖。
具體實施方式
下面結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護范圍。
當(dāng)前命名數(shù)據(jù)網(wǎng)絡(luò)體系僅支持一維命名規(guī)則,缺少應(yīng)對傳感器網(wǎng)絡(luò)多維數(shù)據(jù)特征的能力,采用基于最長前綴匹配的查詢算法無法對來自上層應(yīng)用的多維請求進行高效適配,也難以在網(wǎng)絡(luò)層面進行高效的內(nèi)容匹配。另一方面,利用多維屬性對內(nèi)容進行描述并引入語義匹配查詢算法雖然能夠提升查詢命中和資源適配效率,但由于難以實現(xiàn)硬件處理,會帶來轉(zhuǎn)發(fā)效率的性能降低。
為了克服上述技術(shù)的缺點,本發(fā)明針對物聯(lián)網(wǎng)數(shù)據(jù)的多維特征,提出一種命名數(shù)據(jù)網(wǎng)絡(luò)的多維數(shù)據(jù)命名支持方法,旨在不改變NDN一維命名和網(wǎng)絡(luò)層最長前綴匹配的前提下為NDN增加多維數(shù)據(jù)支持能力。具體地,本發(fā)明設(shè)計了支持多維命名的中間件體系架構(gòu)、描述物聯(lián)網(wǎng)數(shù)據(jù)特征的多維命名機制、多維命名動態(tài)映射等,能夠完成多維用戶請求到一維離散名字空間的映射,從而實現(xiàn)網(wǎng)絡(luò)層面的高效轉(zhuǎn)發(fā)和應(yīng)用層面快速準(zhǔn)確的內(nèi)容獲取,同時保證命名數(shù)據(jù)網(wǎng)絡(luò)的兼容性和轉(zhuǎn)發(fā)效率。
本發(fā)明在NDN的網(wǎng)絡(luò)層面和應(yīng)用層面之間增加一個中間件層面,如圖2所示,該中間件層,結(jié)合網(wǎng)絡(luò)層內(nèi)各種內(nèi)容數(shù)據(jù)的可用性,將應(yīng)用層輸出的含多維語義的內(nèi)容請求翻譯并優(yōu)化為符合網(wǎng)絡(luò)層原始一維命名規(guī)則的Interest消息,從而為在不改變網(wǎng)絡(luò)層最長前綴匹配的前提下實現(xiàn)對物聯(lián)網(wǎng)多維數(shù)據(jù)特征的支持。
在圖2中,中間件架構(gòu)有兩種外部接口:南向接口和北向接口。為保證與其他內(nèi)容中心網(wǎng)絡(luò)的兼容性和網(wǎng)絡(luò)層轉(zhuǎn)發(fā)效率,南向接口采用標(biāo)準(zhǔn)的NDN消息格式,即中間件只能采用標(biāo)準(zhǔn)的一維分層命名方式發(fā)送和接收標(biāo)準(zhǔn)的Interest消息和Data消息;而北向接口的設(shè)計原則是盡量保留應(yīng)用層面用戶內(nèi)容請求的多樣性和靈活性,支持從多個維度以不同顆粒度對所感興趣的內(nèi)容屬性進行描述和限定。為了支持名字快速翻譯,采用由多個組件構(gòu)成的原始一維命名對命名數(shù)據(jù)網(wǎng)絡(luò)內(nèi)的物聯(lián)網(wǎng)數(shù)據(jù)進行描述,每個組件對應(yīng)一個維度,每個組件均采用分層離散化可聚合的名字形式。
根據(jù)南向接口和北向接口的設(shè)計,中間件層面的主要功能是在內(nèi)容感知的前提下,將含多維語義的內(nèi)容請求翻譯并優(yōu)化為符合內(nèi)容中心網(wǎng)絡(luò)原始一維命名規(guī)則的Interest消息,這需要內(nèi)容智慧感知模塊、名字動態(tài)映射模塊、名字分解與數(shù)據(jù)融合這三個模塊共同來完成。
本發(fā)明實施例中,內(nèi)容智慧感知模塊,用于感知網(wǎng)絡(luò)層內(nèi)各種內(nèi)容數(shù)據(jù)的可用性,通過相應(yīng)的內(nèi)容發(fā)現(xiàn)機制獲取內(nèi)容數(shù)據(jù)的存在狀態(tài)并存儲在本地的內(nèi)容名字?jǐn)?shù)據(jù)庫中。
本發(fā)明實施例中,名字動態(tài)映射模塊,用于將含有多維語義的請求翻譯為帶固定顆粒度的原始名字,所述原始名字采用離散化的命名機制,然后根據(jù)原始名字的聚合特征,從原始名字集合中生成所有可能的聚合名字,從而獲得名字集合;再結(jié)合內(nèi)容智慧感知模塊中的內(nèi)容名字?jǐn)?shù)據(jù)庫對名字結(jié)合進行優(yōu)化。
本發(fā)明實施例中,名字分解與數(shù)據(jù)融合模塊,用于判斷是否需要對優(yōu)化后名字集合中的每一名字進行一到多的名字分解;若需要,則進行名字分解,并由網(wǎng)絡(luò)層根據(jù)名字分解結(jié)果將所述Interest包拆分成多個子Interest包向外發(fā)送;還用于接收到內(nèi)容提供端返回的Data包后,檢查Data包是否響應(yīng)之前名字分解后的子Interest包;若是,則需要等待其他Data包,當(dāng)收到所有的Data包后,將進行多到一的數(shù)據(jù)融合。
在增加了上述中間件層之后,整個網(wǎng)絡(luò)進行一次內(nèi)容獲取的過程如下:
部署了上述中間件層的當(dāng)前節(jié)點作為內(nèi)容請求端,則其應(yīng)用層輸出用戶發(fā)送的含多維語義的內(nèi)容請求時,由名字動態(tài)映射模塊進行名字的翻譯,并結(jié)合內(nèi)容智慧感知模塊進行名字優(yōu)化,從而獲得優(yōu)化后的名字集合;此時,可以由網(wǎng)絡(luò)層向外發(fā)出相應(yīng)的Interest包(興趣包),并接收內(nèi)容提供端返回的Data包(數(shù)據(jù)包)。上述過程適用于內(nèi)容請求端與網(wǎng)絡(luò)中其他節(jié)點內(nèi)容數(shù)據(jù)庫完全一致的情況。
優(yōu)選的,考慮到不同的內(nèi)容發(fā)現(xiàn)算法工作機制造成網(wǎng)絡(luò)中節(jié)點內(nèi)容數(shù)據(jù)庫出現(xiàn)不一致,因此,在獲得優(yōu)化后的名字集合后需要名字分解與數(shù)據(jù)融合模塊判斷是否需要進行名字分解。例如,為了實現(xiàn)保證內(nèi)容發(fā)現(xiàn)算法的規(guī)??蓴U展性,某些內(nèi)容名字的詳細(xì)信息可能只在本地進行擴散,在遠(yuǎn)端只擴散內(nèi)容名字聚合信息,內(nèi)容請求端和網(wǎng)絡(luò)中其他節(jié)點的內(nèi)容數(shù)據(jù)庫可能不一致。內(nèi)容請求端根據(jù)本地內(nèi)容數(shù)據(jù)庫進行優(yōu)化后的名字聚合程度較高的Interest包可能在其他節(jié)點無法進行名字匹配,這種情況下如果不進行名字的進一步分解,將無法獲得預(yù)期的內(nèi)容。此時,可以通過名字分解與數(shù)據(jù)融合模塊根據(jù)本地內(nèi)容名字?jǐn)?shù)據(jù)庫,將Interest包分解為較長名字前綴的多個子Interest包進行發(fā)送。之后,內(nèi)容請求端會接收到對應(yīng)多個子Interest包的多個Data包,再由名字分解與數(shù)據(jù)融合模塊將相關(guān)的Data包進行數(shù)據(jù)融合。
上述過程中的Interest包與Data包均帶有特定前綴,例如/middleware前綴。
傳感器網(wǎng)絡(luò)數(shù)據(jù)具有多維特征,根據(jù)中間件架構(gòu)南向接口對兼容性的要求,這里擬采用多組件單維度的方式對內(nèi)容中心網(wǎng)絡(luò)中的傳感器網(wǎng)絡(luò)數(shù)據(jù)進行刻畫和描述。由于傳感器網(wǎng)絡(luò)的應(yīng)用驅(qū)動性,不同應(yīng)用的數(shù)據(jù)形式和含義具有很大區(qū)別,很難用一種命名機制來描述所有傳感器網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)。因此,為了支持中間件架構(gòu)的名字快速翻譯,面向物聯(lián)網(wǎng)的NDN原始命名機制采用一維多組件離散化命名方法,每個組件對應(yīng)描述對象的一個維度,每個組件采用分層離散化可聚合的名字形式。原始命名的離散化顆粒度由不同應(yīng)用特點決定。通過在應(yīng)用層提供以特定命名策略為索引的API接口來實現(xiàn)對不同命名機制和翻譯策略的調(diào)用。
根據(jù)中間件架構(gòu)對北向接口靈活性的要求,這里對來自應(yīng)用層的內(nèi)容請求的表達(dá)方式給出幾點設(shè)計原則:
1)支持多維度無序描述,即對用戶的內(nèi)容請求在不同維度的順序沒有要求;
2)支持不同維度上任意兩點間的請求描述,如空間維度上任意兩個地點間的信息或時間維度上任意兩個時刻間的信息;
3)支持通配符“*”的描述方式,表示模糊查詢和請求。
多維命名中間件體系架構(gòu)的核心功能是完成多維語義內(nèi)容請求到一維多組件命名的映射,即名字翻譯和優(yōu)化。為了實現(xiàn)動態(tài)映射,還必須對網(wǎng)絡(luò)內(nèi)部的內(nèi)容名字的可用性進行智慧感知,避免盲目翻譯。
如圖2所示,名字動態(tài)映射由基本翻譯和名字優(yōu)化組成。基本翻譯是根據(jù)原始命名在不同維度上的離散化特征,將來自應(yīng)用層的多維用戶請求以原始命名方式進行表述?;菊Z義翻譯可以得到一組對應(yīng)用戶內(nèi)容請求的原始內(nèi)容名字,根據(jù)原始名字的特征,可以得到潛在可能的聚合名字。以N表示原始名字和聚合名字構(gòu)成的名字集合,該名字集合根據(jù)名字前綴的長短,構(gòu)成了一個樹形分層結(jié)構(gòu),從上層至下層的名字聚合程度高逐漸降低,名字的前綴逐漸加長。
然后,基于基本翻譯得到的名字集合,通過查詢本地內(nèi)容名字?jǐn)?shù)據(jù)庫,實現(xiàn)興趣包名字優(yōu)化。為避免名字優(yōu)化成為系統(tǒng)瓶頸,提高查詢效率,采用精確匹配的方式對內(nèi)容名字?jǐn)?shù)據(jù)庫進行查找。查詢過程中,優(yōu)先選取名字集合中位于較高層次的前綴名字進行精確匹配,如果匹配成功,則將該前綴對應(yīng)的下層內(nèi)容前綴從名字集合中剔除;如果失敗,則嘗試匹配較低層次的前綴名字。最終,中間件架構(gòu)只將匹配成功的聚合名字和名字集合中剩余的原始名字封裝到興趣包中發(fā)送出去。
示例性的,以N={n1,n2,...nj,,...}表示基本翻譯后得到的原始名字和聚合名字構(gòu)成的名字集合,以NB表示本地內(nèi)容名字?jǐn)?shù)據(jù)庫,利用下述算法可以獲得優(yōu)化后的名字集合I。
基于最短前綴精確匹配的名字優(yōu)化算法:
輸入:內(nèi)容名字?jǐn)?shù)據(jù)庫NB={e1,e2,...ej,,...},內(nèi)容名字集合N={n1,n2,...nj,,...}
初始化:存儲興趣包優(yōu)化名字的空集合I
Main:
1)選擇集合N中最高層的聚合名字前綴nj,將其分解為三個組件{njspace,njtime,njtype};
2)對于名字前綴nj,在內(nèi)容名字?jǐn)?shù)據(jù)庫NB中進行精確匹配查找;
a)當(dāng)且僅當(dāng)eispace=njspace,eitime=njtime,eitype=njtype時,精確匹配成功。將nj置入集合I中,并將集合N中的nj和所有被nj所覆蓋的較長前綴的名字去除;
b)如果精確匹配失敗,將nj從集合N中去除;
c)如果集合N中還有聚合名字前綴,則跳轉(zhuǎn)至第1)步。
3)將集合N中所有剩余的原始名字置入集合中I;
輸出:優(yōu)化后的興趣包名字集合I。
為了便于理解,下面再針對上述三個模塊的設(shè)計思路與原則進行詳細(xì)分析說明。
1)內(nèi)容智慧感知模塊
根據(jù)分層離散化的命名設(shè)計,在網(wǎng)絡(luò)內(nèi)可能存在不同聚合程度的內(nèi)容名字,也分別代表不同的語義。通常來講,內(nèi)容名字聚合程度高,內(nèi)容名字前綴長度就越短,其語義內(nèi)涵更豐富。當(dāng)應(yīng)用層的內(nèi)容請求確定以后,中間件層將盡量將該請求翻譯為聚合程度較高的名字,這樣產(chǎn)生的興趣包數(shù)量會較少,有利于減小網(wǎng)絡(luò)負(fù)載和提升內(nèi)容獲取效率。為此,中間件層必須及時準(zhǔn)確的感知網(wǎng)絡(luò)內(nèi)部各種內(nèi)容數(shù)據(jù)的可用性,通過專門的內(nèi)容發(fā)現(xiàn)機制獲取內(nèi)容的存在狀態(tài)并存儲在本地內(nèi)容名字?jǐn)?shù)據(jù)庫中,供興趣包名字翻譯等其他模塊進行查詢匹配和實現(xiàn)名字優(yōu)化。
2)名字動態(tài)映射模塊
名字動態(tài)映射分兩步進行:基本翻譯及名字優(yōu)化。接收到來自應(yīng)用層的內(nèi)容請求后,首先將含有多維語義的請求翻譯為帶固定顆粒度的原始名字,這是一種簡單的語義翻譯。由于原始名字采用離散化的命名機制,因此可以使用編程思想實現(xiàn)快速的語義翻譯,保證翻譯效率。根據(jù)原始名字的聚合特征,可以從原始名字集合中自動生成所有可能的聚合名字,然后進行名字優(yōu)化。名字優(yōu)化的主要目的是借助于內(nèi)容感知模塊維護的內(nèi)容名字?jǐn)?shù)據(jù)庫,查詢是否可以向網(wǎng)絡(luò)請求聚合后的名字,而不是直接請求原始名字。通常地,聚合名字含有更多的語義特征。故請求聚合名字可以減少所發(fā)送的興趣包數(shù)量,有助于降低網(wǎng)絡(luò)負(fù)載和縮短內(nèi)容獲取時延。
3)名字分解與數(shù)據(jù)融合模塊
當(dāng)由于內(nèi)容發(fā)現(xiàn)機制設(shè)計或其他不可控原因?qū)е聝?nèi)容名字?jǐn)?shù)據(jù)庫不一致時,僅在內(nèi)容請求端進行名字翻譯和優(yōu)化可能無法獲得所請求的內(nèi)容。為此,增加名字分解與數(shù)據(jù)融合功能,從而避免由于內(nèi)容名字?jǐn)?shù)據(jù)庫不一致造成的內(nèi)容獲取失敗問題。考慮到NDN原始的“One Interest-One Data”通信模式,名字分解和數(shù)據(jù)融合模塊僅支持一到多的名字分解和多到一的數(shù)據(jù)融合。即當(dāng)內(nèi)容請求端和網(wǎng)絡(luò)中其他節(jié)點的內(nèi)容數(shù)據(jù)庫可能不一致時,會出現(xiàn)名字匹配失敗的情況,則需要對名字進行分解,以便其他網(wǎng)絡(luò)節(jié)點可以匹配成功。同時,如果進行了名字分解,那么相應(yīng)的一個興趣包也將分解為相應(yīng)的多個子興趣包,則在后續(xù)接收到數(shù)據(jù)包時,也需要等待所有相關(guān)的數(shù)據(jù)包接收完畢后進行數(shù)據(jù)語義融合處理。
前文提到了為了支持中間件架構(gòu)的名字快速翻譯,采用了一維多組件的離散化的命名機制。示例性的,可以以車聯(lián)網(wǎng)為例,假定道路旁每隔1公里部署一個路邊單元,每隔5分鐘采集和生成一次道路交通原始信息。這里給出以下原始命名方式,從{空間、時間、類型}三個維度對道路交通信息進行如下描述:
/middleware/space/…/time/…/type/…
上述命名機制中/middleware為專用前綴,/space,/time和/type為三個組件,分別從三個維度進行描述。每個組件都采用了分級的名字設(shè)計,并支持靈活的顆粒度,如表1所示。表1的原始命名的基本思想是將連續(xù)的空間和時間變量進行離散化,得到分層可聚合的名字,便于名字翻譯、聚合和優(yōu)化。表1中空間和時間最小的顆粒度為1公里和5分鐘,在實際應(yīng)用中可以根據(jù)需求進行顆粒度調(diào)整。
表1支持多維屬性的一維多組件命名示例
本發(fā)明實施例的上述方案,針對物聯(lián)網(wǎng)數(shù)據(jù)的多維特征,提出一種命名數(shù)據(jù)網(wǎng)絡(luò)的多維數(shù)據(jù)命名支持方法,通過多維命名中間件架構(gòu)和一維多組件離散化原始命名機制設(shè)計,在不改變NDN一維命名和網(wǎng)絡(luò)層最長前綴匹配的前提下為NDN增加多維數(shù)據(jù)支持能力;通過引入內(nèi)容智慧感知與名字動態(tài)映射機制實現(xiàn)用戶多維內(nèi)容請求到一維內(nèi)容請求的優(yōu)化翻譯,從而降低網(wǎng)絡(luò)負(fù)載和內(nèi)容獲取時延,提升用戶體驗。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準(zhǔn)。