陳琦帆 舒 堅 孟令沖 劉琳嵐
1(南昌航空大學物聯(lián)網(wǎng)技術(shù)研究所 江西 南昌 330063)2(南昌航空大學軟件學院 江西 南昌 330063)3(南昌航空大學信息工程學院 江西 南昌 330063)
?
基于虛擬接入物聯(lián)網(wǎng)中間件平臺的設(shè)計與應(yīng)用
陳琦帆1,2舒 堅1,2孟令沖1,3劉琳嵐1,3
1(南昌航空大學物聯(lián)網(wǎng)技術(shù)研究所 江西 南昌 330063)2(南昌航空大學軟件學院 江西 南昌 330063)3(南昌航空大學信息工程學院 江西 南昌 330063)
提出一種基于虛擬接入的物聯(lián)網(wǎng)中間件平臺VAM(Virtual Access Middleware)。通過引入虛擬接入層,將異構(gòu)的傳感網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換為中間件平臺的內(nèi)部協(xié)議,從而屏蔽了傳感網(wǎng)絡(luò)的異構(gòu)性,為應(yīng)用層訪問異構(gòu)無線傳感網(wǎng)絡(luò)提供統(tǒng)一的訪問平臺。詳細介紹此中間件平臺虛擬接入模塊以及平臺通信協(xié)議的設(shè)計,并通過在水質(zhì)監(jiān)測系統(tǒng)下的應(yīng)用,驗證了VAM中間件的可行性,降低了應(yīng)用層軟件開發(fā)的復(fù)雜度。
中間件 物聯(lián)網(wǎng) 虛擬接入 無線傳感網(wǎng)絡(luò)
物聯(lián)網(wǎng)(IoT)[1]是以互聯(lián)網(wǎng)作為核心,在其基礎(chǔ)上通過無線傳感器網(wǎng)絡(luò)(WSN)[2]、無線射頻識別(RFID)[3]以及智能嵌入式技術(shù)[4]等實現(xiàn)物與物之間的信息交互與共享。物聯(lián)網(wǎng)通過在日常生活用品中嵌入各種具有短距離移動收發(fā)功能的嵌入式設(shè)備,使得人與物、物與物之間能夠以一種新穎的方式進行相互通信。物聯(lián)網(wǎng)的體系架構(gòu)主要包含感知層和應(yīng)用層。感知層的功能是對所有物理的和虛擬的“物”的相關(guān)數(shù)據(jù)進行采集。應(yīng)用層則負責對底層感知設(shè)備的請求進行響應(yīng)。應(yīng)用層與感知層的高耦合性導(dǎo)致應(yīng)用層軟件在感知層的感知設(shè)備改變時需要進行大幅調(diào)整以適應(yīng)不同的感知設(shè)備。
為了解決上述問題,在物聯(lián)網(wǎng)的系統(tǒng)架構(gòu)中引入了“中間件”。物聯(lián)網(wǎng)中間件是位于感知層與應(yīng)用層之間的軟件層,它能夠屏蔽底層網(wǎng)絡(luò)的個體特征,解決了物聯(lián)網(wǎng)架構(gòu)中感知層設(shè)備的多樣性和復(fù)雜性問題[5]。隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,國內(nèi)外學者對物聯(lián)網(wǎng)中間件已有相關(guān)研究。例如:TinyDB[6]是一種基于TinyOS[7]操作系統(tǒng)的數(shù)據(jù)訪問中間件,雖然其可以通過數(shù)據(jù)融合機制減輕冗余數(shù)據(jù)對帶寬的損耗,但它只支持同構(gòu)的節(jié)點,不能滿足實用性需求。FoK等[8]則提出一種基于移動代理的中間件“Agilla”。通過Agent的移動,能夠有效消減網(wǎng)絡(luò)通信開銷從而加快任務(wù)執(zhí)行,但由于其是基于TinyOS 1.X的操作系統(tǒng),故不太適用于較復(fù)雜的傳感器環(huán)境。王凡[9]通過數(shù)據(jù)過濾的方式將ZigBee[10]和射頻識別網(wǎng)絡(luò)轉(zhuǎn)換為統(tǒng)一的格式以實現(xiàn)物聯(lián)網(wǎng)中間件的設(shè)計。Terzis等[11]提出了一種基于虛擬機的無線傳感網(wǎng)絡(luò)中間件,其良好的柔韌性使得傳感網(wǎng)絡(luò)可以進行快速部署和開發(fā)。
本文提出一種基于虛擬接入的物聯(lián)網(wǎng)中間件(VAM)模型,并基于該模型實現(xiàn)了適用于無線傳感網(wǎng)絡(luò)的中間件系統(tǒng)。本系統(tǒng)通過虛擬接入技術(shù)接入異構(gòu)無線傳感器網(wǎng)絡(luò),統(tǒng)一化底層網(wǎng)絡(luò)并使感知層的網(wǎng)絡(luò)接入透明化。同時,本平臺提供豐富的服務(wù)并保證了中間件服務(wù)的可擴展性,為上層應(yīng)用提供了統(tǒng)一的接口。
基于虛擬接入的物聯(lián)網(wǎng)中間件平臺的基本功能是實現(xiàn)異構(gòu)的底層網(wǎng)絡(luò)的接入并為上層應(yīng)用系統(tǒng)提供服務(wù)和統(tǒng)一的接口。
1.1 VAM中間件平臺的總體架構(gòu)
基于虛擬接入的物聯(lián)網(wǎng)中間件平臺主要由應(yīng)用層、中間件層和感知層組成,其總體架構(gòu)如圖1所示。

