999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

消息中間件在物聯(lián)網(wǎng)網(wǎng)關(guān)中的應(yīng)用

2018-12-12 08:15:44李松濤尹清爽
物聯(lián)網(wǎng)技術(shù) 2018年12期
關(guān)鍵詞:功能服務(wù)系統(tǒng)

李松濤,尹清爽

(河南工程學(xué)院 計(jì)算機(jī)學(xué)院,河南 鄭州 451191)

0 引 言

物聯(lián)網(wǎng)應(yīng)用系統(tǒng)是一個(gè)復(fù)雜的分布式系統(tǒng),系統(tǒng)通常由數(shù)據(jù)采集節(jié)點(diǎn)、執(zhí)行器節(jié)點(diǎn)和網(wǎng)關(guān)組成,不同功能節(jié)點(diǎn)之間可以使用ZigBee,BLE等通信協(xié)議實(shí)現(xiàn)數(shù)據(jù)通信。通常情況下,這些協(xié)議的實(shí)現(xiàn)要求所有節(jié)點(diǎn)使用同一種開(kāi)發(fā)環(huán)境,部署在同一款軟件框架上,在實(shí)際應(yīng)用中,更多的是對(duì)原有系統(tǒng)的擴(kuò)展或者是在原有系統(tǒng)之上再疊加一層新系統(tǒng)。用戶更關(guān)注如何復(fù)用已有的軟硬件資源,以減少開(kāi)發(fā)周期并降低成本。原有節(jié)點(diǎn)可能由不同的開(kāi)發(fā)語(yǔ)言實(shí)現(xiàn),運(yùn)行在不同的框架和平臺(tái)之上。如何在不同的模塊、平臺(tái)和應(yīng)用之間進(jìn)行數(shù)據(jù)通信是實(shí)際應(yīng)用過(guò)程中亟待解決的問(wèn)題。消息中間件是解決企業(yè)應(yīng)用系統(tǒng)異構(gòu)集成的一種有效方法[1-2],這種方法也同樣適用于物聯(lián)網(wǎng)[3]。物聯(lián)網(wǎng)中的分布式節(jié)點(diǎn)本身就是一個(gè)小型的嵌入式系統(tǒng),其硬件配置足以支持其上運(yùn)行嵌入式操作系統(tǒng)和服務(wù)管理軟件,從而為基于消息的異構(gòu)系統(tǒng)集成在物聯(lián)網(wǎng)節(jié)點(diǎn)上的實(shí)現(xiàn)提供了可能。

本文對(duì)基于消息中間件的物聯(lián)網(wǎng)應(yīng)用異構(gòu)系統(tǒng)集成進(jìn)行了探索,并在環(huán)境監(jiān)控系統(tǒng)中對(duì)設(shè)計(jì)方案進(jìn)行了驗(yàn)證。傳感器節(jié)點(diǎn)和網(wǎng)關(guān)分別使用不同的開(kāi)發(fā)語(yǔ)言和客戶端軟件,傳感器節(jié)點(diǎn)采用Python開(kāi)發(fā),網(wǎng)關(guān)使用基于OSGi框架的插件技術(shù),對(duì)網(wǎng)關(guān)管理軟件Kura的服務(wù)進(jìn)行擴(kuò)展,使其支持JMS(Java Message Service,JMS)。借助部署在網(wǎng)關(guān)的ActiveMQ消息中間件,實(shí)現(xiàn)了在不同節(jié)點(diǎn)之間通過(guò)消息機(jī)制進(jìn)行數(shù)據(jù)通信的目的。

1 相關(guān)技術(shù)介紹

1.1 Kura開(kāi)源網(wǎng)關(guān)框架

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

1.2 ActiveMQ消息服務(wù)

消息中間件基于消息驅(qū)動(dòng)方式,為異構(gòu)系統(tǒng)和平臺(tái)提供了一種高效、可靠的數(shù)據(jù)通信服務(wù)[8]。ActiveMQ是被廣泛使用的基于JMS規(guī)范的開(kāi)源消息中間件,它屏蔽了底層軟件框架和硬件的差異,具有部署簡(jiǎn)單、占用資源少、運(yùn)行可靠等特點(diǎn)。消息中間件不僅簡(jiǎn)化了在物聯(lián)網(wǎng)環(huán)境下異構(gòu)應(yīng)用的集成,也提供了一種構(gòu)建松耦合系統(tǒng)的方式。

2 系統(tǒng)框架設(shè)計(jì)

系統(tǒng)由傳感器節(jié)點(diǎn)和網(wǎng)關(guān)構(gòu)成,在局域網(wǎng)內(nèi)采用分布式部署,節(jié)點(diǎn)之間通過(guò)消息進(jìn)行數(shù)據(jù)通信,系統(tǒng)架構(gòu)如圖1所示。

圖1 系統(tǒng)架構(gòu)

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

