無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量傳感器節(jié)點通過無線通信方式組成的一個多跳自組織網(wǎng)絡(luò)系統(tǒng)。無線傳感器節(jié)點可以將節(jié)點覆蓋區(qū)域內(nèi)的傳感信息通過無線多跳路由方式傳送到接收者,也可以通過反向路由方式傳送控制命令,使受控對象按照指令執(zhí)行相應(yīng)操作。無線傳感器網(wǎng)絡(luò)極大地提高了人類對世界的認識能力和改造能力,在國防軍事、環(huán)境檢測、農(nóng)業(yè)生產(chǎn)、醫(yī)療衛(wèi)生、智能家居等領(lǐng)域扮演著越來越重要的角色。
本文以室內(nèi)環(huán)境檢測IPv6無線傳感器網(wǎng)絡(luò)為研究背景。系統(tǒng)由傳感器節(jié)點和網(wǎng)關(guān)設(shè)備組成。每個傳感器節(jié)點既可以發(fā)送本身的傳感信息,也可以路由轉(zhuǎn)發(fā)其他傳感器節(jié)點信息。監(jiān)測區(qū)域內(nèi)的傳感信息由傳感器節(jié)點收集,通過多跳路由方式匯聚到網(wǎng)關(guān),并由網(wǎng)關(guān)通過以太網(wǎng)或GPRS/CDMA等互聯(lián)網(wǎng)接入方式傳送到網(wǎng)絡(luò)服務(wù)器。
由于無線傳感器網(wǎng)絡(luò)中的傳感器節(jié)點會在短時間內(nèi)采集大量的傳感信息,直接查詢和處理這些大量的傳感信息非常不便。因此,有必要設(shè)計一個方便、友好、高效的無線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)。本文設(shè)計實現(xiàn)了一種基于Web的無線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)。通過本系統(tǒng),用戶不僅可以實時地以曲線圖或數(shù)據(jù)表的形式查看溫度、濕度等多種傳感信息,動態(tài)拓撲路由變化信息,還可以對傳感器節(jié)點和空調(diào)等設(shè)備實現(xiàn)遠程控制。
1 主流WSN可視化技術(shù)介紹
當前無線傳感器網(wǎng)絡(luò)的研究熱點主要集中在網(wǎng)絡(luò)體系架構(gòu)、網(wǎng)絡(luò)通信協(xié)議、網(wǎng)絡(luò)安全管理等方面,針對傳感信息可視化方面的研究相對較少。到目前為止,針對無線傳感器網(wǎng)絡(luò)設(shè)計的可視化工具主要有SpyGlass,Surge Network Viewer等。SpyGlass使用多層次的體系結(jié)構(gòu),是一個模塊化的、易于擴展的無線傳感器網(wǎng)絡(luò)可視化工具。其體系結(jié)構(gòu)由傳感器網(wǎng)絡(luò)、網(wǎng)關(guān)、可視化軟件三部分組成。網(wǎng)關(guān)使用TCP/IP通信協(xié)議將收集到的傳感信息提供給遠程計算機的可視化軟件。SurgeNetwork Viewer是Crossbow公司使用實現(xiàn)的無線傳感器網(wǎng)絡(luò)可視化工具。通過Surge Network Viewer用戶可以監(jiān)測傳感器網(wǎng)絡(luò)和分析mesh網(wǎng)絡(luò)的性能。
上述無線傳感器網(wǎng)絡(luò)可視化工具雖然在一定程度上可以完成傳感網(wǎng)絡(luò)信息的管理功能,但由于建立在特定的應(yīng)用環(huán)境基礎(chǔ)上,其通用性、可移植性比較差,不能直接應(yīng)用在其他平臺上。針對這些局限性,考慮到當前瀏覽器/服務(wù)器(Browser/Server,B/S)模式可以隨時隨地進行查詢、瀏覽等業(yè)務(wù)處理分布性特點以及業(yè)務(wù)擴展方便、維護方便等優(yōu)點,開發(fā)了基于Web的無線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)來實現(xiàn)傳感信息和網(wǎng)絡(luò)拓撲信息的可視化。通過本系統(tǒng)提供的傳感信息、拓撲信息、節(jié)點配置信息和節(jié)點狀態(tài)信息的動態(tài)顯示和管理平臺,可以較好地適應(yīng)無線傳感器網(wǎng)絡(luò)復雜多變的部署環(huán)境。
2 基于Web的WSN可視化管理系統(tǒng)體系結(jié)構(gòu)
基于Web的無線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)體系結(jié)構(gòu)包括服務(wù)器端和客戶端兩部分,如圖1所示。
考慮到傳感器節(jié)點處理能力及存儲能力等限制,需要及時將采集到的傳感信息傳送給網(wǎng)絡(luò)服務(wù)器,由網(wǎng)絡(luò)服務(wù)器來統(tǒng)一存儲和管理,并向用戶提供所需的可視化管理服務(wù)。在客戶端,用戶可以使用計算機、移動終端等終端設(shè)備通過互聯(lián)網(wǎng)訪問網(wǎng)絡(luò)服務(wù)器的方式隨時隨地進行對無線傳感器網(wǎng)絡(luò)的管理。
2.1 服務(wù)器端
服務(wù)器端主要包括Web服務(wù)器、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)服務(wù)模塊、數(shù)據(jù)管理模塊。服務(wù)器端各模塊提供的功能如下:
Web服務(wù)器提供互聯(lián)網(wǎng)信息瀏覽服務(wù),是服務(wù)器端的核心部分;數(shù)據(jù)發(fā)送模塊將控制命令發(fā)送到網(wǎng)關(guān),由網(wǎng)關(guān)解析并轉(zhuǎn)發(fā)到相應(yīng)的傳感器節(jié)點;數(shù)據(jù)接收模塊使用套接字通信技術(shù)接收網(wǎng)關(guān)傳送的傳感信息或控制命令的反饋信息,解析并交給數(shù)據(jù)管理模塊;數(shù)據(jù)服務(wù)模塊是基于Web服務(wù)器基礎(chǔ)上實現(xiàn)的,接受客戶端的請求進行處理,再將處理結(jié)果格式化輸出給客戶端;數(shù)據(jù)管理模塊主要指一個關(guān)系型數(shù)據(jù)庫,進行數(shù)據(jù)的組織、存儲和管理。
2.2 客戶端
在B/S模式中客戶端就是瀏覽器,是用戶直接面對的可視化管理平臺,包括拓撲路由信息模塊、傳感信息模塊、空調(diào)控制模塊等??蛻舳烁髂K提供的功能如下:
拓撲路由信息模塊動態(tài)顯示當前無線傳感器網(wǎng)絡(luò)的傳感器節(jié)點及其狀態(tài)信息和拓撲路由信息。通過該模塊,用戶可以實時查看當前網(wǎng)絡(luò)的拓撲變化,更好地管理網(wǎng)絡(luò)。傳感信息模塊以動態(tài)數(shù)據(jù)表、動態(tài)曲線圖等形式顯示溫度、濕度、光強等傳感信息。用戶可以對傳感信息進行排序、篩選等操作,以所需方式查看傳感信息。節(jié)點及空調(diào)控制模塊能控制節(jié)點的工作模式和狀態(tài),如改變節(jié)點的采集信息速率、控制節(jié)點進行休眠等。同時,還可以通過節(jié)點控制空調(diào)設(shè)備,如控制空調(diào)的工作狀態(tài)、工作模式等。
3 基于Web的WSN可視化管理系統(tǒng)設(shè)計及其實現(xiàn)
3.1 系統(tǒng)層次結(jié)構(gòu)
根據(jù)功能,可以將本系統(tǒng)劃分為數(shù)據(jù)層、業(yè)務(wù)層和表現(xiàn)層三層結(jié)構(gòu),如圖2所示。
數(shù)據(jù)層包括數(shù)據(jù)庫或數(shù)據(jù)源以及數(shù)據(jù)接入部分,位于最底層;業(yè)務(wù)層是系統(tǒng)的核心業(yè)務(wù)部分,負責業(yè)務(wù)邏輯實現(xiàn),位于中間層,是數(shù)據(jù)層與表現(xiàn)層的連接橋梁;表現(xiàn)層指用戶交互界面,位于最上層。
3.2 數(shù)據(jù)收發(fā)模塊設(shè)計
作為系統(tǒng)的接人部分,本模塊屬于系統(tǒng)的數(shù)據(jù)層,是連接無線傳感器網(wǎng)絡(luò)和可視化管理系統(tǒng)的橋梁。本系統(tǒng)通過Socket套接字通信技術(shù)完成網(wǎng)關(guān)與數(shù)據(jù)收發(fā)模塊間的通信。這里采用資源消耗少,沒有擁塞控制的UDP協(xié)議保證數(shù)據(jù)的收發(fā)速率,滿足本系統(tǒng)的實時性要求。套接字通信技術(shù)明確將客戶與服務(wù)器區(qū)分開來,且可以實現(xiàn)多個客戶與服務(wù)器的連接。本系統(tǒng)把數(shù)據(jù)收發(fā)模塊作為套接字通信的服務(wù)器來監(jiān)聽一個端口,可以與多個子網(wǎng)絡(luò)進行通信。
3.3 數(shù)據(jù)管理模塊設(shè)計
本系統(tǒng)使用MySQL數(shù)據(jù)庫來存儲數(shù)據(jù)。為了方便數(shù)據(jù)管理、滿足不同需要,設(shè)計了如下三種信息表:
(1)傳感器節(jié)點信息表,包括當前無線傳感器網(wǎng)絡(luò)中傳感器節(jié)點的詳細信息,如地址信息、狀態(tài)信息等。其結(jié)構(gòu)如下:
addr_info=(I,A1,A2,A3,A4,T)
其中:I為節(jié)點ID;A1為節(jié)點類型;A2為節(jié)點IPv6地址;A3為父節(jié)點地址;A4為節(jié)點狀態(tài);T為入網(wǎng)時間。
(2)路由信息表,包括當前無線傳感器網(wǎng)絡(luò)拓撲路由信息,是了解網(wǎng)絡(luò)拓撲結(jié)構(gòu)的重要依據(jù)。為了詳細了解節(jié)點傳感信息的詳細傳送路徑,本信息表不僅存儲節(jié)點的下一跳,還存儲節(jié)點的下i跳,其中i=0,1,2,…,其最大值等于max_hop。其結(jié)構(gòu)如下:
route_info=(I,Bi,T)
其中:I為節(jié)點ID;B0為節(jié)點IPv6地址;Bi為節(jié)點的下i跳節(jié)點地址,i=0,1,2,…,max_hop;T為路由信息更新時間。
(3)傳感信息表,存儲監(jiān)測區(qū)域中的傳感信息。包括溫度信息表,濕度信息表,光強信息表等,還可以根據(jù)應(yīng)用需求增加相應(yīng)的信息表。其信息表結(jié)構(gòu)類似,這里以溫度信息表舉例:
temperature_info=(I,C1,C2,T)
其中:I為節(jié)點ID;C1為節(jié)點IPv6地址;C2為溫度傳感信息;T為溫度采集時間。
3.4 數(shù)據(jù)服務(wù)模塊設(shè)計
本模塊屬于系統(tǒng)的業(yè)務(wù)層,主要提供系統(tǒng)邏輯運算和業(yè)務(wù)支持等服務(wù),是使用Java技術(shù)設(shè)計實現(xiàn)的。這里設(shè)計的核心類SystemService類,一方面可以分析客戶端的服務(wù)請求類型,并根據(jù)服務(wù)請求類型,使用JDBC技術(shù)動態(tài)訪問數(shù)據(jù)庫獲取信息進行處理,并將處理后的結(jié)果以List集合或XML文件形式傳回給客戶端,來響應(yīng)客戶端的服務(wù)請求。另一方面還可以通過創(chuàng)建線程定時查詢的方式主動將告警信息發(fā)送給客戶端,使用戶及時了解當前無線傳感器網(wǎng)絡(luò)狀態(tài),使其做出相應(yīng)的處理。其工作流程如圖3所示。
3.5 數(shù)據(jù)顯示模塊設(shè)計
數(shù)據(jù)顯示模塊采用的Flex應(yīng)用技術(shù),能展現(xiàn)出獨一無二的圖像、動畫和音像等多媒體技術(shù),向用戶提供更加美觀的、全動態(tài)的可視化操作界面。Flex具有分布式、跨瀏覽器等優(yōu)點,不管是Windows系統(tǒng)還是Linux系統(tǒng),只要有Flash Player插件的瀏覽器,可以通過互聯(lián)網(wǎng)隨時隨地使用本系統(tǒng)。
數(shù)據(jù)顯示模塊的工作流程如圖4所示。用戶界面請求可視化服務(wù),進一步將數(shù)據(jù)對象放置到事件中廣播出去。監(jiān)聽中的前端控制器接收到廣播事件后找出相應(yīng)的業(yè)務(wù)邏輯處理模塊,并由業(yè)務(wù)邏輯處理模塊使用RemoteObject組件對數(shù)據(jù)服務(wù)模塊中的方法進行遠程調(diào)用。業(yè)務(wù)邏輯處理模塊接收到數(shù)據(jù)服務(wù)模塊返回的結(jié)果信息存儲到數(shù)據(jù)服務(wù)模型中的數(shù)據(jù)對象中,并共享結(jié)果信息,供不同的用戶界面顯示。
4 基于Web的WSN可視化管理系統(tǒng)性能測試
為了驗證系統(tǒng)的有效性,搭建了如圖5所示的測試環(huán)境。
測試環(huán)境中,節(jié)點7919是網(wǎng)關(guān);節(jié)點6101,6102為路由節(jié)點,只負責傳感信息的轉(zhuǎn)發(fā),并不收集傳感信息;節(jié)點7010,7030,7050,7070,7090為五個終端節(jié)點,負責收集監(jiān)測區(qū)域內(nèi)的傳感信息,其傳感信息可以通過多個路由節(jié)點的轉(zhuǎn)發(fā),并通過網(wǎng)關(guān)到達網(wǎng)絡(luò)服務(wù)器。其中節(jié)點7090位于705房間內(nèi),可以控制此房間內(nèi)的一臺空調(diào),其控制信息的傳輸路徑如圖5中的粗線條表示。
4.1 拓撲信息的可視化
拓撲信息的可視化包括可視化當前網(wǎng)絡(luò)的節(jié)點和節(jié)點之間的連接關(guān)系,是分析和了解當前網(wǎng)絡(luò)拓撲路由情況的重要方法。通過拓撲信息的可視化,用戶可以直觀了解當前網(wǎng)絡(luò)狀態(tài),包括節(jié)點之間的位置關(guān)系、節(jié)點傳感新信息的傳送路徑和網(wǎng)絡(luò)分簇情況,分析出潛在的規(guī)律性和網(wǎng)絡(luò)的異常性,可以迅速地做出相應(yīng)的處理。
拓撲信息的可視化分三部分實現(xiàn)。首先從傳感器節(jié)點信息表addr_info中獲取當前網(wǎng)絡(luò)中的節(jié)點地址信息及其信息。然后從路由信息表route_info中獲取節(jié)點傳感信息的傳送路徑和節(jié)點之間的連接關(guān)系信息,并根據(jù)節(jié)點信息和路由信息格式化存儲在可擴展標記語言XML文件中。業(yè)務(wù)層的數(shù)據(jù)服務(wù)模塊根據(jù)當前網(wǎng)絡(luò)的拓撲變化情況實時地更新此文件,滿足拓撲信息的動態(tài)可視化要求。最后表現(xiàn)層的數(shù)據(jù)顯示模塊根據(jù)生成的XML文件,生成拓撲路由圖。
根據(jù)測試環(huán)境生成的實際網(wǎng)絡(luò)拓撲圖如圖6所示。圖6中,終端節(jié)點7070和7090采集到的傳感信息通過路由節(jié)點6101,到達網(wǎng)關(guān)7919,這部分成為一個簇,且其簇內(nèi)路由用線條A1,A2,A3表示。同理,終端節(jié)點7010,7030,7050分別通過路由節(jié)點6102最后到達網(wǎng)關(guān)7919,成為另一個簇,其簇內(nèi)路由則用線條B1,B2,B3,B4表示。最后網(wǎng)關(guān)7919的數(shù)據(jù)都發(fā)送到網(wǎng)絡(luò)服務(wù)器,其通信線路用線條C表示。
4. 2 傳感信息的可視化
在拓撲路由圖中,雙擊方式選擇一個節(jié)點,即可看到此節(jié)點監(jiān)測區(qū)域內(nèi)的溫度、濕度、光強等傳感信息。圖7描述了IPv6地址3ffe:3240:8007:1209:9070:6392:4700:0的傳感器節(jié)點(圖5中的節(jié)點7090)采集到的溫度信息的動態(tài)曲線圖及動態(tài)數(shù)據(jù)表,可以直觀地看到其監(jiān)測區(qū)域內(nèi)的溫度信息。在曲線圖中。x軸代表時間,y軸代表溫度值,其單位為℃。
4.3 對空調(diào)的控制
在拓撲路由圖中,選擇一個節(jié)點,可以看到如圖7所示的節(jié)點信息面板,包括節(jié)點的節(jié)點類型、地址信息、狀態(tài)信息及其控制范圍內(nèi)的空調(diào)設(shè)備信息。如圖5的系統(tǒng)測試環(huán)境中,節(jié)點7090是一個空調(diào)控制節(jié)點,可以控制705房間內(nèi)的一臺空調(diào)。打開如圖8所示的空調(diào)控制面板,用戶可以遠程控制空調(diào),如進行開啟和關(guān)閉、加熱或制冷等模式設(shè)置、溫度設(shè)置、門限設(shè)置等操作。
5 結(jié)語
本文介紹了無線傳感器網(wǎng)絡(luò)可視化方面的研究進展,并根據(jù)實際應(yīng)用與需求,設(shè)計并實現(xiàn)了基于Web的無線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng),描述了其架構(gòu)與層次結(jié)構(gòu)。本系統(tǒng)通過引入Flex,Java等技術(shù),有效解決了可視化的實用性、動態(tài)性等問題。通過本文的研究,為基于
Web的無線傳感器網(wǎng)絡(luò)的可視化提供了技術(shù)基礎(chǔ)和應(yīng)用方法,具有重要的研究和應(yīng)用價值。在此系統(tǒng)的基礎(chǔ)上,后續(xù)的工作將可以在可擴展性等方面進行發(fā)展,并結(jié)合實際應(yīng)用,增加更多的功能,滿足不同的應(yīng)用場合。