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