專利名稱:一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法
技術(shù)領(lǐng)域:
本發(fā)明針對大規(guī)模的無線多媒體傳感器網(wǎng)絡(luò),設(shè)計了一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,采用這種方法可以解決單個節(jié)點感測到的事件較多造成的能量消耗和存儲消耗過快問題,不同節(jié)點間能量和存儲消耗不均衡性問題,并延長網(wǎng)絡(luò)的生存時間。
背景技術(shù):
無線多媒體傳感器網(wǎng)絡(luò)是在傳統(tǒng)無線傳感器網(wǎng)絡(luò)(WSNs)基礎(chǔ)上引入了音頻、視頻、圖像等多媒體信息感測功能后形成的一種新型傳感器網(wǎng)絡(luò),其節(jié)點除了配備簡單環(huán)境數(shù)據(jù)采集功能的傳感器外,一般還裝備有CMOS攝像頭、微型麥克風(fēng)等多媒體數(shù)據(jù)采集設(shè)備。與只具有簡單標量(如溫度、濕度等)環(huán)境數(shù)據(jù)采集功能的傳統(tǒng)WSNs相比,WMSNs能感測信息量更加豐富的音頻、視頻、圖像等多媒體信息,能實現(xiàn)細粒度、精準信息的監(jiān)測;在數(shù)據(jù)采集、處理能耗方面能耗更高;數(shù)據(jù)處理時更加復(fù)雜,節(jié)點對采集到的數(shù)據(jù)往往需要做圖像壓縮、編碼解碼、分布式視頻處理、數(shù)據(jù)融合等操作;應(yīng)用場景更注重數(shù)據(jù)質(zhì)量,要求網(wǎng)絡(luò)能夠?qū)Σ樵兊捻憫?yīng)盡可能快,對于用戶而言,網(wǎng)絡(luò)應(yīng)當具備較高的吞吐量;多媒體傳感器網(wǎng)絡(luò)在QoS要求得到滿足的情況下再追求能耗最小化,而在傳統(tǒng)的WSNs往往以犧牲一部分QoS方面的特性為代價來追求能耗最小。這些特點的存在,使得在WMSNs中單個節(jié)點因產(chǎn)生的數(shù)據(jù)量過多和多個節(jié)點間能量、存儲消耗的不均衡問題顯得更加突出,節(jié)點很容易因能量耗盡或存儲耗盡而停止工作。此外,由于我們考慮的是大規(guī)模網(wǎng)絡(luò),大規(guī)模網(wǎng)絡(luò)的節(jié)點數(shù)目多、覆蓋范圍大,沖突碰撞、數(shù)據(jù)冗余、控制開銷、出錯幾率也隨之增加。
我們考慮通過加強節(jié)點間的協(xié)作來緩解這些因素對網(wǎng)絡(luò)性能的降低,在此之前,未見其他用于這種較為苛刻的工作環(huán)境的用以完成數(shù)據(jù)收集、查詢的任務(wù)的路由及存儲設(shè)計方案。
發(fā)明內(nèi)容
本發(fā)明目的是解決單個節(jié)點感測到的事件較多而產(chǎn)生的數(shù)據(jù)量過多和由此帶來的不同節(jié)點間能量和存儲消耗不均衡性問題,以及設(shè)計大規(guī)模多媒體傳感器網(wǎng)絡(luò)中采用網(wǎng)內(nèi)存儲、響應(yīng)用戶查詢時網(wǎng)絡(luò)拓撲優(yōu)化和多個數(shù)據(jù)副本管理的方法。并延長網(wǎng)絡(luò)的生存時間。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,尤其是大規(guī)模無線傳感器網(wǎng)絡(luò)存儲方法和基于多副本的查詢處理方法(A Collaboration-basedStorage Management Scheme in Multimedia Sensor Networks,CBSM),步驟如下 (1)確定節(jié)點協(xié)作方式在傳感器網(wǎng)絡(luò)的節(jié)點提取圖像特征及標識圖像,并以消息驅(qū)動的方式和鄰居節(jié)點通信,以確定可做數(shù)據(jù)融合的節(jié)點集; (2)確定存儲耗盡傳感器網(wǎng)絡(luò)節(jié)點的更新方式對傳統(tǒng)存儲分布式存儲的一個重要優(yōu)化是加入了對“假死”節(jié)點的數(shù)據(jù)更新策略,設(shè)計該策略的目的是在能量消耗和保存數(shù)據(jù)質(zhì)量這二者間取得一個折中; (3)采取一種負載均衡方法動態(tài)地計算傳感器網(wǎng)絡(luò)節(jié)點每次數(shù)據(jù)更新或轉(zhuǎn)移時的最合適的數(shù)據(jù)大小,這一方法在一定程度上同一個節(jié)點上能量消耗和存儲消耗之間的均衡以及不同的節(jié)點間的能量消耗和存儲消耗均衡; (4)采取多個Sink節(jié)點的布局方式針對節(jié)點的隨機部署格局,使用遺傳算法求解Sink的合適位置。Sink節(jié)點是網(wǎng)絡(luò)關(guān)鍵點; (5)構(gòu)建網(wǎng)絡(luò)拓撲采用常用的分簇的方式,通過對TopDisc(拓撲控制算法)算法改進,構(gòu)建層次化的網(wǎng)絡(luò)拓撲結(jié)構(gòu)來優(yōu)化用戶查詢處理過程; (6)優(yōu)化數(shù)據(jù)查詢過程通過創(chuàng)建和管理多個數(shù)據(jù)副本,建立消息驅(qū)動的數(shù)據(jù)查詢過程; 本發(fā)明的有益效果是采用的方法可以解決單個節(jié)點感測到的事件較多造成的能量消耗和存儲消耗過快問題,不同節(jié)點間能量和存儲消耗不均衡性問題,并延長網(wǎng)絡(luò)的生存時間。
具體實施例方式 階段1確定節(jié)點協(xié)作方式 各個節(jié)點分別記錄的局部時間的計算時間差,利用時間差相對當前時刻定義事件標識。例如事件E發(fā)生后,節(jié)點A、B都感測到了該事件并都按照各自的本地時間來分別記錄為TAE和TBE,A和B通信的時刻為TA和TB,通過比較是否滿足 ΔTA(=TA-TAE)=ΔTB(=TB-TBE),判斷它們監(jiān)測到的是否為同一事件。
對事件的標識后,節(jié)點協(xié)作方式如下當感測到事件的節(jié)點獲取圖像數(shù)據(jù)后,先將緩存在本節(jié)點的RAM并對圖像特征抽取,據(jù)此生成協(xié)作消息,然后在通信范圍內(nèi)廣播如下格式的查詢消息 Msg { MsgType=QueryMsg;//消息類型定義 SensorId; //發(fā)送該消息的節(jié)點標識 EventTime; //事件發(fā)生時間(TAE) CurrentTime;//當前時間(TA) ImageDescription;//圖像特征描述 ImageSize;//描述圖像的數(shù)據(jù)大小 } 發(fā)送該消息的目的是針對該事件查詢該節(jié)點周圍哪個鄰居節(jié)點含有相關(guān)數(shù)據(jù),以便執(zhí)行數(shù)據(jù)融合。
假設(shè)A節(jié)點發(fā)送了QueryMsg后,B節(jié)點收到該消息后,若判斷為同一事件,則B節(jié)點從A發(fā)來的消息中ImageDescription屬性獲取到A中所描述的圖像特征,并計算和本節(jié)點的ImageDescription值的相似度(通過計算協(xié)方差),若該相似度達到一個預(yù)先給定的閾值α1,則表明A和B中關(guān)于同一事件的圖像所描述的數(shù)據(jù)高度相似,此時只需其中一個節(jié)點保存該圖像數(shù)據(jù)即可,我們約定判斷ImageSize保存大小較小者,另一節(jié)點將緩存中的數(shù)據(jù)丟棄;若該相似度達不到預(yù)先給定的閾值α1,但是達到了α2,這表明A和B中的數(shù)據(jù)雖然不高度相似,但是有一定的相關(guān)性,可以考慮做數(shù)據(jù)融合,此時B將向A返回一個確認可做數(shù)據(jù)融合的消息,消息格式為 Msg { MsgType=AgreMsg;//消息類型定義 SensorId;//發(fā)送該消息的節(jié)點標識 Simility;//相關(guān)度 } 當A發(fā)送QueryMsg的同時,初始化一個計時器,開啟一個消息等待過程,當計時器時間為0時,便不再等待接收消息。在該計時過程終止前,A節(jié)點每收到一個AgreMsg便將發(fā)送該節(jié)點的SensorId加入到一個集合中,這個集合是和A可以做數(shù)據(jù)融合的備選集(AggregationSet)。等到消息等待過程結(jié)束后,Aggregation Set已確定,此時A節(jié)點為了做數(shù)據(jù)融合,而將數(shù)據(jù)傳到Aggregation Set中相似度最高的一個節(jié)點; 在A節(jié)點選擇了傳輸目的節(jié)點之后,傳輸數(shù)據(jù)時先對圖像采用小波變換,從多個層次上將數(shù)據(jù)進行分解,將圖像分解成優(yōu)先級不同的若干個包,并根據(jù)應(yīng)用對圖像質(zhì)量的要求將重要性低的包丟棄,使圖像在存儲和能量的消耗上得到了降低,然后采用半可靠的傳輸方式(semi-reliable transmission)將數(shù)據(jù)傳輸?shù)侥康墓?jié)點。
階段2確定存儲耗盡節(jié)點的更新方式 對于節(jié)點A,若其剩余存儲空間小于預(yù)設(shè)的閾值,便被認為存儲即將耗盡,此時我們采用如下步驟更新其存儲空間 首先,從A的存儲中選擇所占空間最大的圖像,獲取對該圖像的描述,并在通信范圍內(nèi)廣播查詢消息QueryImageMsg Msg { MsgType=QueryImageMsg;//消息類型定義 SensorId; //發(fā)送該消息的節(jié)點標識 ImageDescription;//圖像特征描述 ImageSize; //圖像大小(近似值) } 節(jié)點B接收到該消息比較消息中圖像和節(jié)點上已有圖像的ImageDescription的相似度,若存在相似圖像,則向A節(jié)點返回AckMsg消息,結(jié)構(gòu)如下 Msg { MsgType=AckMsg;//消息類型定義 SensorId;//發(fā)送該消息的節(jié)點標識 } 當A節(jié)點收到第一個AckMsg后終止消息等待過程,并將存儲中描述該圖像的數(shù)據(jù)刪除,同時添加一個指向B節(jié)點的“指針”來取代原先的存儲數(shù)據(jù),這一操作完成了存儲更新。
同樣,在節(jié)點A廣播了查詢消息QueryImageMsg之后設(shè)置一個計時器來開啟消息等待過程,若該等待過程結(jié)束還沒有收到任何返回的AckMsg,則表明鄰近節(jié)點沒有和該圖像數(shù)據(jù)的相似的數(shù)據(jù),為了更新自己的存儲空間,A節(jié)點只能將該部分數(shù)據(jù)轉(zhuǎn)移到距離最近的剩余空間足夠的鄰居節(jié)點或直接刪除這部分數(shù)據(jù)。
階段3設(shè)計了一種負載均衡方法 在數(shù)據(jù)遷移的過程會產(chǎn)生“逆轉(zhuǎn)”的現(xiàn)象,即A節(jié)點已經(jīng)進入“假死”狀態(tài),為了更新存儲而將數(shù)據(jù)傳輸?shù)紹節(jié)點,有時出現(xiàn)兩種特殊情況(1)原先可正常工作的B節(jié)點因接收了數(shù)據(jù)大小為ι的數(shù)據(jù)而“假死”;(2)A節(jié)點由于發(fā)送大小為ι的數(shù)據(jù)而由“假死”變?yōu)椤罢嫠馈?。這兩種情況的出現(xiàn)的根源均在于數(shù)據(jù)ι的大小過大。
為避免較小的ι不能緩解A節(jié)點的“假死”狀態(tài),過大的ι會引發(fā)“逆轉(zhuǎn)”現(xiàn)象,我們 動態(tài)地控制ι的大小,使之成為一個隨節(jié)點當前剩余能量和存儲狀態(tài)變化的值。
設(shè)即將發(fā)生數(shù)據(jù)遷移的A、B兩節(jié)點初始能量和初始存儲空間分別為EA0、EB0、VA0、VB0,當前能量為EA、EB、VA、VB,則每次需要轉(zhuǎn)移數(shù)據(jù)的大小取
時,既可以滿足使A節(jié)點更新的空間盡可能大,又不會發(fā)生“逆轉(zhuǎn)”現(xiàn)象,在一定程度上做到了同一個節(jié)點上能量消耗和存儲消耗之間的均衡以及不同的節(jié)點間的能量消耗和存儲消耗均衡。
階段4設(shè)計多個Sink的布局方式 對Sink的布局做優(yōu)化配置,最理想的目標是找到布置Sink節(jié)點的最佳位置,使各傳感器節(jié)點和Sink節(jié)點加權(quán)距離和最小。這一問題屬于非線性組合優(yōu)化問題,已被證明是NP-hard問題,使用枚舉法理論上是可以達到最優(yōu)解的,但計算時間開銷過大,并且隨著WSN工作后不斷有節(jié)點失效,這個計算過程需要不斷動態(tài)進行,難以付諸實施。
本方案采用遺傳算法來求解Sink的合適位置,將此問題建模如下 表1 變量定義
在Sink節(jié)點的候選集合M中找到K個適合的位置,使由這些位置組成的最優(yōu)解滿足傳感器節(jié)點與Sink節(jié)點之間的總加權(quán)距離達到最小,即求取 遺傳算法的解法師把所求問題的參數(shù)編碼為染色體,再利用迭代的方式進行選擇、交配及變異運算來交換種群中染色體的信息,最終生成符合優(yōu)化目標的染色體。在我們要求解的表達式中,作為參數(shù)的決策變量及其可能取值為 約束條件為 求解遺傳算法所需的各個要素為 染色體編碼以網(wǎng)格上交叉點的二維坐標為編碼對象,采用二進制編碼方法。
適應(yīng)度函數(shù) 其中,Cmax為一個較大的常數(shù),保證F(x)個體的適應(yīng)度F(x)總為非負值,
為目標函數(shù)。
選擇操作采用適應(yīng)度比例方法來對種群中的個體進行選擇。設(shè)群體大小為M,個體i的適應(yīng)度為Fi,則個體i被選中的概率為 交叉操作采用單點交叉方法。
變異操作采用基本位變異方法。
定義完遺傳算法所需的各個要素后,將其作為matlab中遺傳算法工具包的輸入,計算出結(jié)果,根據(jù)這些結(jié)果求得Sink節(jié)點的具體位置。
階段5構(gòu)建網(wǎng)絡(luò)拓撲 本方案采用常用的分簇的方式,通過對TopDisc算法略微改進,構(gòu)建層次化的網(wǎng)絡(luò)拓撲結(jié)構(gòu)來優(yōu)化用戶查詢處理過程。網(wǎng)絡(luò)的狀態(tài)分為拓撲構(gòu)建階段和數(shù)據(jù)傳輸階段。在拓撲構(gòu)建階段整個網(wǎng)絡(luò)的拓撲結(jié)構(gòu)不明確,節(jié)點全部處于活動狀態(tài),對用于拓撲發(fā)現(xiàn)的請求數(shù)據(jù)包進行洪泛傳播。首先,代理節(jié)點向Sink節(jié)點發(fā)送建立拓撲的消息;然后,由離Sink節(jié)點最近的傳感器節(jié)點啟動“發(fā)現(xiàn)鄰居節(jié)點”的廣播消息,每個消息都攜帶一種狀態(tài)信息;鄰居節(jié)點接收到消息后等待一段時間,該時間根據(jù)其與發(fā)送節(jié)點之間的距離以及節(jié)點當前的剩余能量成反比,即 其中,ΔT為TopDisc中的等待時延,c1、c2為時延常數(shù),d為發(fā)送查詢消息的距離,E為節(jié)點當前能量。
隨著拓撲發(fā)現(xiàn)請求消息在網(wǎng)絡(luò)中傳播,傳感器網(wǎng)絡(luò)被分割成多個簇(cluster),每個簇都有一個簇頭。由簇頭負責向Sink通信和向本簇內(nèi)其他節(jié)點發(fā)送查詢信息,簇頭之間可以直接通信或通過Sink節(jié)點進行通信,從而形成了一個能夠覆蓋整個監(jiān)控區(qū)域的層次化結(jié)構(gòu)的的傳感器網(wǎng)絡(luò)。
在數(shù)據(jù)傳輸階段,除了傳輸正常的任務(wù)性數(shù)據(jù)外,還定時在簇頭節(jié)點周圍進行拓撲重構(gòu),從而實現(xiàn)簇頭的輪換。
階段6優(yōu)化數(shù)據(jù)查詢過程 S個Sink節(jié)點都收到了該查詢請求,并在各自的通信范圍內(nèi)廣播該查詢請求,收到該查詢請求的簇頭節(jié)點在本簇范圍內(nèi)轉(zhuǎn)發(fā)該查詢請求,每個收到該查詢請求的節(jié)點通過比較數(shù)據(jù)特征描述來判斷是否含有用戶所需要的數(shù)據(jù),若其中的節(jié)點i包含所查詢的數(shù)據(jù),則向它所在簇的簇頭節(jié)點返回查詢結(jié)果,并由該簇頭節(jié)點將查詢結(jié)果返回給所對應(yīng)的Sink節(jié)點,同時該節(jié)點本身將該記錄該數(shù)據(jù)被查詢次數(shù)的計數(shù)器加一,記錄數(shù)據(jù)被查詢的次數(shù)是為了在存儲空間耗盡提供判斷數(shù)據(jù)是否可以被優(yōu)先刪除的依據(jù)。
為了提高查詢響應(yīng)時間,當節(jié)點上某個數(shù)據(jù)的被查詢頻率計數(shù)達到預(yù)設(shè)閾值α?xí)r,在其所在簇的簇頭節(jié)點上創(chuàng)建該數(shù)據(jù)的副本。這會導(dǎo)致兩種情況的發(fā)生一是簇頭被輪換后在同一個簇內(nèi)存在數(shù)據(jù)的多個副本,二是簇頭的副本和原始副本之前可能存在不一致的情況,為了使簇內(nèi)的副本保持一致,且控制數(shù)據(jù)副本的數(shù)目,每次簇頭節(jié)點接收到來自簇內(nèi)其他節(jié)點的數(shù)據(jù)副本時,在簇內(nèi)廣播一個通知消息,通知其他擁有該數(shù)據(jù)副本的節(jié)點放棄這些副本,該消息的格式為 Msg { MsgType=UpdateReplicaMsg;//消息類型定義 DataCharacter;//查詢數(shù)據(jù)的特征描述 ReplicaID; //副本標識,由生成原始數(shù)據(jù)的節(jié)點賦予 } 簇內(nèi)其他所有接收到該消息的節(jié)點若存在同樣的數(shù)據(jù)副本,但是副本標識不一致,則放棄原有的副本,這一操作可以保持副本的更新。
當某個節(jié)點出現(xiàn)“假死”的情況,且該節(jié)點的當前狀態(tài)為非簇頭節(jié)點,首先通過刪除該節(jié)點上所有數(shù)據(jù)副本來更新其存儲空間。對于簇頭節(jié)點的“假死”,則將其數(shù)據(jù)轉(zhuǎn)移到鄰近簇的簇頭。
權(quán)利要求
1.一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法(CBSM),其特征是步驟如下
(1)確定節(jié)點協(xié)作方式在傳感器網(wǎng)絡(luò)的節(jié)點提取圖像特征和標識圖像,并以消息驅(qū)動的方式和鄰居節(jié)點通信,以確定可做數(shù)據(jù)融合的節(jié)點集;
(2)確定存儲耗盡傳感器網(wǎng)絡(luò)節(jié)點的更新方式對傳統(tǒng)存儲分布式存儲的一個重要優(yōu)化是加入了對“假死”節(jié)點的數(shù)據(jù)更新策略,在能量消耗和保存數(shù)據(jù)質(zhì)量這二者間取得一個折中;
(3)采取一種負載均衡方法動態(tài)地計算傳感器網(wǎng)絡(luò)節(jié)點每次數(shù)據(jù)更新或轉(zhuǎn)移時的最合適的數(shù)據(jù)大小,這一方法在一定程度上同一個節(jié)點上能量消耗和存儲消耗之間的均衡以及不同的節(jié)點間的能量消耗和存儲消耗均衡;
(4)采取多個Sink節(jié)點的布局方式針對Sink節(jié)點的隨機部署格局,使用遺傳算法求解Sink節(jié)點的合適位置;
(5)構(gòu)建網(wǎng)絡(luò)拓撲采用常用的分簇的方式,通過對TopDisc算法改進,構(gòu)建層次化的網(wǎng)絡(luò)拓撲結(jié)構(gòu)來優(yōu)化用戶查詢處理過程;
(6)優(yōu)化數(shù)據(jù)查詢過程通過創(chuàng)建和管理多個數(shù)據(jù)副本,建立消息驅(qū)動的數(shù)據(jù)查詢過程;
用于解決單個節(jié)點感測到的事件較多造成的能量消耗和存儲消耗過快問題,和不同節(jié)點間能量和存儲消耗不均衡性問題,并延長網(wǎng)絡(luò)的生存時間。
2.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是網(wǎng)絡(luò)采用消息驅(qū)動,鄰近節(jié)點間對感測到的圖像,提取圖像特征,交換信息用以完成數(shù)據(jù)融合和數(shù)據(jù)壓縮,對于進入“假死”狀態(tài)的節(jié)點,動態(tài)選擇鄰近節(jié)點轉(zhuǎn)移數(shù)據(jù),每次轉(zhuǎn)移的數(shù)據(jù)長度按照給定公式獲得。
3.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是網(wǎng)絡(luò)節(jié)點按照隨機撒布,多個Sink節(jié)點采用遺傳算法求解部署位置,在執(zhí)行網(wǎng)內(nèi)存儲和查詢過程中對訪問頻率高的數(shù)據(jù)生成副本,并通過改進過的TopDisc算法分簇管理數(shù)據(jù)副本。
4.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是所述確定節(jié)點協(xié)作方式各個節(jié)點分別記錄的局部時間的計算時間差,利用時間差相對當前時刻定義事件標識,從而判斷各個節(jié)點監(jiān)測到的是否為同一事件;
對事件的標識后,節(jié)點協(xié)作方式如下當感測到事件的節(jié)點獲取圖像數(shù)據(jù)后,先將緩存在本節(jié)點的RAM并對圖像特征抽取,據(jù)此生成協(xié)作消息,然后在通信范圍內(nèi)廣播如下格式的查詢消息
Msg
{
MsgType=QueryMsg;//消息類型定義
SensorId;//發(fā)送該消息的節(jié)點標識
EventTime;//事件發(fā)生時間(TAE)
CurrentTime; //當前時間(TA)
ImageDescription;//圖像特征描述
ImageSize;//描述圖像的數(shù)據(jù)大小
}
發(fā)送該消息的目的是針對該事件查詢該節(jié)點周圍哪個鄰居節(jié)點含有相關(guān)數(shù)據(jù),以便執(zhí)行數(shù)據(jù)融合;
當某節(jié)點發(fā)送QueryMsg的同時,初始化一個計時器,開啟一個消息等待過程,當計時器時間為0時,便不再等待接收消息。在該計時過程終止前,所述節(jié)點每收到一個AgreMsg便將發(fā)送該節(jié)點的SensorId加入到一個集合中,這個集合是和所述節(jié)點可以做數(shù)據(jù)融合的備選集;等到消息等待過程結(jié)束后,備選集Aggregation Set已確定,此時所述節(jié)點為了做數(shù)據(jù)融合,而將數(shù)據(jù)傳到備選集中相似度最高的一個節(jié)點;
在所述節(jié)點選擇了傳輸目的節(jié)點之后,傳輸數(shù)據(jù)時先對圖像采用小波變換,從多個層次上將數(shù)據(jù)進行分解,將圖像分解成優(yōu)先級不同的若干個包,并根據(jù)應(yīng)用對圖像質(zhì)量的要求將重要性低的包丟棄,使圖像在存儲和能量的消耗上得到了降低,然后采用半可靠的傳輸方式將數(shù)據(jù)傳輸?shù)侥康墓?jié)點。
5.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是確定存儲耗盡節(jié)點的更新方式,對于節(jié)點A,若其剩余存儲空間小于預(yù)設(shè)的閾值,便被認為存儲即將耗盡,此時我們采用如下步驟更新其存儲空間
首先,從A的存儲中選擇所占空間最大的圖像,獲取對該圖像的描述,并在通信范圍內(nèi)廣播查詢消息QueryImageMsg
Msg
{
MsgType=QueryImageMsg;//消息類型定義
SensorId;//發(fā)送該消息的節(jié)點標
識
ImageDescription;//圖像特征描述
ImageSize;//圖像大小(近似值)
}
節(jié)點B接收到該消息比較消息中圖像和節(jié)點上已有圖像的ImageDescription的相似度,若存在相似圖像,則向A節(jié)點返回AckMsg消息,結(jié)構(gòu)如下
Msg
{
MsgType=AckMsg;//消息類型定義
SensorId;//發(fā)送該消息的節(jié)點標識
}
當A節(jié)點收到第一個AckMsg后終止消息等待過程,并將存儲中描述該圖像的數(shù)據(jù)刪除,同時添加一個指向B節(jié)點的“指針”來取代原先的存儲數(shù)據(jù),這一操作完成了存儲更新;
同樣,在節(jié)點A廣播了查詢消息QueryImageMsg之后設(shè)置一個計時器來開啟消息等待過程,若該等待過程結(jié)束還沒有收到任何返回的AckMsg,則表明鄰近節(jié)點沒有和該圖像數(shù)據(jù)的相似的數(shù)據(jù),為了更新自己的存儲空間,A節(jié)點只能將該部分數(shù)據(jù)轉(zhuǎn)移到距離最近的剩余空間足夠的鄰居節(jié)點或直接刪除這部分數(shù)據(jù)。
6.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是所述負載均衡方法在數(shù)據(jù)遷移的過程會產(chǎn)生“逆轉(zhuǎn)”的現(xiàn)象,即A節(jié)點已經(jīng)進入“假死”狀態(tài),為了更新存儲而將數(shù)據(jù)傳輸?shù)紹節(jié)點,有時出現(xiàn)兩種特殊情況(1)原先可正常工作的B節(jié)點因接收了數(shù)據(jù)大小為ι的數(shù)據(jù)而“假死”;(2)A節(jié)點由于發(fā)送大小為ι的數(shù)據(jù)而由“假死”變?yōu)椤罢嫠馈?。這兩種情況的出現(xiàn)的根源均在于數(shù)據(jù)ι的大小過大;
為避免較小的數(shù)據(jù)ι不能緩解A節(jié)點的“假死”狀態(tài),過大的ι會引發(fā)“逆轉(zhuǎn)”現(xiàn)象;通過動態(tài)地控制數(shù)據(jù)ι的大小,使之成為一個隨節(jié)點當前剩余能量和存儲狀態(tài)變化的值;
設(shè)即將發(fā)生數(shù)據(jù)遷移的A、B兩節(jié)點初始能量和初始存儲空間分為EA0、EB0、VA0、VB0,當前能量為EA、EB、VA、VB,則每次需要轉(zhuǎn)移數(shù)據(jù)的大小取
時,既可以滿足使A節(jié)點更新的空間盡可能大,又不會發(fā)生“逆轉(zhuǎn)”現(xiàn)象,在一定程度上做到了同一個節(jié)點上能量消耗和存儲消耗之間的均衡以及不同的節(jié)點間的能量消耗和存儲消耗均衡。
7.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是構(gòu)建網(wǎng)絡(luò)拓撲步驟
采用常用的分簇的方式,通過對TopDisc算法略微改進,構(gòu)建層次化的網(wǎng)絡(luò)拓撲結(jié)構(gòu)來優(yōu)化用戶查詢處理過程;網(wǎng)絡(luò)的狀態(tài)分為拓撲構(gòu)建階段和數(shù)據(jù)傳輸階段;
在拓撲構(gòu)建階段時節(jié)點全部處于活動狀態(tài),對用于拓撲發(fā)現(xiàn)的請求數(shù)據(jù)包進行洪泛傳播;首先,代理節(jié)點向Sink節(jié)點發(fā)送建立拓撲的消息;然后,由離Sink節(jié)點最近的傳感器節(jié)點啟動“發(fā)現(xiàn)鄰居節(jié)點”的廣播消息,每個消息都攜帶一種狀態(tài)信息;鄰居節(jié)點接收到消息后等待一段時間,該時間根據(jù)其與發(fā)送節(jié)點之間的距離以及節(jié)點當前的剩余能量成反比,即
其中,ΔT為TopDisc中的等待時延,C1、C2為時延常數(shù),d為發(fā)送查詢消息的距離,E為節(jié)點當前能量;
隨著拓撲發(fā)現(xiàn)請求消息在網(wǎng)絡(luò)中傳播,傳感器網(wǎng)絡(luò)被分割成多個簇(cluster),每個簇都有一個簇頭;由簇頭負責向Sink通信和向本簇內(nèi)其他節(jié)點發(fā)送查詢信息,簇頭之間可以直接通信或通過Sink節(jié)點進行通信,從而形成了一個能夠覆蓋整個監(jiān)控區(qū)域的層次化結(jié)構(gòu)的的傳感器網(wǎng)絡(luò);
在數(shù)據(jù)傳輸階段,除了傳輸正常的任務(wù)性數(shù)據(jù)外,還定時在簇頭節(jié)點周圍進行拓撲重構(gòu),從而實現(xiàn)簇頭的輪換。
8.根據(jù)權(quán)利要求1所述的一種基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,其特征是優(yōu)化數(shù)據(jù)查詢過程
S個Sink節(jié)點都收到了該查詢請求,并在各自的通信范圍內(nèi)廣播該查詢請求,收到該查詢請求的簇頭節(jié)點在本簇范圍內(nèi)轉(zhuǎn)發(fā)該查詢請求,每個收到該查詢請求的節(jié)點通過比較數(shù)據(jù)特征描述來判斷是否含有用戶所需要的數(shù)據(jù),若其中的節(jié)點i包含所查詢的數(shù)據(jù),則向它所在簇的簇頭節(jié)點返回查詢結(jié)果,并由該簇頭節(jié)點將查詢結(jié)果返回給所對應(yīng)的Sink節(jié)點,同時該節(jié)點本身將該記錄該數(shù)據(jù)被查詢次數(shù)的計數(shù)器加一,記錄數(shù)據(jù)被查詢的次數(shù)是為了在存儲空間耗盡提供判斷數(shù)據(jù)是否可以被優(yōu)先刪除的依據(jù);
為了提高查詢響應(yīng)時間,當節(jié)點上某個數(shù)據(jù)的被查詢頻率計數(shù)達到預(yù)設(shè)閾值α?xí)r,在其所在簇的簇頭節(jié)點上創(chuàng)建該數(shù)據(jù)的副本。這會導(dǎo)致兩種情況的發(fā)生一是簇頭被輪換后在同一個簇內(nèi)存在數(shù)據(jù)的多個副本,二是簇頭的副本和原始副本之前可能存在不一致的情況,為了使簇內(nèi)的副本保持一致,且控制數(shù)據(jù)副本的數(shù)目,每次簇頭節(jié)點接收到來自簇內(nèi)其他節(jié)點的數(shù)據(jù)副本時,在簇內(nèi)廣播一個通知消息,通知其他擁有該數(shù)據(jù)副本的節(jié)點放棄這些副本,該消息的格式為
Msg
{
MsgType=UpdateReplicaMsg;//消息類型定義
DataCharacter; //查詢數(shù)據(jù)的特征描述
ReplicaID; //副本標識,由生成原始數(shù)據(jù)的節(jié)點賦予
}
簇內(nèi)其他所有接收到該消息的節(jié)點若存在同樣的數(shù)據(jù)副本,但是副本標識不一致,則放棄原有的副本,這一操作可以保持副本的更新。
當某個節(jié)點出現(xiàn)“假死”的情況,且該節(jié)點的當前狀態(tài)為非簇頭節(jié)點,首先通過刪除該節(jié)點上所有數(shù)據(jù)副本來更新其存儲空間。對于簇頭節(jié)點的“假死”,則將其數(shù)據(jù)轉(zhuǎn)移到鄰近簇的簇頭。
全文摘要
基于多節(jié)點協(xié)作的傳感器網(wǎng)絡(luò)存儲方法,步驟如下(1)確定節(jié)點協(xié)作方式在傳感器網(wǎng)絡(luò)的節(jié)點提取圖像特征和標識圖像,并確定可做數(shù)據(jù)融合的節(jié)點集;(2)確定存儲耗盡傳感器網(wǎng)絡(luò)節(jié)點的更新方式;(3)動態(tài)地計算傳感器網(wǎng)絡(luò)節(jié)點每次數(shù)據(jù)更新或轉(zhuǎn)移時的最合適的數(shù)據(jù)大??;(4)使用遺傳算法求解Sink節(jié)點的合適位置;(5)通過對TopDisc算法改進,構(gòu)建層次化的網(wǎng)絡(luò)拓撲結(jié)構(gòu)來優(yōu)化用戶查詢處理過程;(6)優(yōu)化數(shù)據(jù)查詢過程通過創(chuàng)建和管理多個數(shù)據(jù)副本,建立消息驅(qū)動的數(shù)據(jù)查詢過程;用于解決單個節(jié)點感測到的事件較多和不同節(jié)點間能量和存儲消耗不均衡性問題,并延長網(wǎng)絡(luò)的生存時間。
文檔編號H04L29/08GK101686262SQ200910302289
公開日2010年3月31日 申請日期2009年5月14日 優(yōu)先權(quán)日2009年5月14日
發(fā)明者陳貴海, 嚴允培 申請人:南京大學(xué)