欧美在线专区-欧美在线伊人-欧美在线一区二区三区欧美-欧美在线一区二区三区-pornodoxxx中国妞-pornodoldoo欧美另类

position>home>Archive

消息中間件在物聯網網關中的應用

[導讀]摘 要:消息中間件是消息一種被廣泛采用的企業級異構系統集成方式,在物聯網應用中同樣面臨著異構系統的中間中集成問題。為解決物聯網系統中異構節點之間的聯網數據通信問題,提出了一種基于消息中間件的網關集成方案,并基于該方案設計實現了環境監控系統。應用系統使用OSGi插件技術對物聯網網關功能進行擴展,消息使其支持JMS消息通信。中間中系統測試表明,聯網節點通過消息機制實現了異構系統集成。網關

0 引 言

物聯網應用系統是應用一個復雜的分布式系統,系統通常由數管理界面以及支持Amazon AWS IoT,消息Microsoft Azure IoT 和IBM IoT 云服務的中間中接口 [4]。Kura 運行在 Java 虛擬機(JVM)上,聯網據采集節點、網關執行器節點和網關組成,應用不同功能節點之間可以使用模塊化 OSG(iOpen Service Gateway Initiative,OSGi)技

使用 ZigBee,BLE 等通信協議實現數據通信。通常情況下,這些協議的實現要求所有節點使用同一種開發環境,部署在同一款軟件框架上,在實際應用中,更多的是對原有系統的擴展或者是在原有系統之上再疊加一層新系統。用戶更關注如何復用已有的軟硬件資源,以減少開發周期并降低成本。原有節點可能由不同的開發語言實現,運行在不同的框架和平臺之上。如何在不同的模塊、平臺和應用之間進行數據通信是實際應用過程中亟待解決的問題。消息中間件是解決企業應用系統異構集成的一種有效方法 [1-2],這種方法也同樣適用于物聯網 [3]。物聯網中的分布式節點本身就是一個小型的嵌入式系統,其硬件配置足以支持其上運行嵌入式操作系統和服務管理軟件,從而為基于消息的異構系統集成在物聯網節點上的實現提供了可能。

本文對基于消息中間件的物聯網應用異構系統集成進行了探索,并在環境監控系統中對設計方案進行了驗證。傳感器節點和網關分別使用不同的開發語言和客戶端軟件,傳感器節點采用Python 開發,網關使用基于 OSGi 框架的插件技術,對網關管理軟件 Kura 的服務進行擴展,使其支持 JMS(Java Message Service,JMS)。借助部署在網關的 ActiveMQ 消息中間件,實現了在不同節點之間通過消息機制進行數據通信的目的。

1 相關技術介紹

消息中間件在物聯網網關中的應用

1.1 Kura 開源網關框架

Kura 是 Eclipse 基金會發布的物聯網項目,用于構建 IoT網關框架,它提供了一種使用開源硬件作為網關的方式。Kura內部嵌入了多種對網關容器進行管理的服務,包括 UI Web管理界面以及支持 Amazon AWS IoT,Microsoft Azure IoT 和IBM IoT 云服務的接口[4]。Kura 運行在 Java 虛擬機(JVM)上,使用模塊化 OSGi(Open Service Gateway Initiative,OSGi)技術實現。由于網關基于動態可插拔的模塊化技術實現,因此用戶可以很方便地創建自己的功能插件,并集成到系統中實現網關功能的擴展 [5-6]。Kura 遵循 OSGi R4 規范,其核心設計思想是面向服務的組件模型。在 OSGi 中,組件或模塊稱為 bundle,OSGi 支持軟件熱插拔、多版本并存,具有動態模塊化、面向服務架構和模塊擴展等功能,OSGi 的模塊擴展功能可以在不改變原有模塊代碼的情況下注入新的功能或更新原有功能 [7]。

1.2 ActiveMQ 消息服務

消息中間件基于消息驅動方式,為異構系統和平臺提供了一種高效、可靠的數據通信服務 [8]。ActiveMQ 是被廣泛使用的基于 JMS 規范的開源消息中間件,它屏蔽了底層軟件框架和硬件的差異,具有部署簡單、占用資源少、運行可靠等特點。消息中間件不僅簡化了在物聯網環境下異構應用的集成,也提供了一種構建松耦合系統的方式。

