日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘 要:消息中間件是一種被廣泛采用的企業(yè)級(jí)異構(gòu)系統(tǒng)集成方式,在物聯(lián)網(wǎng)應(yīng)用中同樣面臨著異構(gòu)系統(tǒng)的集成問題。為解決物聯(lián)網(wǎng)系統(tǒng)中異構(gòu)節(jié)點(diǎn)之間的數(shù)據(jù)通信問題,提出了一種基于消息中間件的集成方案,并基于該方案設(shè)計(jì)實(shí)現(xiàn)了環(huán)境監(jiān)控系統(tǒng)。系統(tǒng)使用OSGi插件技術(shù)對(duì)物聯(lián)網(wǎng)網(wǎng)關(guān)功能進(jìn)行擴(kuò)展,使其支持JMS消息通信。系統(tǒng)測(cè)試表明,節(jié)點(diǎn)通過消息機(jī)制實(shí)現(xiàn)了異構(gòu)系統(tǒng)集成。

0 引 言

物聯(lián)網(wǎng)應(yīng)用系統(tǒng)是一個(gè)復(fù)雜的分布式系統(tǒng),系統(tǒng)通常由數(shù)管理界面以及支持Amazon AWS IoT,Microsoft Azure IoT 和IBM IoT 云服務(wù)的接口 [4]。Kura 運(yùn)行在 Java 虛擬機(jī)(JVM)上,據(jù)采集節(jié)點(diǎn)、執(zhí)行器節(jié)點(diǎn)和網(wǎng)關(guān)組成,不同功能節(jié)點(diǎn)之間可以使用模塊化 OSG(iOpen Service Gateway Initiative,OSGi)技

使用 ZigBee,BLE 等通信協(xié)議實(shí)現(xiàn)數(shù)據(jù)通信。通常情況下,這些協(xié)議的實(shí)現(xiàn)要求所有節(jié)點(diǎn)使用同一種開發(fā)環(huán)境,部署在同一款軟件框架上,在實(shí)際應(yīng)用中,更多的是對(duì)原有系統(tǒng)的擴(kuò)展或者是在原有系統(tǒng)之上再疊加一層新系統(tǒng)。用戶更關(guān)注如何復(fù)用已有的軟硬件資源,以減少開發(fā)周期并降低成本。原有節(jié)點(diǎn)可能由不同的開發(fā)語言實(shí)現(xiàn),運(yùn)行在不同的框架和平臺(tái)之上。如何在不同的模塊、平臺(tái)和應(yīng)用之間進(jìn)行數(shù)據(jù)通信是實(shí)際應(yīng)用過程中亟待解決的問題。消息中間件是解決企業(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)分別使用不同的開發(fā)語言和客戶端軟件,傳感器節(jié)點(diǎn)采用Python 開發(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)之間通過消息機(jī)制進(jìn)行數(shù)據(jù)通信的目的。

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

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

Kura 是 Eclipse 基金會(huì)發(fā)布的物聯(lián)網(wǎng)項(xiàng)目,用于構(gòu)建 IoT網(wǎng)關(guān)框架,它提供了一種使用開源硬件作為網(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 中,組件或模塊稱為 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ī)范的開源消息中間件,它屏蔽了底層軟件框架和硬件的差異,具有部署簡(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)之間通過消息進(jìn)行數(shù)據(jù)通信,系統(tǒng)架構(gòu)如圖 1 所示。

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

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

基于 JMS 消息的通信機(jī)制可以屏蔽通信雙方的具體技術(shù)實(shí)現(xiàn)細(xì)節(jié),以統(tǒng)一的消息協(xié)議通過第三方消息中間件實(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)均選用開源硬件樹莓派開發(fā)板,其上可運(yùn)行 Linux 或Win10 操作系統(tǒng),開發(fā)板搭載 1.2 GHz 的64 位 ARM 處理器,板上集成 802.11 b/g/n 無線網(wǎng)卡和低功耗藍(lán)牙 4.1 適配器。為連接外部設(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)通過 GPIO 接口連接溫濕度傳感器 DHT11。數(shù)據(jù)采集程序使用 Python 開發(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 所示。

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

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

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

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

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

在系統(tǒng)設(shè)計(jì)過程中,基于 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 之間的依賴關(guān)系如圖 3 所示。

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

不依賴框架的任何 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ù),如通過事件機(jī)制與其他 bundle 通信。

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

系統(tǒng)測(cè)試環(huán)境包含兩塊樹莓派 3B 開發(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將來自傳感器節(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)用的集成。

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

5 結(jié) 語

本文使用消息中間件實(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)用。




本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