圖1 VAM中間件架構(gòu)
VAM中間件平臺的核心職責是提供服務(wù)支撐。服務(wù)支撐主要包括基礎(chǔ)服務(wù)、數(shù)據(jù)交換服務(wù)以及應(yīng)用管理服務(wù)。其中,基礎(chǔ)服務(wù)實現(xiàn)VAM中間件平臺的基本功能,包括數(shù)據(jù)管理、目錄服務(wù)等。數(shù)據(jù)交換服務(wù)用于平臺內(nèi)部的數(shù)據(jù)分發(fā)與訂閱。應(yīng)用管理服務(wù)向應(yīng)用層提供應(yīng)用支撐接口。
虛擬接入層位于中間件層的最底層,目的是屏蔽感知層終端的個性特征,轉(zhuǎn)換為平臺層能夠識別的共性特征,使得各種各樣的底層網(wǎng)絡(luò)能夠統(tǒng)一接入平臺內(nèi)部。
VAM中間件平臺為上層應(yīng)用屏蔽底層因接入不用網(wǎng)絡(luò)而帶來的差異,使得上層應(yīng)用可以集中于服務(wù)層面的開發(fā),與底層硬件實現(xiàn)低藕合。中間件的使用降低了應(yīng)用層的開發(fā)難度,同時使上層應(yīng)用不需要直接面對底層架構(gòu),而通過中間件進行調(diào)用,增強了應(yīng)用服務(wù)的可復(fù)用性。
1.2 VAM通信協(xié)議的設(shè)計
協(xié)議是為網(wǎng)絡(luò)中進行數(shù)據(jù)交換而建立的規(guī)則、標準或約定的集合。協(xié)議也是一個通信程序的精華所在。VAM中間件平臺不僅需要保證平臺內(nèi)部虛擬接入模塊與服務(wù)支撐模塊的數(shù)據(jù)傳輸,而且還需要與異構(gòu)的底層網(wǎng)絡(luò)進行數(shù)據(jù)通信。所以,本文設(shè)計了兩種通信協(xié)議即:與底層網(wǎng)絡(luò)的通信協(xié)議和與平臺內(nèi)部通信的協(xié)議。
由于底層網(wǎng)絡(luò)的異構(gòu)性,虛擬接入層與底層網(wǎng)絡(luò)的通信無法采用通用的通信協(xié)議。所以,VAM中間件平臺向用戶提供協(xié)議注冊服務(wù),用戶可以根據(jù)不同的底層網(wǎng)絡(luò)注冊不同的協(xié)議。VAM會將注冊的協(xié)議寫入XML文件中。虛擬接入層與底層網(wǎng)絡(luò)通信時,首先讀取XML文件,解析出對應(yīng)的網(wǎng)絡(luò)及通信協(xié)議以實現(xiàn)與異構(gòu)的底層網(wǎng)絡(luò)通信。
虛擬接入層與平臺之間進行數(shù)據(jù)交互所需的協(xié)議是平臺內(nèi)部協(xié)議。當虛擬接入層完成底層網(wǎng)絡(luò)數(shù)據(jù)的解析后,需要將數(shù)據(jù)通過TCP/IP通信方式發(fā)送到平臺內(nèi)部。平臺內(nèi)部根據(jù)數(shù)據(jù)的封裝的格式再將數(shù)據(jù)進行還原,最后將這些數(shù)據(jù)存入數(shù)據(jù)庫并分發(fā)給服務(wù)訂閱者。此過程的數(shù)據(jù)封裝和數(shù)據(jù)的還原需要設(shè)計一個標準的通用的通信協(xié)議格式,以便虛擬接入層與平臺內(nèi)部有效的通信。
為了有效地實現(xiàn)數(shù)據(jù)協(xié)議格式的通用性,底層網(wǎng)絡(luò)的數(shù)據(jù)包由4部分組成:必備數(shù)據(jù)、感知數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)、其他數(shù)據(jù)。必備數(shù)據(jù)表示每一種協(xié)議必不可少的數(shù)據(jù),主要有消息類型、節(jié)點ID、消息長度等。感知數(shù)據(jù)表示應(yīng)用相關(guān)數(shù)據(jù),例如節(jié)點的電壓值等。網(wǎng)絡(luò)數(shù)據(jù)表示網(wǎng)絡(luò)狀態(tài)相關(guān)數(shù)據(jù),包括路由信息、鄰居信息等。其他數(shù)據(jù)表示程序無關(guān)數(shù)據(jù),以便日后擴展使用。平臺內(nèi)部通用通信格式如圖2所示。

