本發(fā)明屬于智慧地球地理信息服務(wù)技術(shù)領(lǐng)域,尤其涉及一種基于流式處理框架的原位傳感器觀測接入方法。
背景技術(shù):
隨著地理空間傳感網(wǎng)([文獻(xiàn)1])的不斷發(fā)展,以度量值為觀測結(jié)果的標(biāo)量觀測原位傳感器不斷增多,其中包括RFID傳感器、水文傳感器、風(fēng)力、風(fēng)向傳感器等。它們使用無線網(wǎng)絡(luò)、串口設(shè)備等方法實現(xiàn)與計算機(jī)設(shè)備之間的通訊,將傳感器觀測值以數(shù)據(jù)包的形式發(fā)送到處理服務(wù)器上,經(jīng)數(shù)據(jù)解析、屬性關(guān)聯(lián)、特征過濾、實時存儲,將時間序列下的流式觀測結(jié)果發(fā)布到傳感器觀測服務(wù)上,實現(xiàn)傳感器數(shù)據(jù)的實時接入從而為環(huán)境災(zāi)害預(yù)警、資源勘測、設(shè)備管理監(jiān)測等決策服務(wù)提供支持,因而研究基于流式處理框架的原位傳感器觀測接入方法具有重要意義。Storm作為一種分布式流數(shù)據(jù)處理系統(tǒng),具有強(qiáng)大的分布式集群管理、便捷的流式數(shù)據(jù)編程模型、高容錯非功能保障,在流式處理、連續(xù)計算方面表現(xiàn)突出([文獻(xiàn)2]),符合傳感器流式數(shù)據(jù)特征,因而考慮將其作為一種傳感器實時接入處理工具。而傳感網(wǎng)數(shù)據(jù)的實時接入必不可少地涉及傳感器觀測的實時發(fā)布問題。從2003年起,開放地理空間聯(lián)盟(OGC:Open Geospatial Consortium)和國際標(biāo)準(zhǔn)化組織地理信息工作組(ISO/TC211)一直致力于推廣傳感網(wǎng)絡(luò)整合框架(Sensor Web Enablement)([文獻(xiàn)3]),其觀測服務(wù)主要依據(jù)觀測與測量(Observation and Measurement,O&M)([文獻(xiàn)4])、傳感器建模語言(Sensor Makeup Language,SensorML)([文獻(xiàn)5])和傳感器觀測服務(wù)(Sensor Observation Service,SOS)([文獻(xiàn)6])三個傳感網(wǎng)標(biāo)準(zhǔn)實現(xiàn),這一傳感器觀測服務(wù)在當(dāng)前地理空間傳感網(wǎng)中已經(jīng)具有完善的運行機(jī)制。
目前,圍繞傳感器數(shù)據(jù)的接入研究,國內(nèi)外學(xué)者進(jìn)行了相關(guān)研究。2006年,Karl Aberer等人([文獻(xiàn)7])提出一種GSN方式的傳感器接入中間件與傳感網(wǎng)連接方法,采用虛擬的傳感器描述方法,使用BridgeVirtualSensor中間件實現(xiàn)GSN與虛擬傳感器模型間的互操作,從而達(dá)到獲取和處理數(shù)據(jù)的目的。2008年,孫紀(jì)敏等人([文獻(xiàn)8])研究了傳感器網(wǎng)絡(luò)接入Internet體系結(jié)構(gòu)和服務(wù)提供方法,明確了無線傳感器網(wǎng)絡(luò)(WSN)接入Internet的過程。2009年,楊盤隆等人([文獻(xiàn)9])論述了無線傳感網(wǎng)與因特網(wǎng)的融合技術(shù),就無線傳感網(wǎng)的接入策略進(jìn)行了分類。2012年,陳慶奎等人([文獻(xiàn)10])提出了一個物聯(lián)網(wǎng)異構(gòu)數(shù)據(jù)接入系統(tǒng),在Chukwa大型數(shù)據(jù)采集及分析系統(tǒng)基礎(chǔ)上,通過傳感網(wǎng)區(qū)域分塊及傳感網(wǎng)絡(luò)接入代理的方法,與多種適配器協(xié)調(diào),以層次結(jié)構(gòu)系統(tǒng)實現(xiàn)傳感器異構(gòu)接入管理。傳感器數(shù)據(jù)的接入過程,數(shù)據(jù)過濾是不可避免的。張明哲等人([文獻(xiàn)11])對嵌入式RFID中間件數(shù)據(jù)過濾模型進(jìn)行了研究,將RFID數(shù)據(jù)過濾器分為屬性、冗余、行為、規(guī)則四個部分,提供了一套完善的數(shù)據(jù)過濾體系。易葉青等人([文獻(xiàn)12])提出一種基于多重半脆弱水印的虛假數(shù)據(jù)過濾算法,其過濾工作主要是傳感器端的數(shù)據(jù)真實性認(rèn)證。
但是,上述的傳感網(wǎng)接入研究還存在諸多問題,主要表現(xiàn)如下三個方面:
(1)傳感器接入過程缺乏統(tǒng)一的傳感器接入模型。
當(dāng)前傳感器接入過程呈現(xiàn)出各自為營的狀態(tài),傳感器接入主要關(guān)注從傳感器到網(wǎng)關(guān)再到Internet的協(xié)議轉(zhuǎn)換過程,而缺乏統(tǒng)一的接入標(biāo)準(zhǔn),尤其是針對傳感網(wǎng)數(shù)據(jù)包到互聯(lián)網(wǎng)數(shù)據(jù)格式之間轉(zhuǎn)換協(xié)議數(shù)據(jù)流部分的描述。對傳感器本身的數(shù)據(jù)接入建模部分缺失,主要原因是運用的傳感網(wǎng)接入模型的不同,從而導(dǎo)致對傳感器本身的描述無法統(tǒng)一。此外,原位傳感器網(wǎng)絡(luò)本身異構(gòu)性特征明顯,傳感器端使用簡單微型的電池元件傳感器構(gòu)成微型傳感器網(wǎng)絡(luò),以傳感器平臺作為控制數(shù)據(jù)接收和發(fā)送的載體,其傳感器平臺的感知類型由傳感器類型決定,而傳感網(wǎng)結(jié)構(gòu)隨傳感器數(shù)量改變,所以在傳感器接入過程中,為實現(xiàn)異構(gòu)傳感器網(wǎng)絡(luò)各個傳感器觀測結(jié)果的實時接入,需要明確傳感器平臺上數(shù)據(jù)流與各個觀測屬性間的對應(yīng)關(guān)系,即在傳感器接入模型中構(gòu)建傳感器觀測屬性與數(shù)據(jù)流的關(guān)聯(lián)關(guān)系模型。
(2)傳感器數(shù)據(jù)接入過程缺乏傳感器數(shù)據(jù)的統(tǒng)一過濾方法。
在實時地理信息系統(tǒng)中,用戶關(guān)注的往往是某個或滿足某種條件的地理對象的相關(guān)屬性,如某時某地的天氣、河流的水位等信息,因而傳感器數(shù)據(jù)接入過濾規(guī)則需要滿足其時間、空間、屬性的過濾特征。上述傳感器過濾研究多針對于某一種傳感器需求或傳感器端的數(shù)據(jù)包過濾,而非一體化的傳感器接入數(shù)據(jù)過濾規(guī)則的構(gòu)建。此外,傳感器觀測數(shù)據(jù)的過濾條件及過濾對象是多樣的,在支持對特定傳感器數(shù)據(jù)過濾的同時,又需要滿足多個傳感器或傳感器網(wǎng)絡(luò)統(tǒng)一規(guī)則過濾,而這一內(nèi)容在上述研究中未能實現(xiàn)。同時,上述傳感器觀測數(shù)據(jù)過濾模型中,未明確傳感器過濾編碼及傳感器過濾對象特征,即過濾的數(shù)據(jù)格式和該格式下的過濾條件編碼未達(dá)到統(tǒng)一建模的標(biāo)準(zhǔn)。
(3)未考慮傳感器數(shù)據(jù)實時接入。
傳感器數(shù)據(jù)是一種典型的流式數(shù)據(jù),其接入過程包含數(shù)據(jù)處理、插入等一系列過程。其實時接入涉及到兩方面,1)傳感器數(shù)據(jù)接入與發(fā)布的快速高效。2)傳感器接入需求的實時變化,即傳感器的接入要求并不是一成不變的,其數(shù)據(jù)過濾是隨需求變化的??刹捎媒M件式的高效流式數(shù)據(jù)接入方法,以滿足上述傳感器接入的實時性,因而研究基于流式框架的原位傳感器觀測接入方法是解決這一問題的關(guān)鍵。
文獻(xiàn)1:陳能成,楊訓(xùn)亮,&王曉蕾.(2013).地理空間傳感網(wǎng)信息公共服務(wù)平臺的設(shè)計與實現(xiàn).地球信息科學(xué)學(xué)報(6),887-894.
文獻(xiàn)2:丁維龍,趙卓峰,&韓燕波.(2015).Storm:大數(shù)據(jù)流式計算及應(yīng)用實踐.電子工業(yè)出版社.
文獻(xiàn)3:鄭重,陳能成,王偉,楊士樂,&彭彩華.(2010).傳感器觀測服務(wù)原型系統(tǒng)的設(shè)計與實現(xiàn).測繪地理信息,35(3),47-49.
文獻(xiàn)4:Cox,S.2007. and Measurements(version1.0)Open Geospatial Consortium(OGC),Inc.,Wayland,Mass.Report 07-022rl.
文獻(xiàn)5::Botts,M.and A.Robin,2007. Sensor Model Language Implementation Specification(version 1.0.1).Open Geospatial Consortium(OGC),Inc.,Wayland,Mass.Report 07-000.
文獻(xiàn)6:Na,A.and M.Priest,2007.Sensor Observation Service(version 1.0).Open Geospatial Consortium(OGC),Inc.,Wayland,Mass.Report 06-009r6.
文獻(xiàn)7:Aberer,K.,Hauswirth,M.,&Salehi,A.(2006).The global sensor networks middleware for efficient and flexible deployment and interconnection of sensor networks.Epfl.
文獻(xiàn)8:孫紀(jì)敏,沈玉龍,孫玉,&張思東.(2008).傳感器網(wǎng)絡(luò)接入internet體系結(jié)構(gòu)和服務(wù)提供方法.通信學(xué)報,29(04),84-89.
文獻(xiàn)9:楊盤隆,&陳貴海.(2009).無線傳感網(wǎng)與因特網(wǎng)融合技術(shù).中興通訊技術(shù),15(05),24-27.
文獻(xiàn)10:陳慶奎,呂曉明,郝聚濤,張哲,&莊松林.(2012).一個物聯(lián)網(wǎng)異構(gòu)數(shù)據(jù)接入系統(tǒng)chukwax.計算機(jī)工程,38(17),12-15.
文獻(xiàn)11:張明哲,張強(qiáng),袁巍,&劉威.(2010).嵌入式rfid中間件數(shù)據(jù)過濾模型研究.計算機(jī)工程與設(shè)計,31(17),3743-3746.
文獻(xiàn)12:易葉青,林亞平,彭舸,周四望,&羊四清.(2009).無線傳感器網(wǎng)絡(luò)中不依賴mac認(rèn)證的虛假數(shù)據(jù)過濾算法.通信學(xué)報,30(06),53-63.
技術(shù)實現(xiàn)要素:
針對現(xiàn)有原位傳感器觀測接入問題,本發(fā)明采用流式處理框架,提出了一種接入、過濾和存儲相分離的原位傳感器觀測數(shù)據(jù)接入方法,從而實現(xiàn)時間序列下數(shù)值型原位傳感器定長記錄的實時接入與過濾。
本發(fā)明所所采用的技術(shù)方案是:一種基于流式處理框架的原位傳感器觀測接入方法,其特征在于,包括以下步驟:
步驟1:明確傳感器網(wǎng)絡(luò)結(jié)構(gòu),使用傳感器建模語言,構(gòu)建以傳感器站點為中心的原位傳感器網(wǎng)絡(luò)結(jié)構(gòu)模型(這里的傳感器網(wǎng)絡(luò)結(jié)構(gòu)模型指以傳感器建模語言將傳感器站點及包含的傳感器實體計算機(jī)數(shù)字化建模),并注冊傳感器信息;
步驟2:傳感器接入;
步驟2.1:基于傳感器網(wǎng)絡(luò)結(jié)構(gòu)模型,建立傳感器觀測屬性與數(shù)據(jù)流關(guān)聯(lián)關(guān)系文件;
步驟2.2:通過解析傳感器網(wǎng)絡(luò)結(jié)構(gòu)模型和觀測屬性與數(shù)據(jù)流的關(guān)聯(lián)關(guān)系,獲取接入?yún)?shù),建立以傳感器站點為中心的傳感器統(tǒng)一接入模型,實現(xiàn)連續(xù)接入的數(shù)據(jù)流到傳感器觀測屬性值的轉(zhuǎn)換;
步驟2.3:在獲取傳感器觀測結(jié)果后,形成以單個傳感器為中心的傳感器觀測數(shù)據(jù)發(fā)送到過濾組件中;
步驟3:傳感器過濾;
按接入需求構(gòu)建傳感器觀測過濾編碼文件,解析獲得傳感器過濾規(guī)則件(通過構(gòu)建的過濾編碼文件,解析得到過濾規(guī)則件),獲取由接入組件傳來的傳感器觀測數(shù)據(jù),并進(jìn)行過濾,將滿足過濾要求的傳感器觀測數(shù)據(jù)發(fā)送到傳感器存儲組件;
步驟4:傳感器存儲;
接收由傳感器過濾組件傳來的傳感器觀測數(shù)據(jù),對其進(jìn)行編碼,實時發(fā)布到傳感器觀測服務(wù)中;
步驟5:傳感器流式處理流程配置文檔,依配置文檔將傳感器接入組件、過濾組件與傳感器存儲組件有機(jī)地組合,形成一個流式原位傳感器站點數(shù)據(jù)接入單元。
作為優(yōu)選,步驟1中所述建以傳感器站點為中心的傳感器組網(wǎng)模型,在傳感器數(shù)據(jù)接入過程中需要明確當(dāng)前傳感器平臺所擁有的傳感器列表與每個傳感器所觀測的屬性列表,利用傳感器建模語言,構(gòu)建一組以站點為中心的原位傳感器網(wǎng)絡(luò)結(jié)構(gòu)模型,其包含原位傳感器模型與原位傳感器站點模型;原位傳感器模型包含如下部分:傳感器標(biāo)識、傳感器所屬平臺標(biāo)識、傳感器空間位置、傳感器觀測屬性標(biāo)識和觀測屬性單位信息。原位傳感器站點模型內(nèi)容有傳感器站點標(biāo)識、包含的傳感器標(biāo)識、站點空間位置。
作為優(yōu)選,步驟2.1的具體實現(xiàn)過程是:傳感器觀測是一個在離散時刻或時期中把一個數(shù)字、術(shù)語或其他符號匹配到一個現(xiàn)象的過程;在傳感器觀測接入過程中,需要明確傳感器數(shù)據(jù)流所對應(yīng)的屬性關(guān)系,這可以使得相同數(shù)據(jù)組織類型的異構(gòu)傳感器網(wǎng)絡(luò)結(jié)構(gòu)使用同一種方法接入,傳感器數(shù)據(jù)流對應(yīng)的屬性關(guān)系采用數(shù)組的形式表達(dá),主要包含傳感器標(biāo)識SensorID、該傳感器下的觀測屬性標(biāo)識PropertyID、該觀測屬性的在數(shù)據(jù)流中的位置DataPosition以及該觀測屬性在數(shù)據(jù)流中的長度DataLength;這一關(guān)聯(lián)關(guān)系中通過傳感器標(biāo)識SensorID和觀測屬性標(biāo)識PropertyID唯一確定一個觀測對象,將數(shù)據(jù)流與觀測對象相匹配,從而達(dá)到觀測的目的。
作為優(yōu)選,步驟2.2的具體實現(xiàn)過程是:以步驟1中所述原位傳感器網(wǎng)絡(luò)結(jié)構(gòu)模型為基礎(chǔ),解析傳感器網(wǎng)絡(luò)結(jié)構(gòu),形成“站點標(biāo)識-傳感器-觀測屬性”的傳感器統(tǒng)一接入模型;傳感器統(tǒng)一接入模型包含觀測時間以及站點下包含的所有傳感器信息(傳感器標(biāo)識、傳感器空間位置、傳感器觀測屬性標(biāo)識和觀測屬性單位信息),而單個傳感器觀測屬性集合又包含觀測屬性標(biāo)識、觀測屬性名稱、觀測屬性單位和預(yù)留的傳感器觀測值空位;以傳感器統(tǒng)一接入模型數(shù)據(jù)結(jié)構(gòu)模型為基礎(chǔ),結(jié)合傳感器觀測屬性與數(shù)據(jù)流的關(guān)聯(lián)關(guān)系,從而匹配傳感器統(tǒng)一接入模型中的觀測值空位,實現(xiàn)傳感器觀測。
作為優(yōu)選,步驟2.3的具體實現(xiàn)過程是:以傳感器統(tǒng)一接入模型為基礎(chǔ),根據(jù)采樣時刻的遷移,傳感器觀測值不斷變化;傳感器統(tǒng)一接入階段主要目的是將傳感器信息與觀測值相結(jié)合,同時形成以傳感器為中心的傳感器觀測數(shù)據(jù)結(jié)構(gòu);傳感器觀測數(shù)據(jù)結(jié)構(gòu)包括傳感器標(biāo)識sensorID、傳感器空間位置position、傳感器觀測時間observationTime以及傳感器觀測屬性信息及觀測值;以此為一個數(shù)據(jù)傳輸單元,以數(shù)據(jù)流的形式發(fā)送給傳感器過濾組件部分,為數(shù)據(jù)過濾部分做準(zhǔn)備。
作為優(yōu)選,步驟3的具體實現(xiàn)過程是:
步驟3.1:基于傳感器觀測數(shù)據(jù)結(jié)構(gòu)中各要素,確定屬性、時間、空間過濾條件,構(gòu)建傳感器過濾規(guī)則件;針對觀測值的過濾規(guī)則是比較操作,時間過濾操作是針對觀測時間點的比較,空間過濾操作是針對傳感器空間位置的過濾;
步驟3.2:解析上述傳感器過濾規(guī)則件,獲得傳感器觀測數(shù)據(jù)過濾條件;傳感器過濾組件接收傳感器觀測數(shù)據(jù)單元,將該觀測數(shù)據(jù)單元轉(zhuǎn)換為以空間位置為中心,觀測屬性與觀測時間:信息作為空間位置附屬信息,形成一個Feature矢量數(shù)據(jù);進(jìn)而依據(jù)傳感器過濾條件判斷當(dāng)前觀測結(jié)果是否滿足過濾條件,若滿足則將該傳感器觀測數(shù)據(jù)發(fā)送到下一組件中;否則,丟棄該傳感器觀測數(shù)據(jù)。
作為優(yōu)選,步驟5的具體實現(xiàn)過程是:
步驟5.1:傳感器流式處理流程配置文檔,其中包含該傳感器流式處理流程的唯一標(biāo)識、傳感器接入組件配置參數(shù)、傳感器過濾組件配置參數(shù)與傳感器存儲組件配置參數(shù),各個組件包含組件標(biāo)識、組件類名稱、該組件的任務(wù)數(shù)參數(shù),以此確定一個傳感器接入單元處理流程;在傳感器接入組件配置參數(shù)中聲明傳感器觀測屬性與數(shù)據(jù)流關(guān)聯(lián)關(guān)系文件路徑,在傳感器過濾組件配置參數(shù)中聲明傳感器過濾規(guī)則件文件路徑;
步驟5.2:傳感器接入單元的各個組件繼承運行組件運行模塊的基礎(chǔ)類,由傳感器流式處理流程配置文檔獲取當(dāng)前處理單元流式處理參數(shù),從而實現(xiàn)傳感器各個組件的初始化,實現(xiàn)流式框架下傳感器單元觀測數(shù)據(jù)接入。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點和積極特點:
1.支持相同原位傳感器協(xié)議下異構(gòu)網(wǎng)絡(luò)觀測的統(tǒng)一接入。在傳感器接入組件中,傳感器針對接入數(shù)據(jù)流的特征,確定傳感器觀測屬性與數(shù)據(jù)流之間的關(guān)聯(lián)關(guān)系。對于站點下,數(shù)量及觀測類型不同的傳感器網(wǎng)絡(luò)單元,在構(gòu)建傳感器觀測屬性與數(shù)據(jù)流的關(guān)聯(lián)關(guān)系后,可實現(xiàn)同類型傳感器網(wǎng)絡(luò)單元的統(tǒng)一方法接入。這在一定程度上可以減少傳感器單元的變革程度,從而減少在接入階段針對特定傳感器網(wǎng)絡(luò)結(jié)構(gòu)的觀測數(shù)據(jù)接入工作,解決了傳感器接入階段對網(wǎng)絡(luò)結(jié)構(gòu)異構(gòu)的傳感器單元接入問題。
2.為用戶提供了多樣的傳感器觀測過濾需求,提高了傳感器接入觀測結(jié)果的質(zhì)量。在實際研究與工作中,用戶對傳感器觀測數(shù)據(jù)是有需求的,因而需要對其進(jìn)行過濾篩選。傳統(tǒng)的傳感器接入方法未有體系的考慮到傳感器觀測接入的過濾問題,而本發(fā)明提出一個特定的傳感器觀測模型(傳感器觀測模型是過濾對象),將傳感器觀測過濾分為屬性、時間、空間,并采用統(tǒng)一的過濾規(guī)則實現(xiàn)多種條件下的傳感器觀測過濾。此外,在傳感器流式處理配置文檔的設(shè)計上,以文件路徑的方式指定傳感器過濾規(guī)則件,一個過濾文件可支持單個或多個傳感器過濾單元的使用,因而觀測過濾部分既可以支持對單個傳感器過濾,也可以支持對多個傳感器過濾。
3.傳感器接入單元各組件獨立,通過傳感器觀測模型相互銜接,提高組件可重用性和傳感器觀測服務(wù)的實時性。基于流式處理框架的傳感器觀測接入方法將觀測接入劃分為接入、過濾、存儲三個獨立的處理過程,彼此之間以傳感器觀測模型通信。各組件繼承流式處理框架組件基礎(chǔ)類,以傳感器配置文檔中聲明的組件類名稱,實現(xiàn)初始化,因而不同協(xié)議的傳感器觀測網(wǎng)絡(luò)接入時,實現(xiàn)并在流式處理配置文檔中聲明接入組件名稱即可構(gòu)建一個傳感器接入單元,而過濾與存儲部分無需改變。此外,針對實時變更的過濾需求,修改傳感器過濾規(guī)則件,可改變傳感器觀測過濾內(nèi)容,在一定程度上滿足傳感器過濾需求的實時變更。同時,傳感器接入單元在流式處理框架下實時運行,源源不斷地將傳感器觀測數(shù)據(jù)發(fā)布到傳感器觀測服務(wù)中,實現(xiàn)傳感器數(shù)據(jù)的實時發(fā)布。因而,采用流式處理框架既符合原位傳感器異構(gòu)特征,又能夠有效提升傳感器觀測服務(wù)的實時性需求。
附圖說明
圖1是本發(fā)明實施例的流程圖;
圖2是本發(fā)明實施例的傳感器網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖3是本發(fā)明實施例的傳感器統(tǒng)一接入模型的數(shù)據(jù)結(jié)構(gòu)圖;
圖4是本發(fā)明實施例的以單個傳感器為中心的觀測數(shù)據(jù)模型結(jié)構(gòu)圖;
圖5是本發(fā)明實施例的支持傳感器過濾方法流程圖;
圖6是本發(fā)明實施例的傳感器單元觀測數(shù)據(jù)空間對象數(shù)據(jù)結(jié)構(gòu)圖;
圖7是本發(fā)明實施例的傳感器接入Storm統(tǒng)一配置模塊描述示意圖。
具體實施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實施本發(fā)明,下面結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
原位傳感器具有網(wǎng)絡(luò)結(jié)構(gòu)和屬性異構(gòu)的特征,即相同通信協(xié)議下的傳感器網(wǎng)絡(luò)組成的傳感器數(shù)量和類型不同,其觀測結(jié)果為度量值的標(biāo)量觀測、觀測位置固定且以站點為采樣特征的點采樣方式,觀測結(jié)果在時間上離散分布。此外,傳感器的觀測是一個實時過程,數(shù)據(jù)以流式方式源源不斷的發(fā)送到數(shù)據(jù)處理端,用戶根據(jù)觀測數(shù)據(jù)特征規(guī)定過濾需求,而這一需求并不是一成不變的,如在監(jiān)測過程中,農(nóng)作物在不同生長期所需要的土壤水份不同,其土壤濕度傳感器的過濾閾值不同。針對上述原位傳感器觀測的異構(gòu)性、實時性與觀測位置固定特征,本發(fā)明提出一種基于流式處理框架的原位傳感器觀測接入方法。該方法的實現(xiàn)采用傳感器網(wǎng)絡(luò)整合框架SWE中的SensorML標(biāo)準(zhǔn),將異構(gòu)的原位傳感器網(wǎng)絡(luò)以站點為中心進(jìn)行建模與SOS注冊,同時構(gòu)傳感器觀測屬性與數(shù)據(jù)流關(guān)聯(lián)關(guān)系和傳感器觀測過濾編碼,以原位傳感器接入配置文件為指導(dǎo),組合傳感器接入、過濾和SOS存儲部分的Storm組件,其中過濾組件使用OGC Filter 1.0標(biāo)準(zhǔn)構(gòu)建傳感器觀測過濾規(guī)則件,存儲部分以O(shè)&M編碼標(biāo)準(zhǔn)實現(xiàn)傳感器觀測值編碼,最終生成原位傳感器接入拓?fù)洌蟼鞯絊torm集群中實現(xiàn)原位傳感器SOS接入。
請見圖1,本發(fā)明提供的一種基于流式處理框架的原位傳感器觀測接入方法,具體包括步驟:
步驟1:典型的傳感器網(wǎng)絡(luò)結(jié)構(gòu)由傳感器節(jié)點、接收發(fā)送器sink、Internet或衛(wèi)星、任務(wù)管理節(jié)點等部分構(gòu)成。傳感器平臺的概念更接近與接收發(fā)器,如圖2所示,原位傳感器建模是以站點為中心的傳感器網(wǎng)絡(luò)結(jié)構(gòu),原位傳感器節(jié)點搭載在站點之上用于觀測在傳感器周圍的區(qū)域物質(zhì)屬性,通過站點上的接收法器(GPRS設(shè)備等)實現(xiàn)觀測結(jié)果的互聯(lián)網(wǎng)接入。
觀測是一個在離散時刻或時段中把一個數(shù)字、術(shù)語或其他符號匹配到一個現(xiàn)象的過程。傳感器數(shù)據(jù)接入是一個觀測處理過程,因而對傳感器的物理建模是觀測值與觀測現(xiàn)象關(guān)聯(lián)的前提。本發(fā)明采用OGC傳感器描述語言SensorML,而其中也規(guī)定傳感器平臺(站點)和傳感器實體是分開的,傳感器平臺被建模成包含所有傳感器的系統(tǒng),因而對原位傳感器站點與傳感器建模,需要聲明傳感器間的關(guān)聯(lián)關(guān)系。
按照OGC的傳感器建模語言預(yù)定義XML建模模板對傳感器站點建模,其中必須標(biāo)識的屬性為傳感器站點ID、傳感器站點下關(guān)聯(lián)的屬性ID以及站點空間位置信息。采用SensorML1.0.1以sml:SensorML/sml:member/sml:System/sml:identification/sml:IdentifierList下聲明傳感器站點名稱及與其關(guān)聯(lián)的傳感器名稱,在其下使用sml:identifier/sml:Term@definition=”urn:ogc:def:identifier:OGC:1.0:uniqueID”/sml:value定義傳感器站點名稱,使用多個sml:identifier/sml:Term@definition="urn:ogc:def:identifier:OGC:1.0:associatedSenso rName"/sml:value聲明關(guān)聯(lián)的原位傳感器ID。在sml:Position下定義傳感器站點的位置信息,以sml:Position/swe:postion中的referenceFrame=”urn:ogc:def:crs:EPSG:4326”屬性明確空間參考系為WGS84坐標(biāo)系,同時以經(jīng)緯度明確具體空間位置。而對于傳感器單元來說,建模中需要明確傳感器ID,傳感器站點ID、傳感器空間位置以及傳感器觀測屬性信息。同樣地,使用sml:SensorML/sml:member/sml:System/sml:identification/sml:IdentifierList單元聲明傳感器與站點之間的連接關(guān)系,在上述SensorML節(jié)點下,以sml:identifier/sml:Term@definition=”urn:ogc:def:identifier:OGC:1.0:uniqueID”/sml:value節(jié)點定義傳感器ID,使用sml:identifier/sml:Term@definition=”urn:ogc:def:identifier:OGC:1.0:parentSystemUniqueId”/sml:value定義傳感器的所屬站點ID。以上述sml:Position方法,定義傳感器空間位置信息。傳感器觀測屬性以sml:outputs模塊進(jìn)行定義在sml:SensorML/sml:member/sml:System/sml:outputs/sml:OutputList節(jié)點下定義觀測屬性,一般的觀測屬性為雙精度浮點型數(shù)據(jù)使用swe:Quantity進(jìn)行定義。
使用傳感器觀測服務(wù)的RegisterSensor中間件注冊定義的傳感器站點與傳感器模型,為傳感器觀測接入做準(zhǔn)備,其中SOS服務(wù)版本為1.0。
步驟2:建立Storm傳感器數(shù)據(jù)接入組件。傳感器接入組件的建立分為兩個過程:1.基于站點的傳感器觀測屬性與數(shù)據(jù)流關(guān)聯(lián)關(guān)系的建立。2.解析傳感器網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)觀測屬性與數(shù)據(jù)流關(guān)聯(lián)關(guān)系模型,關(guān)聯(lián)傳感器觀測數(shù)據(jù)。
步驟2.1:建立傳感器觀測屬性與數(shù)據(jù)流關(guān)聯(lián)關(guān)系模型。原位傳感器的接入是將互聯(lián)網(wǎng)應(yīng)用層獲取的傳感器數(shù)據(jù)包轉(zhuǎn)化為數(shù)字并與傳感器觀測屬性項關(guān)聯(lián)的過程。傳感器網(wǎng)絡(luò)結(jié)構(gòu)的差異與通信協(xié)議的差異導(dǎo)致了傳感器數(shù)據(jù)包的不同。原位傳感器接入中觀測值在一定程度上可認(rèn)為是傳感器端數(shù)據(jù)包中數(shù)據(jù)段與傳感器觀測屬性模型之間的關(guān)聯(lián)關(guān)系。開放系統(tǒng)互連參考模型將網(wǎng)絡(luò)模型分為物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。SensorML中,基于開放互聯(lián)參考模型擴(kuò)展的Interface模塊下的InterfaceDefinition將傳感器物理連接和協(xié)議定義為機(jī)械層、物理層、數(shù)據(jù)連接層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層和服務(wù)層。而傳感器數(shù)據(jù)接入中關(guān)鍵的數(shù)據(jù)連接部分主要在應(yīng)用層協(xié)議獲取數(shù)據(jù)時得以實現(xiàn),使用應(yīng)用層協(xié)議獲取的數(shù)據(jù)包格式由傳感器控制協(xié)議決定,所以本發(fā)明擴(kuò)展傳感器接口模型,將傳感器觀測屬性與數(shù)據(jù)的連接關(guān)系部分位于此處進(jìn)行描述,在傳感器應(yīng)用層中定義了傳感器應(yīng)用層獲取數(shù)據(jù)的協(xié)議工具參數(shù)、原位傳感器控制協(xié)議說明以及數(shù)據(jù)連接部分。
以應(yīng)用層Socket協(xié)議請求遠(yuǎn)程傳感器上的GPRS數(shù)據(jù)為例,傳感器控制協(xié)議為Modbus。本發(fā)明使用SensorML中的Interfaces模塊明確傳感器站點接入?yún)f(xié)議,在interfaces/InterfaceList下定義Modbus協(xié)議應(yīng)用層實現(xiàn)參數(shù)。在interfaces/InterfaceList/interface@name=”Modbus”/InterfaceDefinition節(jié)點下定義applicationLayer節(jié)點,以swe:DataRecord definition="urn:liesmars:def:protocol:LIESMARS:1.0.0:Modbus定義傳感器接入?yún)f(xié)議,為保證模型的可讀性和可用性將協(xié)議分為三個部分實現(xiàn)工具部分、控制協(xié)議說明部分、屬性連接關(guān)系部分,具體節(jié)點編碼定義詳見表1。
表1:Modbus原位傳感器接入?yún)f(xié)議編碼含義
步驟2.2:輸入原位傳感器站點名稱,解析傳感器數(shù)據(jù)模型,并獲取原位傳感器觀測值。首先,根據(jù)輸入的傳感器站點標(biāo)識StationID,使用傳感器觀測服務(wù)中的DescribeSensor中間件,根據(jù)傳感器站點名稱獲取傳感器網(wǎng)絡(luò)結(jié)構(gòu)SensorML編碼(傳感器站點與傳感器編碼),并解析獲取如圖3所示的傳感器站點-傳感器-屬性的傳感器觀測數(shù)據(jù)接入模型,構(gòu)建傳感器站點類。傳感器觀測數(shù)據(jù)接入模型以傳感器站點為中心,站點包含傳感器站點標(biāo)示(StationID)屬性;在站點下包含多個傳感器單元,每個傳感器單元包含傳感器標(biāo)識(sensorID)、傳感器位置(position)、傳感器觀測時間(observationTime);同時單個傳感器下包含多個觀測屬性單元,每個觀測屬性由觀測屬性標(biāo)識(PropertyID)、觀測屬性名稱(PropertyName)、觀測屬性單位(PropertyUnit)以及預(yù)留的觀測值(Value)組成。
Storm傳感器數(shù)據(jù)接入組件繼承BaseRichSpout類,其中傳感器觀測接入模型數(shù)據(jù)結(jié)構(gòu)類需要繼承java.io.Serializable接口。之后,解析傳感器接入?yún)f(xié)議模型,形成傳感器接入?yún)?shù)信息模型,將獲取的原位傳感器數(shù)據(jù)包,依據(jù)接入?yún)?shù)中的屬性連接參數(shù),進(jìn)行解析,將傳感器觀測數(shù)據(jù)接入模型中預(yù)留的觀測值單元(Value)與解析的觀測結(jié)果關(guān)聯(lián)。并在BaseRichSpout中的emit()方法發(fā)送該傳感器觀測數(shù)據(jù)模型,如圖4所示,以傳感器為中心的觀測數(shù)據(jù)模型主要描述單個傳感器中的觀測值信息以及當(dāng)時的觀測條件。
為了保證傳感器接入的可擴(kuò)展性,針對不同協(xié)議下的傳感器,需要構(gòu)建新的Spout數(shù)據(jù)接收部分,即適配器是可擴(kuò)展的,在傳感器數(shù)據(jù)與觀測數(shù)據(jù)接入模型關(guān)聯(lián)后,只需要保證發(fā)送的傳感器觀測數(shù)據(jù)模型一致即可。
步驟3:建立Storm原位傳感器觀測過濾組件。同樣地,Storm傳感器過濾組件分為建立傳感器觀測過濾規(guī)則模型和傳感器Storm過濾實現(xiàn)兩部分。
步驟3.1:建立原位傳感器觀測過濾規(guī)則模型。在OGCObservation&Measurement規(guī)范中,廣義的觀測模型中沒有內(nèi)置一個位置屬性,相關(guān)的位置信息根據(jù)特定的情況。由于本發(fā)明關(guān)注的溫度、水位、風(fēng)速等地理現(xiàn)象的地理特征明顯,本發(fā)明從狹義的觀測角度出發(fā),認(rèn)為原位傳感器觀測結(jié)果由空間位置提供,其相關(guān)聯(lián)的傳感器ID、傳感器屬性與傳感器屬性單位、觀測時間等信息均為該原位傳感器地理位置的附屬屬性。所以,原位傳感器的過濾規(guī)則分為三個部分:空間過濾、時間過濾和屬性過濾,用于過濾在觀測數(shù)據(jù)模型中形成的傳感器觀測結(jié)果空間對象。如圖5所示,傳感器觀測數(shù)據(jù)過濾由邏輯操作和過濾操作兩個部分組成。邏輯操作包括AND、OR、NOT,邏輯操作將時間、空間和屬性三者的過濾條件相結(jié)合,以滿足過濾條件。過濾操作中屬性過濾包含屬性值相等(PropertyIsEqualTo)、不等(PropertyIsNotEqualTo)、大于(PropertyIsGreaterThan)、小于(PropertyIsLessThan)、大于等于(PropertyIsGreaterOrEqualTo)和小于等于(PropertyIsLessOrEqualTo);時間過濾是針對傳感器觀測時刻的過濾,因而只包含對時刻點的過濾方法,有在某個時刻之后(After)、在某個時刻之前(Before)、在某個時間段內(nèi)(During);空間過濾是對傳感器空間位置的過濾,其針對空間點數(shù)據(jù)的過濾方法有在某個距離范圍內(nèi)(DWithin),在某個空間范圍內(nèi)(Contains),不包含在某個空間范圍內(nèi)(Disjoint),在某個矩形范圍內(nèi)(BBOX)。本發(fā)明以O(shè)GC Filter1.0編碼,針對步驟2.2中的,傳感器觀測數(shù)據(jù)模型,建立對傳感器標(biāo)識sensorID、觀測屬性值、觀測地點position和觀測時間observationTime的過濾條件。其中觀測屬性值的名稱以傳感器觀測屬性標(biāo)識表示,每個傳感器的觀測屬性名稱不盡相同。傳感器過濾的基礎(chǔ)是空間、時間坐標(biāo)系和觀測屬性單位相同,空間參考系以WGS84坐標(biāo)系為基準(zhǔn),時間坐標(biāo)系以格林威治時間為基準(zhǔn),屬性單位需保證與步驟一傳感器模型中定義的傳感器觀測屬性相同。基于此,構(gòu)建傳感器過濾規(guī)則件。
步驟3.2:構(gòu)建Storm傳感器過濾組件。首先,Storm過濾組件繼承BaseRichBolt類,以execute()方法Tuple對象接收從Spout中發(fā)送過來的傳感器觀測數(shù)據(jù)模型結(jié)構(gòu)類。之后,以站點為中心的數(shù)據(jù)模型,拆分成各個傳感器數(shù)據(jù)模型,并構(gòu)建如圖6所示的以傳感器為單元的觀測數(shù)據(jù)空間對象圖層。該傳感器單元觀測數(shù)據(jù)空間對象是一個Feature類型的數(shù)據(jù),其以傳感器位置(position)為中心,將傳感器標(biāo)識(sensorID)、傳感器觀測時間(observationTime)和各觀測屬性值(Value)作為該Feature屬性,構(gòu)建傳感器觀測過濾的目標(biāo)單元。其中,觀測屬性以傳感器觀測屬性標(biāo)識(PropertyID)進(jìn)行標(biāo)識。由于在過濾中,傳感器標(biāo)識、觀測地點和觀測時間屬性是由固定字段表示的,而觀測屬性具有不定性。過濾的目的是針對特定的傳感器觀測圖層進(jìn)行過濾,因而需要先進(jìn)行傳感器圖層的屬性判斷,若過濾條件的傳感器屬性名稱在該傳感器圖層中,則對該傳感器觀測圖層進(jìn)行過濾,以emit()方法發(fā)送該傳感器觀測結(jié)果;否則,不進(jìn)行過濾,直接發(fā)送該傳感器觀測圖層結(jié)果。
步驟4:構(gòu)建Storm傳感器觀測存儲組件。Storm傳感器觀測存儲組件繼承BaseRichBolt抽象類,從Storm傳感器過濾組件中接收傳感器觀測圖層結(jié)果,利用OGCObservation&Measurement規(guī)范進(jìn)行編碼,使用傳感器觀測服務(wù)InsertObservation中間件實時插入SOS服務(wù)中。具體編碼如表2所示:
表2傳感器觀測結(jié)果O&M編碼結(jié)點說明表
步驟5:整合Storm傳感器接入各組件,形成傳感器接入拓?fù)洹torm運行以拓?fù)錇閱挝?,Spout和Bolt組件是傳感器接入拓?fù)涞慕M成部分,需要明確拓?fù)錁?biāo)識、組件標(biāo)識、組件類名與并發(fā)數(shù),實現(xiàn)傳感器接入、過濾與存儲組件的整合。因而,首先需要構(gòu)建Storm傳感器接入模式文件,明確接入拓?fù)涞慕M成。其次,需要構(gòu)建傳感器接入拓?fù)洌瑢⑼負(fù)渖蟼鞯絊torm集群中。
步驟5.1:構(gòu)建傳感器接入XML模式,用以規(guī)范傳感器接入過程,并確保傳感器接入具有實時變更的可能性。Storm傳感器接入拓?fù)渑渲萌鐖D7所示,傳感器接入拓?fù)渑渲媚J椒譃樗膫€部分,拓?fù)錁?biāo)識TopologyID、傳感器接入組件Receive、傳感器過濾組件Filter和傳感器觀測存儲組件部分Store。具體標(biāo)簽結(jié)點及含義如表3所示。
表3Storm傳感器接入配置編碼說明表
步驟5.2:構(gòu)建傳感器接入拓?fù)?。首先,根?jù)上述傳感器接入配置模型構(gòu)建的傳感器接入拓?fù)渑渲梦臋n,獲取傳感器接入拓?fù)渑渲脜?shù)?;诖?,傳感器各組件類使用java,lang.Class.forname()方法實現(xiàn)組件實例化,傳感器接收組件轉(zhuǎn)化為org.apache.storm.topology.IRichSpout接口類,傳感器過濾及接入組件轉(zhuǎn)換為org.apache.storm.topology.IRichBolt接口類,并依據(jù)組件預(yù)留的協(xié)議模型參數(shù)和過濾參數(shù)接口,加載各組件需要的參數(shù)信息。此外,傳感器的接入處理流程是固化的且數(shù)據(jù)流之間的銜接是固定的。由于以傳感器為單元的觀測數(shù)據(jù)在O&M模型中具有均質(zhì)性,即各個傳感器的觀測結(jié)果均看作由空間位置提供的屬性信息,且傳感器觀測結(jié)果編碼相同,所以在Storm中組件分流采用shuffleGrouping的分流方式。這種分流方式,表示Storm將數(shù)據(jù)均勻隨機(jī)的發(fā)送到Bolt中的任務(wù),數(shù)據(jù)分配比較均勻。以傳感器接入拓?fù)涫褂肧torm中org.apache.storm.topology.TopologyBuilder類實例,初始化傳感器接入拓?fù)涞母鹘M件標(biāo)識、并發(fā)數(shù)和組件連接關(guān)系,實現(xiàn)傳感器接入拓?fù)鋭?chuàng)建工作。最后采用org.apahce.storm.StormSubmitter.submitToplogy()方法將拓?fù)渖蟼鞯絊torm集群中。
針原位傳感器實時接入,本發(fā)明給出了了傳感器接入控制管理平臺的設(shè)想,利用Storm UI中的Rest API服務(wù),可以有效獲取傳感器拓?fù)涞墓ぷ鳡顟B(tài),實現(xiàn)傳感器接入拓?fù)渚W(wǎng)絡(luò)平臺的運行、暫停、關(guān)閉和重構(gòu)操作。此外,平臺在傳感器網(wǎng)絡(luò)建模經(jīng)RegisterSensor注冊之后提供傳感器接入?yún)f(xié)議模型與過濾模型構(gòu)建,基于此,設(shè)定傳感器接入拓?fù)鋮?shù),從而實現(xiàn)傳感器拓?fù)渖蟼?,達(dá)到傳感器接入的目的。其中,Storm集群中的傳感器接入拓?fù)涫菍崟r處理數(shù)據(jù)程序,依據(jù)傳感器配置參數(shù)的修改和拓?fù)渲匦律蟼?,實現(xiàn)傳感器接入的實時變更。從而達(dá)到傳感器實時接入處理的目的。
本發(fā)明通過對傳感器站點及傳感器SensorML建模,在此基礎(chǔ)上,建立傳感器接入?yún)f(xié)議模型,確定傳感器觀測結(jié)果與觀測屬性間的連接關(guān)系,形成Storm傳感器接入組件;將觀測結(jié)果視為由傳感器空間位置提供,針對觀測空間對象建立OGC Filter標(biāo)準(zhǔn)支持的空間過濾模型,形成Storm傳感器過濾組件;在數(shù)據(jù)過濾的基礎(chǔ)上,Storm存儲組件接收過濾后的數(shù)據(jù),基于SOS中的InsertObservation中間件實現(xiàn)傳感器數(shù)據(jù)實時發(fā)布存儲。最后,構(gòu)建傳感器接入拓?fù)渑渲媚P停瑢崿F(xiàn)Storm中各傳感器處理組件的初始化和銜接工作,形成可用拓?fù)渖蟼鞯絊torm集群中,實現(xiàn)傳感器觀測數(shù)據(jù)的實時接入處理發(fā)布過程。
應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當(dāng)理解的是,上述針對較佳實施例的描述較為詳細(xì),并不能因此而認(rèn)為是對本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。