王 恒,趙曉瑞,王 平
(重慶郵電大學(xué)工業(yè)物聯(lián)網(wǎng)與網(wǎng)絡(luò)化控制教育部重點(diǎn)實(shí)驗(yàn)室,重慶400065)
無線傳感器網(wǎng)絡(luò)是一種由大量微型傳感器節(jié)點(diǎn)組成的自組織網(wǎng)絡(luò)[1],但是該網(wǎng)絡(luò)并不是孤立存在的。為了達(dá)到不同的應(yīng)用需求,網(wǎng)關(guān)需要通過特定的方式將傳感器節(jié)點(diǎn)的信息發(fā)送到遠(yuǎn)程監(jiān)控中心或用戶,監(jiān)控中心或用戶再通過上位機(jī)軟件查看相關(guān)數(shù)據(jù)和信息,同時(shí)監(jiān)控中心將控制管理命令發(fā)送到網(wǎng)關(guān)完成對傳感器網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)控和管理[2]。
目前,國內(nèi)外出現(xiàn)了一些無線傳感器網(wǎng)絡(luò)的可視化管理系統(tǒng),如美國加州大學(xué)伯克利分校的TinyViz[3]、英國伍爾弗漢普頓大學(xué)的M-DAD以及我國中科院寧波分所開發(fā)的SNAMP[4]等。這些系統(tǒng)都具有顯示節(jié)點(diǎn)列表、網(wǎng)絡(luò)拓?fù)?、?shù)據(jù)實(shí)時(shí)分析、存儲(chǔ)等全部或部分功能,且都在朝著人性化、操作簡單化及功能多樣化的方向發(fā)展[5],但是它們共同存在一個(gè)缺點(diǎn),即建立在特定的應(yīng)用環(huán)境基礎(chǔ)上,采用私有協(xié)議和網(wǎng)關(guān)進(jìn)行通信,沒有標(biāo)準(zhǔn)化的服務(wù)接口,通用性和移植性較差[6]。本文考慮了瀏覽器/服務(wù)器 (B/S)模式的優(yōu)點(diǎn)[7],開發(fā)了介于Web服務(wù)器和網(wǎng)關(guān)之間的中間件,標(biāo)準(zhǔn)化了通信接口,實(shí)現(xiàn)網(wǎng)關(guān)和底層傳感器網(wǎng)絡(luò)的任意掛接。
本文基于Web服務(wù)技術(shù)設(shè)計(jì)出一個(gè)具有標(biāo)準(zhǔn)化服務(wù)接口的Web服務(wù)中間件[8],該中間件工作在Web服務(wù)器和無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)之間,是整個(gè)無線傳感網(wǎng)網(wǎng)關(guān)Web服務(wù)的核心。當(dāng)用戶通過瀏覽器查看無線傳感器網(wǎng)絡(luò)的相關(guān)信息時(shí),首先點(diǎn)擊網(wǎng)頁界面的相關(guān)按鈕,Web服務(wù)器便將相應(yīng)的指令發(fā)送給中間件;然后中間件解析Web服務(wù)器指令,待解析完成后便發(fā)送標(biāo)準(zhǔn)指令到網(wǎng)關(guān);最后網(wǎng)關(guān)將相應(yīng)節(jié)點(diǎn)的數(shù)據(jù)或者網(wǎng)絡(luò)信息返回給中間件,中間件再轉(zhuǎn)發(fā)給Web服務(wù)器,Web服務(wù)器通過處理即可顯示在網(wǎng)頁界面上。Web服務(wù)整體結(jié)構(gòu)如圖1所示。
圖1 Web服務(wù)整體結(jié)構(gòu)
Web服務(wù)中間件有2個(gè)接口,其中傳感網(wǎng)側(cè)接口和網(wǎng)關(guān)進(jìn)行通信,其主要功能是實(shí)現(xiàn)向網(wǎng)關(guān)發(fā)送讀取數(shù)據(jù)指令或其它控制指令,并且接收網(wǎng)關(guān)返回的傳感器節(jié)點(diǎn)數(shù)據(jù)信息;服務(wù)器側(cè)接口和Web服務(wù)器進(jìn)行通信,其主要功能是實(shí)現(xiàn)接收Web服務(wù)器發(fā)送的指令,同時(shí)實(shí)現(xiàn)向服務(wù)器轉(zhuǎn)發(fā)網(wǎng)關(guān)返回的傳感器節(jié)點(diǎn)數(shù)據(jù)信息,其功能結(jié)構(gòu)如圖2所示。
圖2 Web服務(wù)中間件功能結(jié)構(gòu)
Web服務(wù)中間件提供數(shù)據(jù)服務(wù)和管理服務(wù),因此其需要和網(wǎng)關(guān)進(jìn)行交互。為了減少網(wǎng)關(guān)開發(fā)者開發(fā)多種現(xiàn)場總線協(xié)議和無線系統(tǒng)的工作量,對Web服務(wù)中間件的傳感網(wǎng)側(cè)接口進(jìn)行了標(biāo)準(zhǔn)化設(shè)計(jì),為配置和訪問無線傳感器網(wǎng)絡(luò)提供了一個(gè)標(biāo)準(zhǔn)模型[9]。Web服務(wù)中間件傳感網(wǎng)側(cè)接口服務(wù)標(biāo)準(zhǔn)指令見表1。
表1 接口服務(wù)標(biāo)準(zhǔn)指令
中間件會(huì)在完成服務(wù)器指令解析后,然后發(fā)送上表中的具體指令到網(wǎng)關(guān),網(wǎng)關(guān)根據(jù)指令內(nèi)容進(jìn)行相關(guān)操作。表中的指令主要包括2類:一類需要網(wǎng)關(guān)返回節(jié)點(diǎn)數(shù)據(jù)信息,例如讀節(jié)點(diǎn)列表、節(jié)點(diǎn)數(shù)據(jù)、網(wǎng)絡(luò)拓?fù)涞?,此類指令都以“r”打頭,表示W(wǎng)eb服務(wù)器需要獲得相關(guān)節(jié)點(diǎn)數(shù)據(jù)信息時(shí),便調(diào)用中間件,中間件發(fā)送此類指令給網(wǎng)關(guān),網(wǎng)關(guān)返回相關(guān)數(shù)據(jù)信息,中間件再將數(shù)據(jù)信息轉(zhuǎn)發(fā)給服務(wù)器;另一類不需要網(wǎng)關(guān)返回節(jié)點(diǎn)數(shù)據(jù)信息,但是會(huì)返回一個(gè)操作成功的確認(rèn)標(biāo)志 (success),例如網(wǎng)關(guān)配置、節(jié)點(diǎn)配置等,此類指令都以“w”打頭,表示W(wǎng)eb服務(wù)器需要進(jìn)行網(wǎng)關(guān)或節(jié)點(diǎn)配置時(shí),便調(diào)用中間件,中間件發(fā)送相應(yīng)指令到網(wǎng)關(guān),網(wǎng)關(guān)進(jìn)行相應(yīng)的配置操作,完成后返回一個(gè)確認(rèn)標(biāo)志。
下文就比較常用的幾條指令做以詳細(xì)的介紹,包括指令概述、參數(shù)描述以及中間件使用該指令的過程示意圖。
(1)讀取節(jié)點(diǎn)列表:當(dāng)Web服務(wù)器需要獲取網(wǎng)絡(luò)節(jié)點(diǎn)列表信息時(shí),通過調(diào)用中間件,中間件向網(wǎng)關(guān)發(fā)送該指令,網(wǎng)關(guān)便把整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)列表信息返回給中間件,中間件再轉(zhuǎn)發(fā)到服務(wù)器。中間件調(diào)用該指令的過程如圖3所示。
圖3 中間件讀取節(jié)點(diǎn)列表
(2)讀取節(jié)點(diǎn)數(shù)據(jù):當(dāng)Web服務(wù)器需要獲取網(wǎng)內(nèi)某節(jié)點(diǎn)的數(shù)據(jù)時(shí),通過調(diào)用中間件,中間件向網(wǎng)關(guān)發(fā)送該指令即可獲取相應(yīng)節(jié)點(diǎn)的數(shù)據(jù),其中參數(shù)d_x中的x表示需要讀取數(shù)據(jù)的節(jié)點(diǎn)編號。中間件調(diào)用該指令的過程如圖4所示。
圖4 中間件讀取節(jié)點(diǎn)數(shù)據(jù)
(3)讀取節(jié)點(diǎn)ID:當(dāng)Web服務(wù)器需要獲取網(wǎng)內(nèi)某個(gè)節(jié)點(diǎn)的ID時(shí),通過調(diào)用中間件,中間件向網(wǎng)關(guān)發(fā)送該指令即可獲取相應(yīng)節(jié)點(diǎn)的ID,其中參數(shù)d_x中的x表示需要讀取ID的節(jié)點(diǎn)編號。中間件調(diào)用該指令的過程如圖5所示。
圖5 中間件讀取節(jié)點(diǎn)ID
(4)讀取網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):當(dāng)Web服務(wù)器需要獲取整個(gè)網(wǎng)絡(luò)的節(jié)點(diǎn)拓?fù)浣Y(jié)構(gòu)信息時(shí),通過調(diào)用中間件,中間件向網(wǎng)關(guān)發(fā)送該指令,網(wǎng)關(guān)將節(jié)點(diǎn)關(guān)聯(lián)信息返回給中間件,中間件運(yùn)行拓?fù)洳季炙惴?,最后將拓?fù)浣Y(jié)構(gòu)信息轉(zhuǎn)發(fā)到Web服務(wù)器。中間件調(diào)用該指令的過程如圖6所示。
圖6 中間件獲取網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
(5)網(wǎng)關(guān)配置:當(dāng)Web服務(wù)器需要進(jìn)行網(wǎng)關(guān)配置時(shí),通過調(diào)用中間件,中間件向網(wǎng)關(guān)發(fā)送該指令,網(wǎng)關(guān)即可完成配置操作,并將確認(rèn)標(biāo)志返回給服務(wù)器。中間件調(diào)用該指令的過程如圖7所示。
圖7 中間件進(jìn)行網(wǎng)關(guān)配置
(6)節(jié)點(diǎn)配置:當(dāng)Web服務(wù)器需要對網(wǎng)內(nèi)某一節(jié)點(diǎn)進(jìn)行配置時(shí),通過調(diào)用中間件,中間件向網(wǎng)關(guān)發(fā)送該指令,網(wǎng)關(guān)即可完成對相關(guān)節(jié)點(diǎn)的配置操作,并將確認(rèn)標(biāo)志返回給服務(wù)器,其中參數(shù)d_x表示配置節(jié)點(diǎn)的編號。中間件調(diào)用該指令的過程如圖8所示。
圖8 中間件進(jìn)行節(jié)點(diǎn)配置
Web服務(wù)中間件的服務(wù)器側(cè)接口和Web服務(wù)器通信,主要用于接收服務(wù)器的調(diào)用指令和向服務(wù)器轉(zhuǎn)發(fā)網(wǎng)關(guān)返回的數(shù)據(jù)。首先,中間件接收到Web服務(wù)器發(fā)送的指令,然后進(jìn)行解析指令,指令解析后調(diào)用標(biāo)準(zhǔn)指令通過傳感網(wǎng)側(cè)接口發(fā)送給網(wǎng)關(guān),如果服務(wù)器發(fā)送的是讀取數(shù)據(jù)指令,則等待網(wǎng)關(guān)把相關(guān)數(shù)據(jù)發(fā)送回來,最后再將數(shù)據(jù)轉(zhuǎn)發(fā)給Web服務(wù)器。
Web服務(wù)器采用CGI腳本和中間件進(jìn)行交互,并且將服務(wù)指令通過參數(shù)的形式傳遞給中間件[10],具體過程如圖9所示。
Web服務(wù)中間件在提供數(shù)據(jù)服務(wù)和管理服務(wù)的過程中起著重要作用,下面以用戶獲取某一溫度傳感器節(jié)點(diǎn)的數(shù)據(jù)為例,說明其工作的整個(gè)過程。該過程如圖10所示。
本設(shè)計(jì)測試中的無線傳感網(wǎng)采用802.15.4標(biāo)準(zhǔn)網(wǎng)絡(luò),網(wǎng)關(guān)采用ARM網(wǎng)關(guān),Web服務(wù)器采用輕量級嵌入式Web服務(wù)器Boa[11],測試使用的傳感器節(jié)點(diǎn)和網(wǎng)關(guān)都是由重慶郵電大學(xué)工業(yè)物聯(lián)網(wǎng)與網(wǎng)絡(luò)化控制教育部重點(diǎn)實(shí)驗(yàn)室開發(fā)與研制。測試使用硬件實(shí)物如圖11所示。
圖9 Web服務(wù)器調(diào)用中間件工作流程
圖10 溫度傳感器數(shù)據(jù)讀取全過程
圖11 測試硬件實(shí)物
5.2.1 服務(wù)接口數(shù)據(jù)交互
為了能夠清楚的查看Web服務(wù)中間件工作的流程,在終端中將其服務(wù)接口數(shù)據(jù)的交互過程打印出來,結(jié)果如圖12所示。
圖12 模擬Web服務(wù)器調(diào)用中間件,圖12中第一行表示W(wǎng)eb服務(wù)器將指令以參數(shù)的形式傳遞給中間件,第二行表示中間件接收到服務(wù)器的指令,第三行表示中間件解析Web服務(wù)器的指令后發(fā)送標(biāo)準(zhǔn)化指令到網(wǎng)關(guān),第四行表示網(wǎng)關(guān)將采集的數(shù)據(jù)返回給中間件,中間件再轉(zhuǎn)發(fā)給Web服務(wù)器,最終在網(wǎng)頁界面顯示出來[12]。
圖12 服務(wù)接口數(shù)據(jù)交互過程
5.2.2 網(wǎng)頁顯示界面
測試網(wǎng)絡(luò)掛接了4種傳感器節(jié)點(diǎn):無線溫濕度傳感器節(jié)點(diǎn)、無線粉塵傳感器節(jié)點(diǎn)、無線煙霧傳感器節(jié)點(diǎn)和無線瓦斯傳感器節(jié)點(diǎn)。節(jié)點(diǎn)列表顯示頁面和無線溫濕度傳感器節(jié)點(diǎn)數(shù)據(jù)顯示頁面分別如圖13和圖14所示。
圖13 節(jié)點(diǎn)列表顯示頁面
圖14 無線溫濕度傳感器節(jié)點(diǎn)數(shù)據(jù)顯示頁面
本測試中使用的傳感器節(jié)點(diǎn)都是實(shí)際網(wǎng)絡(luò)節(jié)點(diǎn),測試所得數(shù)據(jù)真實(shí)有效,測試結(jié)果表明,本文設(shè)計(jì)與實(shí)現(xiàn)的無線傳感網(wǎng)網(wǎng)關(guān)Web服務(wù)中間件能夠有效地完成Web服務(wù)器和無線傳感網(wǎng)網(wǎng)關(guān)之間的數(shù)據(jù)信息交互,進(jìn)而協(xié)助服務(wù)器和網(wǎng)關(guān)完成對無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)采集和控制管理。
本文在現(xiàn)有網(wǎng)關(guān)和Web服務(wù)技術(shù)的基礎(chǔ)上,設(shè)計(jì)與實(shí)現(xiàn)了無線傳感網(wǎng)網(wǎng)關(guān)Web服務(wù)中間件,標(biāo)準(zhǔn)化了無線傳感網(wǎng)網(wǎng)關(guān)Web服務(wù)接口。一方面,該Web服務(wù)中間件的傳感器側(cè)接口能夠和底層通用型無線傳感器網(wǎng)絡(luò)任意掛接,在一定程度上減輕開發(fā)的工作量和復(fù)雜度,避免二次開發(fā),有效節(jié)省開發(fā)成本和時(shí)間,而且有利于在不同網(wǎng)絡(luò)和平臺(tái)之間的移植;另一方面,該Web服務(wù)中間件能夠協(xié)助服務(wù)器,使得用戶通過瀏覽器網(wǎng)頁界面遠(yuǎn)程查看傳感器網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)據(jù)信息,并且能夠?qū)W(wǎng)絡(luò)進(jìn)行控制和管理。
[1]QIAN Zhihong.Internet of things-oriented wireless sensor networks review [J].Journal of Electronics and Information Technology,2013,35(1):215-227(in Chinese).[錢志鴻.面向物聯(lián)網(wǎng)的無線傳感器網(wǎng)絡(luò)綜述[J].電子與信息學(xué)報(bào),2013,35(1):215-227.]
[2]KUANG Xinghong,SHAO Huihe.Study of the gateway of wireless sensor networks[J].Computer Engineering,2007(6):228-230(in Chinese).[匡興紅,邵惠鶴.無線傳感器網(wǎng)絡(luò)網(wǎng)關(guān)研究[J].計(jì)算機(jī)工程,2007(6):228-230.]
[3]LIU Ying,YU Hongyi.Technology of application developing based on TinyOS in wireless sensor network[J].Transducer and Microsystem Technologies,2007,26(3):93-96(in Chinese).[劉營,于宏毅.基于TinyOS的無線傳感器網(wǎng)絡(luò)應(yīng)用程序開發(fā)技術(shù)[J].傳感器與微系統(tǒng),2007,26(3):93-96.]
[4]LIRuijun,HU Shujuan,HOUWeiyan.Industrialwireless networks protocolwith time synchronization and node positioning[J].Computer Engineering and Design,2008,29(18):4701-4703(in Chinese).[李銳君,胡淑娟,侯維巖.具有時(shí)間同步和節(jié)點(diǎn)定位的工業(yè)無線網(wǎng)絡(luò)協(xié)議[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(18):4701-4703.]
[5]HE Pengju,HAN Shuren,ZHOU Xianjuan.Research on the data managementsystem in wireless sensor network[J].Mining and Processing Equipment,2008(10):38-41(in Chinese).[何鵬舉,韓樹人,周賢娟.無線傳感器網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng)研究[J].礦山機(jī)械,2008(10):38-41.]
[6]YUAN Nan,ZHOU Huachun,ZHENG Tao.Design and implementation of web-based visualization management system for wireless sensor network [J].Modern Electronics Technique,2011,34(17):43-46(in Chinese).[元男,周華春,鄭濤.基于Web的無線傳感器網(wǎng)絡(luò)可視化管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(17):43-46.]
[7]LIU Yanpeng,YANG Baozhu,WANG Yuansheng.Design of forest warning and command system based on browse/server architecture[J].Computer Engineering and Design,2013,34(1):360-365(in Chinese).[劉艷朋,楊寶祝,王元?jiǎng)?基于B/S的森林火災(zāi)預(yù)警與指揮系統(tǒng)設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(1):360-365.]
[8]WANG Zhenhui,WANG Zhenduo,ZHANGMin,etal.Design and implement of security middleware of web database[J].Science Technology and Engineering,2013(5):1335-1340(in Chinese).[王振輝,王振鐸,張敏,等.Web數(shù)據(jù)庫安全中間件設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2013(5):1335-1340.]
[9]ISA-100.11a-2011:Wireless systems for industrial automation:Process control and related applications[S].2011.
[10]XIE Shiyi,XU Bing.Design of embedded web server and its implementation of CGI[J].Computer Engineering and Design,2007,28(7):1598-1600(in Chinese).[謝仕義,徐兵.嵌入式Web服務(wù)器的設(shè)計(jì)及其CGI實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(7):1598-1600.]
[11]SONG Kai,YAN Liping,GAN Lan.Design and implementation of embedded Web server[J].Computer Engineering and Design,2009,30(4):808-810(in Chinese).[宋凱,嚴(yán)麗平,甘嵐.嵌入式Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(4):808-810.]
[12]YU Haichao,WANG Honglei.Design and realization of intelligent network about home systems based on ARM processor[J].Information Technology,2012(4):162-165(in Chinese).[玉海超,王紅蕾.基于ARM的智能網(wǎng)絡(luò)家居系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2012(4):162-165.]