文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.009
中文引用格式: 于洪波,,劉鴻飛,方麗英,,等. 基于Web服務(wù)的物聯(lián)接入系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,,2015,41(7):33-36,,43.
英文引用格式: Yu Hongbo,,Liu Hongfei,F(xiàn)ang Liying,,et al. Design of Internet of Things access system based on Web services[J].Application of Electronic Technique,,2015,41(7):33-36,,43.
0 引言
多元感知設(shè)備隨傳感器技術(shù)的發(fā)展逐漸推動物聯(lián)網(wǎng)(Internet of Things,,IoT)產(chǎn)業(yè)的發(fā)展,,并已正式被列為國家五大新興戰(zhàn)略產(chǎn)業(yè)之一。物聯(lián)網(wǎng)是嵌入式系統(tǒng),、網(wǎng)絡(luò)和控制系統(tǒng)的集成,由計算系統(tǒng)和執(zhí)行器的嵌入式系統(tǒng)等異構(gòu)系統(tǒng)組成,。隨著非標(biāo)準(zhǔn)化感知設(shè)備在物聯(lián)網(wǎng)應(yīng)用中的大規(guī)模接入,,多元通信協(xié)議、異構(gòu)設(shè)備信息,、復(fù)雜節(jié)點管理等異構(gòu)問題成為物聯(lián)網(wǎng)應(yīng)用中的挑戰(zhàn),,應(yīng)用開發(fā)者不僅需要關(guān)注用戶的需求業(yè)務(wù),也需要以模型化方式處理底層的基礎(chǔ)化數(shù)據(jù)[1-2],。國內(nèi)外對這種碎片化異構(gòu)接入問題的研究主要側(cè)重于針對具體的物聯(lián)網(wǎng)相關(guān)技術(shù)來進行底層數(shù)據(jù)采集與融合,,如采用中間件技術(shù)利用融合器消除針對ZigBee和RFID的異構(gòu)接入問題[3]。但是目前針對平臺化業(yè)務(wù)擴展以及融合互聯(lián)網(wǎng)業(yè)務(wù)的物聯(lián)接入系統(tǒng)的相關(guān)研究較少,,也沒有統(tǒng)一的碎片化異構(gòu)處理模型,。本文提出一種基于Web服務(wù)的物聯(lián)接入系統(tǒng)的設(shè)計模式,該系統(tǒng)在物聯(lián)網(wǎng)技術(shù)的客戶端服務(wù)器(Client/Server,,C/S)架構(gòu)的基礎(chǔ)上,,將單一化基礎(chǔ)操作業(yè)務(wù)進行面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)建模,,再利用Web技術(shù)進行模型化服務(wù)的實現(xiàn),。整個系統(tǒng)封裝整套感知設(shè)備物聯(lián)接入流程與基礎(chǔ)數(shù)據(jù)處理,實現(xiàn)應(yīng)用業(yè)務(wù)與感知設(shè)備之間的無縫交互,。
1 物聯(lián)接入系統(tǒng)模型
物聯(lián)網(wǎng)系統(tǒng)為三層架構(gòu),,包括感知層、網(wǎng)絡(luò)層和應(yīng)用層[4],,本文基于Intel ATOM處理器和Fedora操作系統(tǒng),,以SOA模式,將程序運行流程建模為若干接入服務(wù)模型,。物聯(lián)接入系統(tǒng)將上下位機封裝在同一系統(tǒng)內(nèi)部,,將三層架構(gòu)業(yè)務(wù)貫通,通過USB、RS485等硬件接口及其協(xié)議直接獲取感知層的物理實體數(shù)據(jù),,通過核心處理模塊完成碎片化異構(gòu)數(shù)據(jù)的解析,,通過Web應(yīng)用接口聯(lián)通具體信息化業(yè)務(wù)。
1.1 面向服務(wù)模型
傳統(tǒng)物聯(lián)網(wǎng)的接入系統(tǒng)針對單一業(yè)務(wù)的一種或一類設(shè)備進行針對性較強的閉環(huán)控制,,底層控制業(yè)務(wù)細節(jié)描述較多,,耦合度較高,不利于擴展應(yīng)用,。SOA架構(gòu)的引入可以將程序流程抽象為服務(wù)模型,,并實現(xiàn)物聯(lián)網(wǎng)業(yè)務(wù)松耦合,將具體的閉環(huán)控制流程轉(zhuǎn)換為粗粒度服務(wù)邏輯,,便于服務(wù)模型以組件形式進行代碼實現(xiàn)與部署[5],。引入SOA的物聯(lián)接入系統(tǒng)模型如圖1所示,模型擴寬單一業(yè)務(wù)的閉環(huán)控制系統(tǒng)為一種直接基于Web端服務(wù)配置的接入設(shè)備管控平臺,,在實際物聯(lián)接入系統(tǒng)中將通過HTTP協(xié)議請求的人機交互界面稱為上位機,,并作為服務(wù)提供者;將通過操控線程實際管理接入設(shè)備的接入控制器稱為下位機,,并作為服務(wù)消費者,。二者之間的交互業(yè)務(wù)為封裝在消息管道中的一系列服務(wù),該服務(wù)通過服務(wù)代理進行規(guī)約,,來面向不同的基礎(chǔ)操作,。服務(wù)代理以文本和數(shù)據(jù)表的形式存儲在數(shù)據(jù)庫服務(wù)器中,通過此種文件類協(xié)議對服務(wù)進行分發(fā)和約束,。在服務(wù)提供者,、服務(wù)消費者和服務(wù)代理之間的SOA模型構(gòu)建完成后,上位機可直接通過訂閱發(fā)布模式,,統(tǒng)一下發(fā)需求指令,,消息管道中的各類服務(wù)在協(xié)同完成操控接入設(shè)備任務(wù)后,將所需返回的統(tǒng)一化數(shù)據(jù)進行反饋,,完成這個接入基礎(chǔ)化操作流程,。接入設(shè)備的碎片化異構(gòu)問題通過各類服務(wù)按照代理規(guī)約的處理協(xié)議進行消除。
1.2 硬件結(jié)構(gòu)模型
物聯(lián)接入系統(tǒng)核心處理模塊采用Intel公司ATOM芯片作為核心處理器(CPU),,1 GB同步隨機存儲器(DDR SDRAM),,8 GB固態(tài)硬盤(SSD);外圍設(shè)備提供串行數(shù)據(jù)收發(fā)的USB接口,,支持界面開發(fā)調(diào)試的VGA接口,;網(wǎng)絡(luò)設(shè)備內(nèi)置網(wǎng)卡,并提供WLAN模塊和Ethernet以太網(wǎng)口,。CPU采用雙發(fā)射復(fù)雜指令集(CISC),,可處理規(guī)模較為龐大的工程,。系統(tǒng)移植Fedora Linux操作系統(tǒng),該操作系統(tǒng)安全性能高,,目錄結(jié)構(gòu)精簡,,并且適合多平臺開發(fā)操作。系統(tǒng)硬件結(jié)構(gòu)模型如圖2所示,??刂婆_、中央處理單元以及RS485總線接口和USB接口均集成在以ATOM中央處理單元為核心的植入Fedora操作系統(tǒng)的嵌入式控制設(shè)備上,??刂婆_與中央處理單元雖然在同一硬件系統(tǒng)之中,但是中央處理單元偏重于描述嵌入式系統(tǒng)對基礎(chǔ)信號與數(shù)據(jù)的基于CISC的運算處理,,而控制臺側(cè)重于描述在可視化界面下通過瀏覽器的人機交互接口以及SOA模型關(guān)于服務(wù)在消息管道中的交互流程,。由于Web服務(wù)可擴展性良好,因此可以通過HTTP協(xié)議從遠程PC端或其他嵌入式終端對本系統(tǒng)進行訪問,。對于底層感知設(shè)備,,支持RS485的總線型感知設(shè)備直接與RS485總線接口相連接,根據(jù)RS485通信幀格式進行交互,;支持ZigBee協(xié)議的感知設(shè)備可與ZigBee終端進行綁定,若干ZigBee終端借由通過協(xié)議棧構(gòu)建的自組網(wǎng)絡(luò)將無線感知設(shè)備的數(shù)據(jù)統(tǒng)一匯總到ZigBee協(xié)調(diào)器,,并通過協(xié)調(diào)器的USB接口傳輸?shù)奖鞠到y(tǒng),。
2 物聯(lián)接入系統(tǒng)設(shè)計
根據(jù)Web服務(wù)的物聯(lián)接入系統(tǒng)模型,分別設(shè)計SOA模型與系統(tǒng)上位機,、下位機及其交互過程的結(jié)構(gòu)流程,。設(shè)計基于RS485和ZigBee協(xié)議的接入流程,完成整體系統(tǒng)的軟硬件對接工作,。
2.1 SOA模型的組件設(shè)計
如圖3所示,,Web服務(wù)根據(jù)具體應(yīng)用需求抽象為消息形式,通過統(tǒng)一化發(fā)布模式在SOA模型組件中下發(fā),,持久化在數(shù)據(jù)庫內(nèi)的配置數(shù)據(jù)以交互協(xié)議的身份對下發(fā)的消息進行規(guī)約,,規(guī)約過程通過修改原始信息幀格式以及添加狀態(tài)碼等方式,將統(tǒng)一的消息分割為相互獨立的服務(wù),,實現(xiàn)業(yè)務(wù)解耦過程,。獨立服務(wù)中嵌入執(zhí)行器描述性指令,在下發(fā)指令時向線程池申請線程,,并通過多線程并發(fā)方式將指令信息以各種執(zhí)行器的執(zhí)行模式下發(fā)到控制器,。控制器直接與感知層物聯(lián)接口相連,,可將各執(zhí)行過程中的數(shù)據(jù)以串行輸出的形式寫入到實際設(shè)備中,,完成對應(yīng)用的實際設(shè)備的管理。設(shè)備的接入與數(shù)據(jù)回饋過程與之流程相反,因而通過SOA模型組件可以實現(xiàn)具體應(yīng)用于實際設(shè)備接入管理過程中的數(shù)據(jù)透傳,。
2.2 系統(tǒng)軟件設(shè)計
根據(jù)物聯(lián)接入系統(tǒng)模型的劃分,,按照上位機、下位機和消息管道分別進行軟件設(shè)計,。
2.2.1 上位機軟件設(shè)計
上位機采用Java語言進行設(shè)計,,結(jié)合J2EE框架實現(xiàn)Web服務(wù)管理前后臺,通過Tomcat輕量級服務(wù)器發(fā)布,,可通過瀏覽器直接訪問,。上位機軟件流程如圖4所示,主要實現(xiàn)Web服務(wù)的動態(tài)配置以及接入管理數(shù)據(jù)的消息流形式下發(fā),,其間不僅要監(jiān)聽本地的配置響應(yīng),,還偵聽遠程訪問中的基于HTTP協(xié)議的請求數(shù)據(jù)流。此外,,上位機也實時接收下位機上傳的物聯(lián)接入數(shù)據(jù),,實現(xiàn)更上層的具體應(yīng)用的業(yè)務(wù)邏輯支持及可視化數(shù)據(jù)展示等功能。
2.2.2 下位機軟件設(shè)計
下位機采用C++語言進行設(shè)計,,通過Linux操作系統(tǒng)下的多線程庫pthread進行類庫支持,,通過GCC標(biāo)準(zhǔn)編譯器進行源碼編譯,最后通過與附加文件的連接,,直接在嵌入式系統(tǒng)中生成可執(zhí)行文件,。下位機軟件流程如圖5所示,主要通過偵聽消息通道獲取上位機下發(fā)的操作流消息,。如表1所示,,根據(jù)配置數(shù)據(jù)庫約定的協(xié)議規(guī)則解析拆分消息為控制字數(shù)據(jù),標(biāo)定服務(wù)類型的數(shù)據(jù)直接持久化在ROM中,,并掃描存儲注冊設(shè)備的文件信息,,如存在合法接入的設(shè)備,則將控制字中實際用于操作設(shè)備的字節(jié)進行分發(fā),。
2.2.3 消息管道軟件設(shè)計
消息管道遵循管道過濾器設(shè)計模式[6],,以松耦合框架技術(shù),融合消息過濾機制實現(xiàn),。消息管道將數(shù)據(jù)以過濾器鏈形式上傳下發(fā),。消息管道如圖6所示,將程序初始化完畢即與上位機對接并輪詢掃描配置文件中的系統(tǒng)內(nèi)通信協(xié)議,,并據(jù)此以規(guī)則分配服務(wù),,該分配過程通過框架維護的獨立代碼類實現(xiàn)。服務(wù)過濾器以組件形式集成于框架之中,,并與相關(guān)代碼類動態(tài)組合,,按不同服務(wù)封裝為不同執(zhí)行的描述信息,。過濾器采用多層結(jié)構(gòu),分別負責(zé)數(shù)據(jù)編解碼,、數(shù)據(jù)讀寫,、數(shù)據(jù)安全認證、數(shù)據(jù)套接字傳輸,。通過過濾器鏈的服務(wù)各自排隊申請線程池中的資源,,得到資源的服務(wù)即刻向下觸發(fā)服務(wù),該過程通過多線程調(diào)度,,可并發(fā)執(zhí)行,。
2.3 系統(tǒng)實現(xiàn)
根據(jù)基于Web服務(wù)的SOA模型以及物聯(lián)接入系統(tǒng)的設(shè)計流程,在嵌入式環(huán)境下的操作系統(tǒng)中,,利用Java Web技術(shù)實現(xiàn)上位機與消息管道功能,,利用C++與多線程技術(shù)實現(xiàn)下位機功能。系統(tǒng)對接完畢后,,感知層實際設(shè)備接入部分,,分別利用Z-Stack協(xié)議棧實現(xiàn)ZigBee星型自組網(wǎng),利用ModBus協(xié)議下的差分信號開關(guān)端子實現(xiàn)RS485接口,。通過硬件接口利用無線和有線方式收集各類感知設(shè)備的接入信息,。實測表明,本系統(tǒng)可正確實現(xiàn)從Web界面到感知設(shè)備之間所有管控操作流程,,將感知層,、網(wǎng)絡(luò)層、應(yīng)用層之間的基礎(chǔ)性操作以服務(wù)方式有效封裝,。
3 結(jié)論
本文提出了一種基于Web服務(wù)的SOA模型,并將該模型的建模思想利用嵌入式編程和Web編程技術(shù)通過松耦合類模式實現(xiàn),,各服務(wù)間通過軟件接口進行動態(tài)對接,。用戶可根據(jù)具體應(yīng)用需求在Web端進行服務(wù)流程以及系統(tǒng)內(nèi)通信協(xié)議的配置,之后利用系統(tǒng)的處理流程直接按需操控感知層的接入設(shè)備并觸發(fā)具體的需求,,對基礎(chǔ)接入流程中的各類碎片化信息異構(gòu)進行了有效消除,。本系統(tǒng)實現(xiàn)用戶-業(yè)務(wù)-實體之間的三元域交互,在物聯(lián)網(wǎng)應(yīng)用場景下有一定的通用性和擴展性,。
參考文獻
[1] Wen Yingyou,,Li Zhi.A service-integrated sensor network middleware applied to industrial solutions of IoT related[J].Telecommunication Systems,2013,,53(1):61-68.
[2] 沈蘇彬,,范曲立,宗平,,等.物聯(lián)網(wǎng)的體系結(jié)構(gòu)與相關(guān)技術(shù)研究[J].南京郵電大學(xué)學(xué)報(自然科學(xué)版),,2009,,29(6):1-11.
[3] 李杰.物聯(lián)網(wǎng)中無線傳感器節(jié)點和RFID數(shù)據(jù)融合的方法[J].電子設(shè)計工程,2011,19(7):103-106.
[4] Fan Chunxiao,,Wen Zhigang,,Wang Fan,et al.A middleware of Internet of Things(IoT) based on ZigBee and RFID[C].IET International Conference on Communication Technology and Application,,ICCTA,,2011:605-609.
[5] Li Peng,Dong Junping,,Wen Junhao,,et al.A SOA-based servcie discovery framework in Internet of Things[J].Journal of Convergence Information Technology,2011,,6(9):310-315.
[6] 邵華鋼,,程勁,王輝,,等.面向物聯(lián)網(wǎng)的系統(tǒng)及其中間件設(shè)計[J].計算機工程,,2010,36(17):84-86.