摘要:分析了Cougar傳感器網絡數據管理系統的組成和功能,對存在簇頭節點能量消耗大,不均衡的問題,提出一種改進的Cougar系統,給出了節省能量的查詢優化預處理算法。實驗表明,改進后的Cougar系統有效地降低了傳感器網絡的能量消耗。
關鍵詞:傳感器網絡;Cougar系統;查詢處理
中圖分類號:TP3911文獻標識碼:A文章編號:1009-3044(2009)36-10437-02
An Improved Cougar Sensor Network Data Management System
TANG Ye-min1, WANG Lin-yan2
(1.Airforce Radar Academy, Wuhan 430019, China; 2.JiangHan University, Wuhan 430056, China)
Abstract: Analysis of Cougar sensor network data management system composition and function, there is cluster head node energy consumption, it is not balanced problems, propose a modified Cougar system, given the energy-saving pre-processing algorithm for query optimization. Experiments show that the improved Cougar system effectively reduces the energy consumption of sensor networks.
Key word: sensor networks; cougar system; query processing
傳感器網絡(WSN)是由部署在監測區域內大量具有傳感單元、數據處理單元和無線通信模塊的微型傳感器通過Ad Hoc方式構成的無線網絡系統,節點間通過分布式協同工作、實時檢測,獲取感知目標信息。由于傳感器網絡節點資源有限,易受外界干擾失效,如何對傳感器網絡中的數據進行管理,越來越引起人們關注[1]。
傳感器網絡數據管理系統是一個提取、存儲、管理傳感器網絡數據的系統,目前具有代表性的傳感器網絡數據管理主要包括加州大學伯克利分校TinyDB系統和康奈爾大學的Cougar系統,TinyDB側重于為傳感器數據管理提供底層系統框架的實現和對查詢引擎的優化實現,Cougar側重于有效通信機制和查詢機制能量有效的優化實現,提出操作盡可能在網內分布式處理,以減少通信能量的消耗,它們都是半分布式系統結構[2-3]。
1 Cougar系統分析
1.1 Cougar系統組成及功能[4]
Cougar系統包括三個部分:第一部分是圖形用戶界面(GUI);第二部分是客戶前端系統(FrontEnd);第三部分是查詢代理(QueryProxy)。GUI供用戶提交查詢命令,運行在主機上;客戶前端運行在選定節點上,擔當傳感器網絡和外部世界的網關;查詢代理運行在每個節點上,用來解釋和執行查詢。
Cougar系統將傳感器網絡中的節點劃分成簇。每個簇包含多個傳感器節點,其中一個是簇頭節點。當傳感器網絡配置結束后已經形成簇并確定了簇頭。客戶前端可以和簇頭通信,簇頭可以和客戶前端及簇中其它的傳感器節點通信。在傳感器網絡內部使用定向擴散(Directed Diffusion)路由算法進行通信,信息交換的格式是XML。GUI和客戶前端之間的通信使用TCP/IP數據包。
圖形用戶界面(GUI):基于Java的圖形界面,通過可視化方式或輸入SQL語言發出查詢請求,并以可視化方式顯示查詢結果。GUI的Map組件可以使用戶查看網絡的拓撲結構,并允許把一些節點加入一個簇,系統自動選舉簇頭。
客戶前端(FrontEnd):將從GUI獲取的查詢請求分發到傳感器各個節點上運行的查詢代理,它為運行在系統上的GUI保留當前運行的查詢軌跡,并從簇頭接收消息。客戶前端會對收到的數據進行相關處理,再轉發給發出查詢請求的GUI。除了接收GUI的命令,向GUI發送信息外,客戶前端還可以將數據傳輸到遠程MySQL數據庫。
查詢代理(QueryProxy):由設備管理器、節點層軟件和簇頭層軟件構成。設備管理器獲取傳感器節點的感知數據。節點層軟件管理傳感器節點上的查詢執行,并通過設備管理器與傳感器交互。當進行查詢處理時,節點層軟件從設備管理器獲得需要的數據,然后使用這些數據進行查詢處理,并將結果傳送到簇頭。簇頭除了具有節點層軟件外,還具有一個簇頭處理層軟件,從簇內其它成員接收數據。簇頭把接收到的數據提交給需要這些數據的查詢,并處理這些查詢,最后把結果傳送到發出查詢的客戶前端。
1.2 存在的問題
Cougar系統中運行客戶前端程序的節點可以看作基站,用戶的查詢請求一般與多個簇頭節點相關聯。將傳感器網絡中節點劃分成簇的方法能夠有效的節約能量,但是,至今提出的多數分簇路由協議,如LEACH[5]、HEED[6]等都側重于研究如何將網絡中的節點分成均勻的簇,以及簇內數據的傳輸問題,大都沒有涉及簇頭節點之間通信和簇頭節點與基站之間通信時的能量消耗問題,它們都假設簇頭節點與基站直接通信,也即每個簇頭節點查詢的數據直接傳送到基站。
在這種簇頭節點與基站直接通信的查詢方式中,存在簇頭節點能量消耗大,不均衡的問題。如距離基站遠的簇頭節點會比基站附近的簇頭節點過早失效;距離基站很遠的簇頭節點由于通信距離限制無法與基站直接通信,不利于傳感器網絡數據管理的擴展。
針對這一問題,提出改進方法,基本思想是改變簇頭節點與基站直接通信的查詢方式,對每個簇頭節點查詢的結果不再直接傳送到基站,而是通過對每個簇頭節點進行通信能量消耗的估算,尋找一個通信能量消耗少,滿足用戶查詢要求的簇頭節點,由該節點接收其它簇頭節點傳送的數據并進行計算處理,即網內處理,然后再將結果傳送到基站,這樣達到降低網絡節點能耗,滿足用戶查詢的目的。
2 改進的Cougar系統
2.1 查詢代理
原有的查詢代理由設備管理器、節點層軟件和簇頭層軟件三部分組成,原有的簇頭層軟件負責接收簇內其它成員傳送的數據,但為了實現簇頭之間的數據通信,必須新增加一個簇頭間處理軟件,它負責與查詢相關的簇頭之間數據的發送、接收和數據處理并將查詢結果傳送給客戶前端。增加的簇頭間軟件功能為:
step1 完成簇內成員的數據接收及查詢處理;
step2 等待接收其它簇頭節點的數據;
step3 將處理的最后結果傳送給客戶前端,完成查詢。
改進的查詢代理內部邏輯結構,如圖1。
2.2 客戶前端
用戶的查詢請求以一種類SQL語言表示,它僅僅描述了用戶感興趣的邏輯上一組數據集合,并沒有指定實際的實現手段,為了尋找一個通信能量消耗少,滿足一定實時性要求的簇頭節點,客戶前端在已有的功能基礎上,必須新增加一個查詢優化預處理軟件,對用戶的查詢請求進行解析、驗證和優化,其功能為:
step1 從GUI獲得用戶查詢請求,找出與之相關聯的簇頭節點;
step2 對每個簇頭節點進行能量消耗計算;
step3 尋找一個最優簇頭節點;
step4 制定一個優化的查詢計劃;
step5 將查詢分發到傳感器網絡。
改進的客戶前端結構,如圖2。
2.3 查詢優化預處理算法
傳感器網絡中由于能源受限,要求網絡中數據傳送量盡可能少,傳感器節點通信能量消耗遠遠大于計算時的能量消耗,簇頭節點nj執行查詢時,網絡消耗的能量包括其它簇頭節點與nj節點通信、nj節點對本身的數據和其它簇頭節點傳送來的數據的計算處理、nj節點與基站通信這三部分消耗的能量。在這三部分中,由于每個簇頭節點的計算耗時和對數據的計算處理執行的指令個數也相同,所以計算處理的能量消耗也相同,可不用再單獨計算,因此,只需計算比較每個簇頭節點的通信能量消耗。根據無線電能量關系模型:E=λkd2,數據傳輸過程中信號放大部分的能耗占主體,且與數據包大小和傳輸距離的平方成正比,λ是單位數據傳送單位距離時傳感器的能耗(焦耳J);k是數據包大小;d為通信距離。則其它簇頭節點與nj節點通信能量消耗
nj節點與基站通信能量消耗
由此可得簇頭節點nj查詢時網絡能量消耗
(1)
設用戶的查詢與n1,…,nm簇頭節點相關,根據式(1)估算每個簇頭節點查詢時網絡消耗的能量E,從中選出能量消耗最少的簇頭節點,算法的偽碼描述:
初始化:z 存放結果,p[]存放簇頭節點號;
for i=1 to m do
En = computing_energy(Ei); //進行節點能量消耗計算
if (i==1) then
z = p[i];
Ep = En;
else if(En < Ep) then
z = p[i];// 得到能量消耗最少的簇頭節點號
Ep = En;
endif
endif
enddo
3 實驗
本文運用面向對象的程序設計語言Visual C++ 6.0,對改進的Cougar系統與原Cougar系統中的查詢能量消耗進行了仿真比較。仿真中簇頭節點均勻分布,能量消耗如圖3。
測試實驗對簇頭節點分為三種情況:
1) 簇頭節點為1個時的能量消耗;
2) 簇頭節點為7個時的能量消耗;
3) 簇頭節點為20個時的能量消耗。
從圖3中可以看出,在簇頭節點為1個時,改進的Cougar系統與原Cougar系統中的查詢能量消耗完全一樣,這是特例,隨著簇頭節點的增多,改進的Cougar系統比原Cougar系統中的查詢能量消耗明顯降低,說明改進的Cougar系統能有效的減少能量消耗。
4 結束語
本文分析了Cougar傳感器網絡數據管理系統的組成和功能,根據查詢與簇頭節點的數據關聯的關系,在對簇頭節點通信能量消耗深入分析基礎上,對存在簇頭節點能量消耗大,不均衡的問題,提出一種改進的Cougar系統,給出了節省能量的查詢優化預處理算法。相關仿真實驗證明,改進后的Cougar系統能明顯提高查詢效率,有效降低節點能耗。
參考文獻:
[1] AKYILDIZ I F,SU E L,SANKARASUBRAMANIAM Y,et al.A Survey on Sensor Networks[J]. IEEE Communications Magazine,2002,40(8):102-104.
[2] MADDEN S,FRANKLIN M J.Fjording the Stream:An Architechchture for Queries over Streaming Sensor Data[C] // Proc ICDE Conference Los Alamitos.IEEE Computer Press,2002:555-666.
[3] YAO Y,GEHRKE J.The Cougar a Approach to In-network Query Processing in Sensor Networks[J]. ACM SIGMOD Record,2002,31(3):9-18.
[4] 孫利民,李建中,陳渝,等.無線傳感器網絡[M].北京:清華大學出版社,2005.
[5] WENDI B,HEINZELMAN.An Application-specific Protocol Architecture for Wireless Microsensornetworks[J]. IEEE Transactions on WirelessCommunications,2002,1(4):660-670.
[6] YOUNIS O,FAHMY S. HEED:a Hybrid Energy-efficient Distributed Clutering Approach for Ad Hoc Sensor Networks[J].IEEE Trans on Mobile Computering,2004,3(4):660-669.