圖2 平臺內(nèi)部通信協(xié)議
1.3 虛擬接入模塊的設(shè)計
虛擬接入層的主要職責是屏蔽底層網(wǎng)絡(luò)的差異性,為底層網(wǎng)絡(luò)提供一套相應(yīng)的結(jié)構(gòu)和協(xié)議來完成不同傳感網(wǎng)上傳的感知數(shù)據(jù)的解析。這就要求虛擬接入層能夠完成底層網(wǎng)絡(luò)數(shù)據(jù)包格式到平臺內(nèi)部數(shù)據(jù)包格式之間的轉(zhuǎn)換,虛擬接入層體系結(jié)構(gòu)如圖3所示。

圖3 虛擬接入層結(jié)構(gòu)圖
虛擬接入層可與底層網(wǎng)絡(luò)Sink網(wǎng)關(guān)節(jié)點進行收發(fā)數(shù)據(jù)。當收到不同底層網(wǎng)絡(luò)的異構(gòu)數(shù)據(jù)時,虛擬接入層對數(shù)據(jù)進行解析,并將相關(guān)數(shù)據(jù)流持久化寫入數(shù)據(jù)庫。
虛擬接入層在解析Sink網(wǎng)關(guān)節(jié)點數(shù)據(jù)時,根據(jù)XML文件中所注冊的協(xié)議來解析消息包中的數(shù)據(jù)區(qū),最終得到底層網(wǎng)絡(luò)的感知數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)。通過解包過程得到有效消息后,根據(jù)預(yù)先設(shè)計好的平臺內(nèi)部的消息格式對有效消息進行封裝,然后通過TCP/IP協(xié)議發(fā)送給上層應(yīng)用進程進行處理。
本文以水質(zhì)監(jiān)測應(yīng)用為背景,通過對VAM中間件平臺的部署與實際應(yīng)用來驗證其可行性和有效性。
2.1 總體設(shè)計
水質(zhì)監(jiān)測系統(tǒng)主要由VAM中間件平臺、應(yīng)用客戶端和底層感知網(wǎng)絡(luò)三部分組成。底層感知網(wǎng)絡(luò)負責水質(zhì)信息的監(jiān)測與采集;VAM中間件平臺實現(xiàn)異構(gòu)無線傳感網(wǎng)絡(luò)的接入與應(yīng)用服務(wù)的支撐;應(yīng)用客戶端為用戶提供網(wǎng)絡(luò)管理平臺。水質(zhì)監(jiān)測系統(tǒng)拓撲結(jié)構(gòu)如圖4所示。