基于JMS消息的通信機(jī)制可以屏蔽通信雙方的具體技術(shù)實(shí)現(xiàn)細(xì)節(jié),以統(tǒng)一的消息協(xié)議通過(guò)第三方消息中間件實(shí)現(xiàn)通信,并可以實(shí)現(xiàn)一對(duì)一、一對(duì)多等不同形式的消息通信模式。傳感器節(jié)點(diǎn)可以在不同的主題上發(fā)布消息,也可以多個(gè)節(jié)點(diǎn)在同一主題上發(fā)布,滿足了系統(tǒng)集成的松耦合和靈活性要求。

3 主要功能的設(shè)計(jì)與實(shí)現(xiàn)

3.1 傳感器節(jié)點(diǎn)

系統(tǒng)中節(jié)點(diǎn)硬件平臺(tái)均選用開(kāi)源硬件樹(shù)莓派開(kāi)發(fā)板,其上可運(yùn)行Linux或Win10操作系統(tǒng),開(kāi)發(fā)板搭載1.2 GHz的64位ARM處理器,板上集成802.11 b/g/n無(wú)線網(wǎng)卡和低功耗藍(lán)牙4.1適配器。為連接外部設(shè)備,樹(shù)莓派上配置有40個(gè)GPIO引腳,支持SPI,I2C以及Serial等接口和總線標(biāo)準(zhǔn),豐富的軟硬件資源可保證其不僅可作為數(shù)據(jù)采集終端,也可作為物聯(lián)網(wǎng)系統(tǒng)的小型網(wǎng)關(guān)。

傳感器節(jié)點(diǎn)通過(guò)GPIO接口連接溫濕度傳感器DHT11。數(shù)據(jù)采集程序使用Python開(kāi)發(fā),獲取數(shù)字量的環(huán)境溫、濕度數(shù)據(jù),然后調(diào)用STOMP(Streaming Text Orientated Message Protocol,STOMP)庫(kù)函數(shù)將數(shù)據(jù)封裝為JMS消息發(fā)送到網(wǎng)關(guān)。STOMP即流文本定向消息協(xié)議,是一種面向消息中間件設(shè)計(jì)的簡(jiǎn)單文本協(xié)議。傳感器節(jié)點(diǎn)程序流程如圖2所示。

圖2 傳感器節(jié)點(diǎn)程序流程圖

3.2 網(wǎng)關(guān)JMS插件實(shí)現(xiàn)

Kura雖然內(nèi)置了大量支持物聯(lián)網(wǎng)功能的服務(wù),但并未直接提供對(duì)JMS的支持。Kura基于OSGi技術(shù)實(shí)現(xiàn),用戶可以基于OSGi的動(dòng)態(tài)化插件技術(shù)構(gòu)建自己的功能插件。為了在網(wǎng)關(guān)實(shí)現(xiàn)JMS客戶端功能,需要做如下兩方面工作:

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

(2)設(shè)計(jì)可提供JMS服務(wù)的bundle,其實(shí)質(zhì)是封裝JMS客戶端的具體實(shí)現(xiàn),以服務(wù)的形式發(fā)布接口,供其他bundle調(diào)用,這部分是系統(tǒng)設(shè)計(jì)的核心內(nèi)容。

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

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

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

相對(duì)于第一種方式,第二種方式具有更大的靈活性。本系統(tǒng)對(duì)插件的管理使用第二種方式,聲明式服務(wù)可以保證在服務(wù)接口不變的情況下,根據(jù)需要?jiǎng)討B(tài)配置、升級(jí)、替換bundle,并在服務(wù)切換過(guò)程中無(wú)需重啟系統(tǒng),實(shí)現(xiàn)“熱插拔”。

在系統(tǒng)設(shè)計(jì)過(guò)程中,基于Kura框架設(shè)計(jì)實(shí)現(xiàn)了多個(gè)bundle對(duì)原有服務(wù)進(jìn)行擴(kuò)展,包括JMS服務(wù)bundle(JMS Service)、服務(wù)實(shí)現(xiàn)bundle(JMS Service Implement)和JMS服務(wù)支持bundle(JMS bundle)。JMS Service提供框架級(jí)別的服務(wù),該服務(wù)注冊(cè)后可被其他bundle使用。JMS Service Implement提供具體的服務(wù)實(shí)現(xiàn),將接口與實(shí)現(xiàn)分離,對(duì)其他插件隱藏了服務(wù)實(shí)現(xiàn)的細(xì)節(jié),符合OSGi對(duì)模塊動(dòng)態(tài)性和松耦合的要求。網(wǎng)關(guān)擴(kuò)展bundle之間的依賴(lài)關(guān)系如圖3所示。

圖3 網(wǎng)關(guān)擴(kuò)展bundle之間的依賴(lài)關(guān)系

JMS bundle封裝與ActiveMQ通信的基礎(chǔ)類(lèi),該bundle不依賴(lài)框架的任何bundle,是一個(gè)完全獨(dú)立的bundle,它可以根據(jù)需要向外發(fā)布軟件包,供其他bundle進(jìn)行功能調(diào)用。

以上三個(gè)bundle使用OSGi機(jī)制管理bundle的生命周期,實(shí)現(xiàn)服務(wù)的注冊(cè)和發(fā)布。JMS Service Implement和JMS Service bundle還需要使用Kura框架提供的底層服務(wù),如通過(guò)事件機(jī)制與其他bundle通信。

