陳恒如,趙寧社,陳天運(yùn)
(西安文理學(xué)院 軟件學(xué)院 陜西 西安 710065)
目前在環(huán)保環(huán)境監(jiān)測系統(tǒng)中,物聯(lián)網(wǎng)技術(shù)起著重要作用。物聯(lián)網(wǎng)通過標(biāo)識、感知、傳送和信息處理四個關(guān)鍵環(huán)節(jié),將環(huán)境中的觀察對象緊密地連接在一起,并依托軟件技術(shù)智能地感知、推理和分析。物聯(lián)網(wǎng)實現(xiàn)對數(shù)據(jù)進(jìn)行管理和智能處理,主要包括數(shù)據(jù)的采集、存儲、查詢、融合與挖掘等,其數(shù)據(jù)面主要負(fù)責(zé)數(shù)據(jù)的分組和傳遞[1]。而環(huán)保物聯(lián)網(wǎng)的數(shù)據(jù)具有其自身的業(yè)務(wù)特殊性,其主要由污染源前端監(jiān)控系統(tǒng)、傳輸網(wǎng)絡(luò)、監(jiān)控中心組成。數(shù)據(jù)通過有線專網(wǎng)或無線的網(wǎng)絡(luò)傳輸方式將污染源在線監(jiān)控數(shù)據(jù)傳回監(jiān)控中心。其中數(shù)據(jù)采集設(shè)備包括數(shù)據(jù)采集終端以及其它需要的控制組件和輔助設(shè)備等。將數(shù)據(jù)采集終端與在線監(jiān)測儀器連接,采集監(jiān)測設(shè)備原始數(shù)據(jù)、完成數(shù)據(jù)的本地存儲、并通過傳輸網(wǎng)絡(luò)與監(jiān)控中心上位機(jī)進(jìn)行數(shù)據(jù)通訊傳輸,數(shù)據(jù)最終存儲在監(jiān)控中心。來自采集終端的數(shù)據(jù)在整個環(huán)保物聯(lián)網(wǎng)的架構(gòu)中具有重要地位,它是一切高端數(shù)據(jù)融合與業(yè)務(wù)應(yīng)用的基礎(chǔ)。感知數(shù)據(jù)的管理與處理是實現(xiàn)以數(shù)據(jù)為中心的物聯(lián)網(wǎng)的核心,感知數(shù)據(jù)管理與處理技術(shù)包括感知網(wǎng)數(shù)據(jù)的存儲、查詢、分析、挖掘、理解以及基于感知數(shù)據(jù)決策和行為的理論和技術(shù)[2]。在嵌入式終端中的數(shù)據(jù)管理通常會考慮使用嵌入式數(shù)據(jù)庫,如SQLite等。但這種管理方式通常對嵌入式操作系統(tǒng)、內(nèi)存及微處理器的支持均有較高的要求。而在低端的嵌入式系統(tǒng)中,常用的數(shù)據(jù)管理方法是對數(shù)據(jù)存儲空間按順序編號,數(shù)據(jù)存儲與刪除均根據(jù)編號順序操作。這種管理方法一方面增大了程序編制的難度,軟件響應(yīng)時間長,另一方面可能造成存儲空間利用率不高[3]。環(huán)保物聯(lián)網(wǎng)的末梢節(jié)點通常都是一些資源比較有限的瘦節(jié)點,同時由于業(yè)務(wù)的不同,環(huán)保物聯(lián)網(wǎng)數(shù)據(jù)管理也有其自身一些具體特點,因而需要尋求一種適合環(huán)保物聯(lián)網(wǎng)匯聚節(jié)點實際使用的數(shù)據(jù)管理方法。
環(huán)保物聯(lián)網(wǎng)由于其業(yè)務(wù)的特殊性,因而數(shù)據(jù)采集技術(shù)也具有其特點,以下從數(shù)據(jù)采集架構(gòu)和數(shù)據(jù)特點兩個方面來分析環(huán)保物聯(lián)網(wǎng)內(nèi)在的數(shù)據(jù)采集需求。
在研究中,我們把環(huán)保物聯(lián)網(wǎng)的數(shù)據(jù)采集架構(gòu)可以分為三層,即感知層、邏輯層與業(yè)務(wù)層,這種分層架構(gòu)與我國環(huán)境保護(hù)行業(yè)標(biāo)準(zhǔn)HJ/T212-2005兼容[4]。感知層通過對其敏感數(shù)據(jù)的測量,完成原始數(shù)據(jù)的采集,并將邏輯層感興趣的數(shù)據(jù)通過匯聚節(jié)點傳輸給邏輯層,傳輸鏈路分為有線和無線方式,目前以無線方式居多;邏輯層收到感知匯報數(shù)據(jù),通過各個邏輯模塊之間的橫向聯(lián)系,以數(shù)據(jù)融合手段形成業(yè)務(wù)層所需要的融合信息整體視圖,數(shù)據(jù)融合大部分是根據(jù)具體問題及其特定對象來建立自己的融合體系。
數(shù)據(jù)處理面臨的首要問題是數(shù)據(jù)量大,流程復(fù)雜。在環(huán)保物聯(lián)網(wǎng)中,感知層的匯聚節(jié)點所面臨處理的數(shù)據(jù)大致可以分為以下幾類:1)實時數(shù)據(jù),即來自AD轉(zhuǎn)換設(shè)備的模擬量與來自于通訊的數(shù)字量;2)歷史數(shù)據(jù),來自對實時數(shù)據(jù)的統(tǒng)計處理結(jié)果;3)報警數(shù)據(jù),來自報警監(jiān)測,挑報警的通道數(shù)據(jù)上報實時數(shù)據(jù)和報警類型標(biāo)識;4)通信數(shù)據(jù),按照通信協(xié)議的格式組合而成的字符流;5)消息數(shù)據(jù),對不同隊列,消息格式也稍有不同,可攜帶數(shù)據(jù)。通常環(huán)保物聯(lián)網(wǎng)是24小時運(yùn)行的,因而數(shù)據(jù)量比較大,數(shù)據(jù)交織比較明顯,這幾種數(shù)據(jù)在環(huán)保物聯(lián)網(wǎng)運(yùn)作中呈現(xiàn)出復(fù)雜的數(shù)據(jù)流程。
其次是數(shù)據(jù)源的異構(gòu)性。在環(huán)保監(jiān)測中,感知層的各個感知節(jié)點被分布在地里環(huán)境上不同的位置,每個節(jié)點的工作環(huán)境各不相同,采集到的環(huán)境指標(biāo)也有較大差別。匯聚節(jié)點面臨這些異構(gòu)性質(zhì)的數(shù)據(jù)時,對每種數(shù)據(jù)源都給定一種具體的處理是一種傳統(tǒng)的做法,但此種做法會導(dǎo)致兩種后果,其一是使得程序控制的復(fù)雜性增加,二是使感知層的可擴(kuò)展性受到影響。
從以上分析可知,在環(huán)保物聯(lián)網(wǎng)實際運(yùn)作中,數(shù)據(jù)量大且來源復(fù)雜,處理流程較為復(fù)雜。因而從整個數(shù)據(jù)采集架構(gòu)來看,感知層匯聚節(jié)點在其中扮演著一個重要的角色,不僅要完成數(shù)據(jù)的接收,而且要針對邏輯層模塊需求對數(shù)據(jù)進(jìn)行壓縮和梳理,一個科學(xué)有效的數(shù)據(jù)管理機(jī)制顯然是提高工作效率的關(guān)鍵。
針對以上分析,匯聚節(jié)點的數(shù)據(jù)管理涉及到數(shù)據(jù)的梳理、組織與存儲,研究中通過反復(fù)研究比較,我們?yōu)楦兄獙訑?shù)據(jù)采集提出 “數(shù)據(jù)匣子”的理念,即在匯聚節(jié)點上通過軟件手段加入一個便于管理及使用數(shù)據(jù)機(jī)制。
感知層的匯聚節(jié)點與感知節(jié)點通常是強(qiáng)或弱的耦合關(guān)系,依靠有線或無線方式的鏈接通路來聯(lián)系。設(shè)計中我們在匯聚節(jié)點的控制軟件中設(shè)置一個鏈路相關(guān)的數(shù)據(jù)管理機(jī)制,即在下位鏈路創(chuàng)建的時候,依據(jù)這個創(chuàng)建動作,觸發(fā)一個例程為每個上報節(jié)點動態(tài)分配一個自定義數(shù)據(jù)對象,如圖2所示。在技術(shù)上包括總體設(shè)計、數(shù)據(jù)結(jié)構(gòu)及算法方面的論述。
此處的協(xié)議解決的問題是采集數(shù)據(jù)中匯聚節(jié)點與感知節(jié)點如何交互。設(shè)計到鏈路形式,交互方式,以及支撐所需的數(shù)據(jù)結(jié)構(gòu)與交互流程。
圖1 環(huán)保物聯(lián)網(wǎng)數(shù)據(jù)采集架構(gòu)Fig,1 Data collection framework of environmental IOT
圖2 匯聚節(jié)點數(shù)據(jù)采集機(jī)制Fig,2 Data collection mechanism of sink node
協(xié)議首先規(guī)定通信方式,要管理的數(shù)據(jù)對象依據(jù)其來源可以分為兩大類,即模擬量與數(shù)字量,因而通信鏈路形式依據(jù)數(shù)據(jù)源類型可分為兩類,即AD采集的硬連線和數(shù)字采集的各種現(xiàn)場總線。就其實現(xiàn)形式上,可以是有線或無線的鏈路,如圖2所示,感知節(jié)點與匯聚節(jié)點的之間,實線連接代表有線,虛線連接代表無線。就通信方式而言,其中AD采集為主動實時同步方式,數(shù)字采集則有被動間歇式和異步主動問答式。
一般下位感知節(jié)點數(shù)據(jù)采集有幾種形式:
1)全主動式,即無需上位干預(yù),總是間隔單位時間就上傳其數(shù)據(jù),這樣當(dāng)鏈接建立之后,感知節(jié)點就以出場協(xié)議規(guī)定的數(shù)據(jù)幀格式自動輸出其感知到的數(shù)據(jù);
2)異步問答式,若沒有上位詢問,則下位感知節(jié)點一直沉默,不反饋其測量結(jié)果。若收到上位詢問,則感知節(jié)點以協(xié)議格式輸出數(shù)據(jù)幀;
3)開關(guān)式,即連接建立后需要上位匯聚節(jié)點發(fā)送一個啟動命令,感知節(jié)點收到該命令后,即響應(yīng)命令,以單位時間為間隔由鏈路輸出協(xié)議格式規(guī)定的數(shù)據(jù)幀。
其次在匯聚節(jié)點上為感知節(jié)點定義用以通信和存儲的數(shù)據(jù)包格式,應(yīng)包含類型域,節(jié)點標(biāo)識及數(shù)據(jù)。其中類型域反映數(shù)據(jù)源類型為模擬量或數(shù)字量,節(jié)點標(biāo)識包含了能反映出感知節(jié)點身份的數(shù)據(jù)源唯一標(biāo)識。
由于感知節(jié)點的數(shù)據(jù)通常受其廠商標(biāo)準(zhǔn)限定,其通信協(xié)議具有異構(gòu)性,因而每個感知節(jié)點的通信特征不同,具體體現(xiàn)在其幀頭、幀尾,還有詢問命令字。
為了對采集的數(shù)據(jù)進(jìn)行統(tǒng)一管理,每個感知節(jié)點的數(shù)據(jù)對象定義在匯聚節(jié)點上,這種做法的一個明顯的優(yōu)勢是系統(tǒng)介入度較小,軟件設(shè)計除了對匯聚節(jié)點有要求外,不對感知節(jié)點造成任何影響,并且支持不同的下位通信協(xié)議。對感知節(jié)點特征對象定義,就其邏輯結(jié)構(gòu)而言它是一個綜合結(jié)構(gòu)體,數(shù)據(jù)以線性表形式組織。而位于匯聚節(jié)點的數(shù)據(jù)盒子,其邏輯形式為鏈表結(jié)構(gòu)。
綜合以上分析,匯聚節(jié)點數(shù)據(jù)盒子的字段結(jié)構(gòu)應(yīng)包含以下信息,如圖3所示。
圖3 匯聚節(jié)點管理數(shù)據(jù)包格式Fig,3 Management package format of sink node
1)感知節(jié)點標(biāo)識,它是為感知節(jié)點分配的一個編號,是每個感知節(jié)點的唯一標(biāo)識;
2)感知節(jié)點數(shù)據(jù)類型,代表是模擬量還是數(shù)字量;
3)感知節(jié)點協(xié)議類型,取值代表全主動式、異步問答式及開關(guān)式;
4)感知節(jié)點數(shù)據(jù)特征字,即記錄起始標(biāo)識位與結(jié)束標(biāo)識位;
5)感知節(jié)點數(shù)據(jù)采集過程地址,存放指向針對該節(jié)點采集數(shù)據(jù)的解析函數(shù)的指針;
6)感知節(jié)點的數(shù)值,存放最新采集到的節(jié)點實時數(shù)據(jù)。
另外,匯聚節(jié)點上報數(shù)據(jù)應(yīng)包含匯聚節(jié)點的標(biāo)識和所有感知節(jié)點的數(shù)據(jù)。對邏輯層上位而言,可能還需要知道感知節(jié)點的邏輯意義,以便完成信息融合。基于這個考慮,上報的數(shù)據(jù)包除了包含匯聚節(jié)點標(biāo)識信息,從數(shù)據(jù)盒子中抽取的實時數(shù)據(jù)外,還需要包含所有感知節(jié)點身份標(biāo)識。若是數(shù)據(jù)融合放在感知層進(jìn)行,則上報時只需上報融合后的結(jié)果,否則還需要所有感知節(jié)點的身份信息。
1)數(shù)據(jù)盒子生成
感知節(jié)點向匯聚節(jié)點傳輸采集到的原始數(shù)據(jù)時,先要檢測其耦合鏈路是否存在,若不存在,則創(chuàng)建鏈路,同時為該下位節(jié)點創(chuàng)建數(shù)據(jù)收納盒對象;若存在,則數(shù)據(jù)盒子也存在,則將執(zhí)行數(shù)據(jù)采集過程。
2)感知節(jié)點編址與尋址
對于一個匯聚節(jié)點來說,為了便于管理其連接的感知節(jié)點,需要對節(jié)點進(jìn)行編址。對感知的編址要保持與創(chuàng)建鏈路同步,只要匯聚節(jié)點為感知節(jié)點成功創(chuàng)建一個鏈路,即為其分配一個局部唯一的節(jié)點編號。需要考慮的是,匯聚節(jié)點的下位鏈路分為無線與有線兩種,無線鏈路建立時可以容易地觸發(fā)創(chuàng)建編址過程;而有線連接的感知節(jié)點通常各式各樣,接口、協(xié)議也不盡相同,因此這些感知節(jié)點的編址需要用起始幀作為啟動條件,因此可以由起始幀來觸發(fā)創(chuàng)建編址的過程。另一個需要考慮的問題是感知節(jié)點的擴(kuò)展問題,當(dāng)在感知層加入一個新的感知節(jié)點,匯聚節(jié)點應(yīng)能識別并管理此節(jié)點,當(dāng)該感知節(jié)點加入后,若未對其編址,則在其建立鏈路時,對其編址。
匯聚節(jié)點對于感知節(jié)點的尋址主要是根據(jù)一個節(jié)點的標(biāo)識來確定其位置,尋址一般使用直接尋址,用于在接收到某個數(shù)據(jù)包時,在鏈表結(jié)構(gòu)中查找對應(yīng)的數(shù)據(jù)盒子。
3)匯聚節(jié)點數(shù)據(jù)上報
匯聚節(jié)點數(shù)據(jù)上報算法至少需要包含兩個操作:
感知數(shù)據(jù)提取,感知數(shù)據(jù)提取涉及到每個節(jié)點數(shù)據(jù)的解析,對于沒有首位標(biāo)識的數(shù)據(jù)包,一般都是定長數(shù)據(jù),依據(jù)其遵行的數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換得到結(jié)果,如符合IEEE754標(biāo)準(zhǔn)的浮點表示;而對有首尾標(biāo)識的數(shù)據(jù)包,長度不定,其數(shù)據(jù)字段的長度也不定,因而應(yīng)按照協(xié)議規(guī)范來分解字段,從而得到數(shù)據(jù)結(jié)果。將得到的數(shù)據(jù)填充到對應(yīng)的數(shù)據(jù)盒子中,這個操作按照設(shè)定的間隔周期性執(zhí)行,即實現(xiàn)匯聚節(jié)點周期性實時數(shù)據(jù)刷新。
匯聚數(shù)據(jù)包的組織,以線性鏈表遍歷的形式,依次抽取數(shù)據(jù)盒子的實時數(shù)據(jù),感知標(biāo)識,組裝成一個新的結(jié)構(gòu)體鏈表。
環(huán)保物聯(lián)網(wǎng)也是一個數(shù)據(jù)敏感的應(yīng)用領(lǐng)域,對數(shù)據(jù)進(jìn)行科學(xué)的管理尤其關(guān)鍵。本文提出的感知層匯聚節(jié)點數(shù)據(jù)盒子的理念,適合于輕量級的數(shù)據(jù)管理,不需嵌入式操作系統(tǒng)支持,不需要動用嵌入式數(shù)據(jù)庫,并且軟件設(shè)計中可以容易地做到與數(shù)據(jù)庫兼容。同時該方法能夠滿足國標(biāo)與現(xiàn)實應(yīng)用的需求。
[1]耿盼盼.通用物聯(lián)網(wǎng)數(shù)據(jù)采集與分析平臺的研究與實現(xiàn)[D].青島:中國海洋大學(xué),2013.
[2]李建中,李金寶,石勝飛.傳感器網(wǎng)絡(luò)及其數(shù)據(jù)管理的概念、問題與進(jìn)展[J].軟件學(xué)報,2003(10):1717-1727.LI Jian-zhong,LI Jin-bao,SHI Sheng-fei.Concepts, issues and advance of sensor networks and data management of sensor networks[J].Journal of Software,2003,14(10):1717-1727.
[3]徐藝文,魏云龍.利用μC/OS任務(wù)調(diào)度算法實現(xiàn)嵌入式數(shù)據(jù)管理[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(5):25-27+69.XU Yi-wen,WEI Yun-long.Embedded data management using C/OS task schedule algorithm[J].Microcontrollers&Embe dded Systems,2011(5):25-27+69.
[4]HJ/T212-2005,Data Transfer Standard for On-line Automatic Monitoring Pollution Sources and Control System[S].2005.
[5]吳建,裴峰,王琣楠,等.基于LabVIEW的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子測試,2013(Z1):52-54.WU Jian,PEI Feng,WANG Jun-nan,et al.Design of multichannel data acquisition system based on LabVIEW[J].Electronic Test,2013(Z1):52-54.
[6]任曉莉.基于物聯(lián)網(wǎng)與客流估計的智能公交調(diào)度設(shè)計[J].電子設(shè)計工程,2013(4):22-25.REN Xiao-li.Design of intelligent bus scheduling based on internet of things and passenger flowestimation[J].Electronic Design Engineering,2013(4):22-25.