圖4 水質(zhì)監(jiān)測系統(tǒng)拓撲結(jié)構(gòu)
2.2 VAM通信協(xié)議實現(xiàn)
可擴展標記語言(XML)[12]用于標記電子文件使其具有結(jié)構(gòu)性的標記語言,可以用來標記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標記語言進行定義的源語言。在本文中,XML主要用于存儲平臺內(nèi)部的協(xié)議格式及用戶注冊的協(xié)議格式。XML的讀寫是通過基于C++語言的TinyXML模塊實現(xiàn)的。
平臺內(nèi)部協(xié)議格式中,協(xié)議里的每一個字段對應(yīng)XML協(xié)議的每一個item,而每一個item中又包含了id、type、length、等基本屬性。其中,id表示協(xié)議編號;divide表示當前item下是否存在子item;length表示這個字段的長度;type表示這個字段對應(yīng)的數(shù)據(jù)是何種數(shù)據(jù)類型(0表示感知數(shù)據(jù),1表示網(wǎng)絡(luò)數(shù)據(jù),2表示必備數(shù)據(jù),3表示無關(guān)數(shù)據(jù))。以下片段展示了平臺內(nèi)部協(xié)議配置的XML文件:
…
…
2.3 VAM通信流程
VAM通信主要通過SinkSocket類來完成,它是TCP/IP的多線程Socket通信類[13]。虛擬接入層初始化工作完成后,此時SinkSocket服務(wù)已經(jīng)啟動。首先SinkSocket服務(wù)會啟動一個守護線程,該線程除非是關(guān)閉SinkSocket,否則是不會掛起或銷毀,守護線程的主要目的是監(jiān)聽Socket的連接請求。當有一個新的連接到來時,守護線程即為該連接創(chuàng)建一個新的線程,該線程專門負責監(jiān)聽此連接Socket的數(shù)據(jù)收發(fā)。
SinkSocket數(shù)據(jù)包接收過程如下:首先SinkSocket從Sink網(wǎng)關(guān)節(jié)點接收數(shù)據(jù),然后對數(shù)據(jù)進行CRC校驗[14],如果接收成功則將該組數(shù)據(jù)發(fā)往上一層進行二次解包。在上一層中,根據(jù)所注冊的協(xié)議來解析數(shù)據(jù)包。當把感知數(shù)據(jù)消息包頭和包尾信息(節(jié)點ID、節(jié)點數(shù)量、路由跳數(shù)等基本信息)去掉后,余下部分攜帶節(jié)點上行消息的主要內(nèi)容。根據(jù)節(jié)點類型不同,數(shù)據(jù)段的數(shù)據(jù)結(jié)構(gòu)也不同,因此使用XML文件中自定義的數(shù)據(jù)段描述進行解包。解包完成后,根據(jù)包頭的消息類型將數(shù)據(jù)包分發(fā)給各個函數(shù)進行處理。VAM與底層通信活動圖如圖5所示。

圖5 與底層網(wǎng)絡(luò)通信工作活動圖
2.4 水質(zhì)監(jiān)測系統(tǒng)的部署與實現(xiàn)
本文通過在南昌航空大學前胡校區(qū)的湖泊內(nèi)部署基于VAM中間件平臺的水質(zhì)監(jiān)測系統(tǒng)以驗證VAM中間件平臺的有效性。其中,VAM中間件平臺由C++語言開發(fā),采用了Socket通信編程、共享內(nèi)存、并發(fā)編程等技術(shù)。應(yīng)用客戶端是由Java語言開發(fā)的Web端程序,采用JNI[15]、DWR[16]等技術(shù)實現(xiàn)與VAM中間件平臺的數(shù)據(jù)交互間。感知層由TinyOS網(wǎng)絡(luò)與Zigbee網(wǎng)絡(luò)兩種異構(gòu)的傳感網(wǎng)絡(luò)構(gòu)成。其應(yīng)用層軟件、中間件平臺層和感知層系統(tǒng)部署圖如圖6-圖8所示。

圖6 水質(zhì)監(jiān)測系統(tǒng)應(yīng)用層軟件

圖7 水質(zhì)監(jiān)測系統(tǒng)中間件平臺