4 系統(tǒng)功能測(cè)試

系統(tǒng)測(cè)試環(huán)境包含兩塊樹(shù)莓派3B開(kāi)發(fā)板,板上運(yùn)行Raspbian操作系統(tǒng),分別作為數(shù)據(jù)采集節(jié)點(diǎn)和網(wǎng)關(guān),網(wǎng)關(guān)運(yùn)行Apache ActiveMQ 5.13.0消息中間件和網(wǎng)關(guān)管理軟件Kura3.1,系統(tǒng)工作在Internet和WiFi網(wǎng)絡(luò)環(huán)境。測(cè)試環(huán)境硬件連接如圖4所示。

數(shù)據(jù)采集節(jié)點(diǎn)以10 s為周期采集環(huán)境的溫度數(shù)據(jù),并以消息的形式發(fā)送到特定的主題或消息隊(duì)列中。網(wǎng)關(guān)節(jié)點(diǎn)啟動(dòng)服務(wù)器消息中間件ActiveMQ和Kura管理軟件后,ActiveMQ將來(lái)自傳感器節(jié)點(diǎn)的消息保存在隊(duì)列中,Kura的功能擴(kuò)展插件讀取消息隊(duì)列消息,并由其他插件對(duì)數(shù)據(jù)進(jìn)行分析處理。測(cè)試結(jié)果表明,系統(tǒng)實(shí)現(xiàn)了不同節(jié)點(diǎn)之間異構(gòu)應(yīng)用的集成。

圖4 測(cè)試環(huán)境硬件連接

5 結(jié) 語(yǔ)

本文使用消息中間件實(shí)現(xiàn)了物聯(lián)網(wǎng)系統(tǒng)的異構(gòu)集成,重點(diǎn)對(duì)Kura的服務(wù)功能進(jìn)行了擴(kuò)展,設(shè)計(jì)實(shí)現(xiàn)了面向服務(wù)的JMS bunble,部署到OSGi框架之上,使Kura支持JMS消息通信。實(shí)驗(yàn)結(jié)果表明,消息集成模式可以簡(jiǎn)單有效地實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的異構(gòu)集成,在保持原有節(jié)點(diǎn)功能不變的情況下,只需添加JMS功能模塊即可可靠地實(shí)現(xiàn)數(shù)據(jù)通信。但由于消息通信的時(shí)間延遲,只能在非實(shí)時(shí)的場(chǎng)景下應(yīng)用。

猜你喜歡
功能服務(wù)系統(tǒng)
也談詩(shī)的“功能”
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
關(guān)于非首都功能疏解的幾點(diǎn)思考
主站蜘蛛池模板: 国产免费精彩视频| 三上悠亚一区二区| 国产精品yjizz视频网一二区| 中文字幕在线观| 亚洲福利片无码最新在线播放| 亚洲乱码在线视频| 国产成人精品免费视频大全五级| 性做久久久久久久免费看| 国产剧情伊人| 亚洲男人天堂久久| 午夜在线不卡| 国产精品欧美亚洲韩国日本不卡| 成人在线天堂| 亚洲国产无码有码| 国产欧美日韩资源在线观看| 久久黄色免费电影| 天天综合网色中文字幕| 国产小视频免费| 中文字幕va| 美女高潮全身流白浆福利区| 欧美性精品不卡在线观看| 国产欧美在线| 国产一区二区三区在线观看免费| 日本免费福利视频| 日韩国产高清无码| 2021国产在线视频| 婷婷色狠狠干| 九九视频免费在线观看| 午夜视频免费试看| 欧美一区日韩一区中文字幕页| 日本国产在线| 青青青草国产| 国产精品无码一二三视频| 亚洲成年人片| 91麻豆久久久| 午夜激情婷婷| 国产又大又粗又猛又爽的视频| 国产午夜一级淫片| 亚洲一级毛片在线观| 国产亚洲精品yxsp| 久久人与动人物A级毛片| 国产一级在线播放| 中文字幕佐山爱一区二区免费| 日韩国产黄色网站| 91蝌蚪视频在线观看| 97国产精品视频自在拍| 久久性视频| 色妞www精品视频一级下载| 波多野结衣一区二区三视频| 亚洲性网站| yy6080理论大片一级久久| 中文字幕资源站| 日韩第八页| 久久综合五月| 国产尤物jk自慰制服喷水| 久久久国产精品无码专区| 国产成人高清在线精品| 在线国产毛片| 欧美精品在线看| 国产成人综合欧美精品久久| 国产不卡网| 日韩免费中文字幕| 国产女人水多毛片18| 久一在线视频| 性网站在线观看| 最新国产在线| 99久视频| 欧美亚洲日韩不卡在线在线观看| 国产拍在线| 国产精品美女免费视频大全| 四虎国产成人免费观看| 97se亚洲综合| 亚洲开心婷婷中文字幕| 亚洲另类国产欧美一区二区| 欧美a在线视频| 精品91视频| 人妻无码中文字幕一区二区三区| 国产在线小视频| 亚洲精品国产成人7777| 亚洲男人在线| 亚洲欧美日韩另类在线一| 久久亚洲美女精品国产精品|