2 系統框架設計

系統由傳感器節點和網關構成,在局域網內采用分布式部署,節點之間通過消息進行數據通信,系統架構如圖 1 所示。

消息中間件在物聯網網關中的應用

傳感器節點采集現場數據后,將傳感器數據封裝到消息負載中,并通過設計開發的 ActiveMQ 客戶端軟件將消息發送到網關。網關采用 Kura 框架對軟硬件資源進行管理,與傳感器節點的硬件運行平臺相同,它們運行在開源硬件樹莓派(Raspberry Pi)之上。網關不具有數據采集功能, 但具有更多的數據處理和網絡管理功能。系統需要在網關中部署ActiveMQ 消息中間件,用于 JMS 消息管理。由于 Kura 框架本身不支持 JMS 服務,無法實現與消息中間件的消息通信, 因此,需要設計新的 bundle 對 Kura 網關框架進行 JMS 消息功能擴展,使其支持對JMS 消息的訂閱 / 發布服務。網關既可以利用消息機制接收來自傳感器節點的數據,也可對數據進行格式轉換、分析,并通過 MQTT 協議與云端相連。

基于 JMS 消息的通信機制可以屏蔽通信雙方的具體技術實現細節,以統一的消息協議通過第三方消息中間件實現通信, 并可以實現一對一、一對多等不同形式的消息通信模式。傳感器節點可以在不同的主題上發布消息,也可以多個節點在同一主題上發布,滿足了系統集成的松耦合和靈活性要求。

3 主要功能的設計與實現

3.1 傳感器節點

系統中節點硬件平臺均選用開源硬件樹莓派開發板,其上可運行 Linux 或Win10 操作系統,開發板搭載 1.2 GHz 的64 位 ARM 處理器,板上集成 802.11 b/g/n 無線網卡和低功耗藍牙 4.1 適配器。為連接外部設備,樹莓派上配置有 40 個GPIO 引腳,支持 SPI,I2C 以及Serial 等接口和總線標準,豐富的軟硬件資源可保證其不僅可作為數據采集終端,也可作為物聯網系統的小型網關。

傳感器節點通過 GPIO 接口連接溫濕度傳感器 DHT11。數據采集程序使用 Python 開發,獲取數字量的環境溫、濕度數據,然后調用 STOMP(Streaming Text Orientated Message Protocol,STOMP)庫函數將數據封裝為 JMS 消息發送到網關。 STOMP 即流文本定向消息協議,是一種面向消息中間件設計的簡單文本協議。傳感器節點程序流程如圖 2 所示。

                                                                                                                                            圖 2 傳感器節點程序流程圖

3.2 網關 JMS插件實現

Kura 雖然內置了大量支持物聯網功能的服務,但并未直接提供對JMS 的支持。Kura 基于 OSGi 技術實現,用戶可以基于 OSGi 的動態化插件技術構建自己的功能插件。為了在網關實現 JMS 客戶端功能,需要做如下兩方面工作 :

(1) 安裝配置 JMS支持插件,OSGi 框架只能運行符合bundle規范的 Jar庫文件,JMS支持庫文件,以普通 Jar庫文件的形式提供,因此需要將 Jar文件轉變成 bundle插件。

(2) 設計可提供 JMS服務的 bundle,其實質是封裝 JMS客戶端的具體實現,以服務的形式發布接口,供其他 bundle調用,這部分是系統設計的核心內容。

bundle 之間通過服務的方式關聯,可以降低 bundle 之間的耦合,有利于軟件重用,并提高其靈活性。在發布或使用bundle 前,首先需要注冊和獲取 bundle 所提供的服務。服務的注冊和獲取主要包括如下兩種方式 :

(1) 通過編碼的方式在 bundle激活器中完成 ;

(2) 使用聲明式服務的方式管理 bundle,由組件配置文件定義 bundle的服務接口以及插件倚賴。