圖8 水質(zhì)監(jiān)測系統(tǒng)感知層部署
本文提出了一種基于虛擬接入的物聯(lián)網(wǎng)中間件平臺。首先,本文介紹了VAM中間件平臺的基礎(chǔ)架構(gòu)。接著詳細介紹了虛擬接入模塊和平臺通信協(xié)議的設(shè)計。隨后,詳細描述了VAM中間件平臺的通信協(xié)議和通信流程。最后,通過水質(zhì)監(jiān)測系統(tǒng)的應(yīng)用,驗證了VAM中間件平臺的可行性。
[1] Li S,Xu L D,Zhao S.The internet of things:a survey[J].Information Systems Frontiers,2015,17(2):243-259.
[2] Yick J,Mukherjee B,Ghosal D.Wireless sensor network survey[J].Computer Networks the International Journal of Computer & Telecommunications Networking,2008,52(12):2292-2330.
[3] Wu D L,Ng W W Y,Yeung D S,et al.A brief survey on current RFID applications[C]//International Conference on Machine Learning and Cybernetics,2009:2330-2335.
[4] 葉高揚,畢冉.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)設(shè)計與實現(xiàn)[J].計算機應(yīng)用,2014(S1):318-319.
[5] 陳琦,韓冰,秦偉俊,等.基于Zigbee/GPRS物聯(lián)網(wǎng)網(wǎng)關(guān)系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機研究與發(fā)展,2011,48(S2):367-372.
[6] Madden S R,Franklin M J,Hellerstein J M,et al.TinyDB:an acquisitional query processing system for sensor networks[J].Acm Transactions on Database Systems,2005,30(1):122-173.
[7] Levis P,Madden S,Polastre J,et al.TinyOS:An Operating System for Sensor Networks[J].Ambient Intelligence,2005:383-396.
[8] Fok C L,Roman G C,Lu C.Agilla:A mobile agent middleware for self-adaptive wireless sensor networks[J].Acm Transactions on Autonomous & Adaptive Systems,2009,4(3):1223-1227.
[9] 王凡.基于ZIGBEE和RFID的物聯(lián)網(wǎng)中間件的設(shè)計與實現(xiàn)[D].北京郵電大學,2011.
[10] Kalaivani T,Allirani A,Priya P.A survey on Zigbee based wireless sensor networks in agriculture[C]//International Conference on Trendz in Information Sciences and Computing,2011:85-89.
[11] Terzis S,Nixon P,Narasimhan N,et al.Middleware for pervasive and ad hoc computing[J].Personal & Ubiquitous Computing,2006,10(1):4-6.
[12] Bray T,Paoli J,Sperberg-Mcqueen C M.Extensible Markup Language (XML) 1.0[M].Springer London,2011:115-146.
[13] 王堃,于悅,張玉華,等.面向物聯(lián)網(wǎng)應(yīng)用平臺的Socket設(shè)計與優(yōu)化[J].吉林大學學報(工學版),2012(S1):290-294.
[14] 李冬霞,葉倩文.循環(huán)冗余碼仿真實驗系統(tǒng)設(shè)計[J].武漢大學學報(理學版),2012(S2):228-232.
[15] Liang S.Java(tm) Native Interface:Programmer’s Guide and Specification[M].Addison Wesley Pub Co Inc,2016.
[16] Li Y,Xiao Y,Liu T.Extended enterprise connector framework using direct web remoting (DWR):US,US 20100031233 A1[P].2014.
DESIGN AND APPLICATION OF MIDDLEWARE PLATFORM FOR INTERNET OF THINGS BASED ON VIRTUAL ACCESS
Chen Qifan1,2Shu Jian1,2Meng Lingchong1,3Liu Linlan1,3
1(InternetofThingsTechnologyInstitute,NanchangHangkongUniversity,Nanchang330063,Jiangxi,China)2(SchoolofSoftware,NanchangHangkongUniversity,Nanchang330063,Jiangxi,China)3(SchoolofInformationEngineering,NanchangHangkongUniversity,Nanchang330063,Jiangxi,China)
We propose a middleware platform for Internet of Things based on virtual access. By introducing a virtual access layer, the heterogeneous sensor network protocol is transformed into an internal protocol of the middleware platform, which shields the heterogeneity of sensor network and provides a unified access platform for the application layer to access heterogeneous wireless sensor networks. This paper in detail introduce the design of virtual access module and communication protocol, and the feasibility of VAM middleware is verified by the application in water quality monitoring system, which reduces the complexity of application software development.
Middleware Internet of Things Virtual access Wireless sensor network
2016-08-14。江西省高等學校科技落地計劃項目(KJLD14054)。陳琦帆,碩士生,主研領(lǐng)域:無線傳感網(wǎng)絡(luò),物聯(lián)網(wǎng)技術(shù)。舒堅,教授。孟令沖,碩士生。劉琳嵐,教授。
TP311
A
10.3969/j.issn.1000-386x.2017.07.009