相對于第一種方式,第二種方式具有更大的靈活性。本系統對插件的管理使用第二種方式,聲明式服務可以保證在服務接口不變的情況下,根據需要動態配置、升級、替換bundle,并在服務切換過程中無需重啟系統,實現“熱插拔”。

在系統設計過程中,基于 Kura 框架設計實現了多個bundle 對原有服務進行擴展,包括 JMS 服務 bundle(JMS Service)、服務實現 bundle(JMS Service Implement)和 JMS服務支持 bundle(JMS bundle)。JMS Service 提供框架級別的服務,該服務注冊后可被其他 bundle 使用。JMS Service Implement 提供具體的服務實現,將接口與實現分離,對其他插件隱藏了服務實現的細節,符合 OSGi 對模塊動態性和松耦合的要求。網關擴展 bundle 之間的依賴關系如圖 3 所示。

消息中間件在物聯網網關中的應用

不依賴框架的任何 bundle,是一個完全獨立的 bundle,它可以根據需要向外發布軟件包,供其他 bundle 進行功能調用。

以上三個 bundle 使用 OSGi 機制管理 bundle 的生命周期,實現服務的注冊和發布。JMS Service Implement 和 JMS Service bundle 還需要使用 Kura 框架提供的底層服務,如通過事件機制與其他 bundle 通信。

4 系統功能測試

系統測試環境包含兩塊樹莓派 3B 開發板,板上運行Raspbian 操作系統,分別作為數據采集節點和網關,網關運行Apache ActiveMQ 5.13.0 消息中間件和網關管理軟件 Kura3.1,系統工作在 Internet 和 WiFi 網絡環境。測試環境硬件連接如圖 4 所示。

數據采集節點以 10 s 為周期采集環境的溫度數據,并以消息的形式發送到特定的主題或消息隊列中。網關節點啟動服務器消息中間件 ActiveMQ 和 Kura 管理軟件后,ActiveMQ將來自傳感器節點的消息保存在隊列中,Kura 的功能擴展插件讀取消息隊列消息,并由其他插件對數據進行分析處理。測試結果表明,系統實現了不同節點之間異構應用的集成。

消息中間件在物聯網網關中的應用

5 結 語

本文使用消息中間件實現了物聯網系統的異構集成,重點對 Kura 的服務功能進行了擴展,設計實現了面向服務的JMS bunble,部署到 OSGi 框架之上,使 Kura支持 JMS 消息通信。實驗結果表明,消息集成模式可以簡單有效地實現物聯網應用系統的異構集成,在保持原有節點功能不變的情況下,只需添加 JMS 功能模塊即可可靠地實現數據通信。但由于消息通信的時間延遲,只能在非實時的場景下應用。




Popular articles

主站蜘蛛池模板: 4444www免费看| 国产精品久久久久9999高清| 免费特级黄毛片| 嫩草视频在线免费观看| 无遮挡韩国成人羞羞漫画视频| 美女把腿扒开让男人桶爽国产| 男人黄女人色视频在线观看| 一个上面吃一个下免费| 再深点灬舒服灬太大了np视频| 男人把女人桶爽30分钟一| 波多野结衣电影免费在线观看| 全彩里番acg里番| a级毛片视频免费观看| 欧美妇乱xxxxx视频| 黄网站色视频免费观看| 国产一级特黄高清免费下载| 扒开女人内裤边吃奶边摸| 国产一精品一av一免费爽爽| 狼群视频在线观看www| 翁虹三级在线伦理电影| 亚洲精品永久www忘忧草| 免费看一级淫片成人| 99热99操99射| 女人与狥交下配a级正在播放| 日鲁鲁| 中文字幕久久久久久久系列| 欧美精品亚洲精品日韩专区| 波多野结衣痴汉| 人妖视频在线观看专区| 第四色播日韩第一页| 一区二区三区午夜| 欧美一级高清黄图片| 国产一精品一av一免费爽爽| 亚洲永久精品ww47| 在线观看免费视频一区| 午夜精品久久久久久| 久久国内精品自在自线软件| 天天操夜夜操| 好吊妞788免费视频播放| 亚洲午夜久久久久久噜噜噜| 波多野结衣被绝伦在线观看|