亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于消息總線及內(nèi)存數(shù)據(jù)庫(kù)的物聯(lián)網(wǎng)設(shè)備接入云平臺(tái)

        2018-06-22 02:59:26閆佼陳建江
        微型電腦應(yīng)用 2018年6期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)設(shè)備信息

        閆佼, 陳建江

        (上海順舟智能科技股份有限公司, 上海 201203)

        0 引言

        隨著物聯(lián)網(wǎng)(internet of things,簡(jiǎn)稱IoT)[1]技術(shù)的快速發(fā)展,大量智能設(shè)備的信息需要接入到云平臺(tái)進(jìn)行分析處理,而云平臺(tái)接入層的處理效率直接影響物聯(lián)網(wǎng)設(shè)備的信息上報(bào)和控制延時(shí),特別是對(duì)于某些時(shí)延敏感設(shè)備。目前使用分布式、集群技術(shù)對(duì)于設(shè)備并發(fā)連接及數(shù)量規(guī)模有大幅提升,但仍然存在接入層效率的問(wèn)題。

        針對(duì)物聯(lián)網(wǎng)數(shù)據(jù)接入服務(wù),研究人員提出了多種實(shí)現(xiàn)方案,大部分引入了基于內(nèi)存的數(shù)據(jù)存取系統(tǒng),例如Tingli Li等提出基于NoSQL的物聯(lián)網(wǎng)數(shù)據(jù)處理框架IOTMDB[2];Suna Yin等提出基于NoSQL的分布式物聯(lián)網(wǎng)數(shù)據(jù)處理框架STNoSQL[3];田野等提出基于NoSQL、REST的物聯(lián)網(wǎng)數(shù)據(jù)存儲(chǔ)與共享策略[4]。

        為了提升云平臺(tái)接入層處理效率,本文從系統(tǒng)整體處理效率入手,重點(diǎn)闡述一種基于LibEvent的IO多路復(fù)用調(diào)度模型及綜合使用消息總線技術(shù)、MongoDB和Redis內(nèi)存數(shù)據(jù)庫(kù)的物聯(lián)網(wǎng)設(shè)備接入云平臺(tái)架構(gòu)模型。使用本架構(gòu)模型可大大提高設(shè)備接入及信息命令的處理效率,減少延時(shí),以符合更大范圍的設(shè)備接入應(yīng)用。

        1 系統(tǒng)結(jié)構(gòu)

        基于消息總線及內(nèi)存數(shù)據(jù)庫(kù)的物聯(lián)網(wǎng)設(shè)備接入云平臺(tái)采用分層的體系架構(gòu),從上到下分別為應(yīng)用層、服務(wù)層、數(shù)據(jù)層和設(shè)備接入層,如圖1所示。

        應(yīng)用層主要是B/S展示??商峁┯脩糇?cè)、登錄、訪問(wèn)設(shè)備基本信息、對(duì)設(shè)備進(jìn)行控制操作、統(tǒng)計(jì)分析應(yīng)用。

        圖1 系統(tǒng)結(jié)構(gòu)圖

        服務(wù)層包括各業(yè)務(wù)邏輯模塊、第三方平臺(tái)相互調(diào)用接口、數(shù)據(jù)查詢接口、數(shù)據(jù)挖掘模塊和數(shù)據(jù)層同步邏輯模塊。

        數(shù)據(jù)層采用MongoDB、Redis和MySQL融合的方式,分別存儲(chǔ)設(shè)備的實(shí)時(shí)狀態(tài)信息,臨時(shí)連接信息和歷史數(shù)據(jù)及訪問(wèn)記錄信息。

        設(shè)備接入層主要滿足設(shè)備接入的實(shí)時(shí)處理需求,具有并發(fā)性強(qiáng),數(shù)據(jù)量大的特點(diǎn),采用IO多路復(fù)用技術(shù)、線程池及負(fù)載均衡技術(shù)。

        云平臺(tái)引入消息總線技術(shù)作為內(nèi)部模塊或邏輯塊通信的主要途徑,解決了不同服務(wù)進(jìn)程之間的通訊問(wèn)題。一些服務(wù)向總線上發(fā)送消息,另一些服務(wù)從總線上獲取消息。這種設(shè)計(jì)思想保證了各個(gè)進(jìn)程可以被不同類型的客戶端所接受,同時(shí)也保證了內(nèi)部進(jìn)程通信接口的可擴(kuò)展性和可靠性,從而解除平臺(tái)中各服務(wù)進(jìn)程之間的耦合,以支持大規(guī)模的部署。

        云平臺(tái)系統(tǒng)定義了統(tǒng)一的消息格式,將處理設(shè)備連接的驅(qū)動(dòng)服務(wù)、WEB前端B/S服務(wù)、數(shù)據(jù)同步業(yè)務(wù)邏輯、數(shù)據(jù)分析挖掘業(yè)務(wù)邏輯、第三方平臺(tái)接口服務(wù)等模塊有機(jī)整合,同時(shí)最大化地降低了模塊間的耦合,使得整個(gè)系統(tǒng)中的不同業(yè)務(wù)邏輯可使用不同語(yǔ)言開發(fā),靈活部署維護(hù),極大地提升了系統(tǒng)的組件化水平。

        實(shí)時(shí)的設(shè)備連接信息使用Redis進(jìn)行存取。Redis是NoSQL數(shù)據(jù)庫(kù)的一種,近年來(lái)發(fā)展日益成熟,其存取數(shù)據(jù)基于內(nèi)存,在性能和速度上相比基于磁盤存儲(chǔ)的傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)具有較大的優(yōu)勢(shì)。Redis本身適用于數(shù)據(jù)變化快且數(shù)據(jù)庫(kù)大小可預(yù)見(適合內(nèi)存容量)的應(yīng)用程序。例如在微博、微信等應(yīng)用中已引入key-value數(shù)據(jù)庫(kù)到其服務(wù)平臺(tái)中[5]。目前國(guó)內(nèi)Redis最大的用戶是新浪,視覺中國(guó)(MongoDB)、優(yōu)酷、飛信等都在使用NoSQL數(shù)據(jù)庫(kù)對(duì)業(yè)務(wù)進(jìn)行支持[6]。

        設(shè)備連接信息包括TCP連接的SOCKET描述符、設(shè)備在線狀態(tài)、連接對(duì)應(yīng)的設(shè)備集合、與業(yè)務(wù)邏輯相關(guān)的輪詢策略等等。這些信息通過(guò)的形式保存在內(nèi)存數(shù)據(jù)庫(kù)中,可極大地提升并發(fā)訪問(wèn)的執(zhí)行處理效率。例如對(duì)于設(shè)備的在線狀態(tài),在Redis中保存格式,Key為“szsl:device:862151039692114:online”,Value為“1”。

        設(shè)備的狀態(tài)信息使用MongoDB進(jìn)行存取。MongoDB也是NoSQL數(shù)據(jù)庫(kù)的一種,是基于文檔的非關(guān)系性數(shù)據(jù)庫(kù),可以為物聯(lián)網(wǎng)接入云服務(wù)平臺(tái)提供可擴(kuò)展、高性能的數(shù)據(jù)存儲(chǔ)解決方案。

        設(shè)備狀態(tài)信息包括設(shè)備的通用屬性和專有屬性,例如燈具設(shè)備的標(biāo)識(shí)、所屬項(xiàng)目等屬于通用屬性;開關(guān)狀態(tài)、亮度狀態(tài)等屬于專有屬性。將這些信息保存在基于文檔結(jié)構(gòu)的內(nèi)存數(shù)據(jù)庫(kù)中,不僅可大幅提升存取速度,提升并發(fā)訪問(wèn)的執(zhí)行處理效率,同時(shí)可靈活擴(kuò)展,既便于存放異構(gòu)設(shè)備的不同屬性信息,又方便后續(xù)對(duì)系統(tǒng)的持續(xù)改造升級(jí)。

        2 設(shè)備接入架構(gòu)

        設(shè)備接入部分是物聯(lián)網(wǎng)云平臺(tái)的關(guān)鍵功能模塊,它負(fù)責(zé)海量設(shè)備的連接維護(hù)、信息處理及控制執(zhí)行等核心業(yè)務(wù)。設(shè)備接入部分的效率直接決定整個(gè)物聯(lián)網(wǎng)云平臺(tái)對(duì)設(shè)備提供服務(wù)的能力和質(zhì)量。本系統(tǒng)引入基于LibEvent的IO多路復(fù)用調(diào)度模型,同時(shí)融入線程池及負(fù)載均衡技術(shù),設(shè)計(jì)了通用接入框架,并盡最大可能發(fā)揮操作系統(tǒng)的并發(fā)處理性能。如圖2所示。

        圖2 設(shè)備接入架構(gòu)圖

        LibEvent是基于Reactor型事件驅(qū)動(dòng)模式的輕量級(jí)開源高性能網(wǎng)絡(luò)庫(kù),其執(zhí)行效率之高得到普遍認(rèn)可,目前已經(jīng)得到廣泛應(yīng)用,比如Chromium、Memcached、Vomit、Nylon、Netchat等。

        接入層框架模型使用IO多路復(fù)用技術(shù),可顯著提高程序在大量并發(fā)連接中只有少量活躍的情況下的系統(tǒng)CPU利用率。IO多路復(fù)用技術(shù)復(fù)用文件描述符集合傳遞結(jié)果,同時(shí)在獲取事件時(shí),只需要遍歷被內(nèi)核IO事件異步喚醒而加入Ready隊(duì)列的描述符集合,而無(wú)需遍歷整個(gè)集合。

        接入層框架模型使用線程池技術(shù),主要有兩種線程,分別是“主線程”和“工作線程”,主線程有一個(gè),工作線程有多個(gè)。主線程負(fù)責(zé)監(jiān)聽網(wǎng)絡(luò)連接,并且對(duì)監(jiān)聽到的連接進(jìn)行accept操作,成功后,把相應(yīng)的連接描述符轉(zhuǎn)交給負(fù)載較輕的工作線程處理。工作線程接收到連接描述符后,創(chuàng)建連接資源并將其加入到自己的連接隊(duì)列,負(fù)責(zé)處理該連接的讀寫事件。

        接入層框架模型按照組件化思想進(jìn)行設(shè)計(jì),對(duì)于海量異構(gòu)設(shè)備進(jìn)行抽象,抽取共性信息作為通用屬性,個(gè)性信息作為專有屬性。使用設(shè)備類型作為標(biāo)識(shí),區(qū)分不同的數(shù)據(jù)格式及控制命令格式,將其轉(zhuǎn)到不同的處理組件進(jìn)行處理。處理的結(jié)果統(tǒng)一更新到Redis和MongoDB數(shù)據(jù)庫(kù)中。

        為了保證高效使用內(nèi)存數(shù)據(jù)庫(kù),各工作線程分別與數(shù)據(jù)庫(kù)建立訪問(wèn)連接,線程之間連接信息保持獨(dú)立,更好地發(fā)揮內(nèi)存數(shù)據(jù)庫(kù)的讀寫速度優(yōu)勢(shì),提升對(duì)設(shè)備服務(wù)的并發(fā)處理能力。

        3 測(cè)試

        為了獲取最佳的執(zhí)行效率,設(shè)備接入層的驅(qū)動(dòng)部分使用C語(yǔ)言實(shí)現(xiàn),其它部分邏輯使用JAVA語(yǔ)言實(shí)現(xiàn),為了驗(yàn)證單臺(tái)主機(jī)的連接性能,使用1臺(tái)安裝Ubuntu 14.04 64位操作系統(tǒng)的,具備單核CPU、2G內(nèi)存的阿里云服務(wù)器進(jìn)行部署測(cè)試,接入設(shè)備分別為安裝于實(shí)際項(xiàng)目中的基于4G技術(shù)的路燈控制器、基于NB-IOT技術(shù)的路燈控制器、基于zigbee技術(shù)的集中控制器及路燈控制器。

        首先驗(yàn)證云平臺(tái)的設(shè)備接入層功能,設(shè)備上電后,控制指令執(zhí)行正確、心跳指令、設(shè)備響應(yīng)指令正確,通信邏輯正常。然后查看前端展示,確認(rèn)各菜單跳轉(zhuǎn)正確,控制操作動(dòng)作正確,各模塊及數(shù)據(jù)展示表現(xiàn)正常查看前端B/S展示,關(guān)于設(shè)備管理頁(yè)的展示效果如圖3所示。

        圖3 設(shè)備管理頁(yè)的展示效果圖

        用戶可單獨(dú)或批量地對(duì)設(shè)備進(jìn)行控制操作,同時(shí)設(shè)備信息可實(shí)時(shí)展示及存儲(chǔ),大大方便了對(duì)物聯(lián)網(wǎng)設(shè)備的管理。

        平臺(tái)通過(guò)對(duì)設(shè)備信息進(jìn)行收集和處理,同時(shí)對(duì)比歷史數(shù)據(jù)得出能耗統(tǒng)計(jì)數(shù)據(jù),通過(guò)前端B/S進(jìn)行展示,效果如圖4所示。

        圖4 前端展示效果圖

        用戶可通過(guò)條件查詢各個(gè)地區(qū)、各個(gè)項(xiàng)目的能耗情況,為城市總體規(guī)劃及能源調(diào)配提供真實(shí)數(shù)據(jù)參考。

        以智能燈為例,從B/S端對(duì)其進(jìn)行狀態(tài)信息讀取和控制操作,統(tǒng)計(jì)平均響應(yīng)時(shí)間,如表1所示。

        從表1可以看出,在用戶執(zhí)行對(duì)設(shè)備操作后,平均響應(yīng)

        時(shí)間小于500 ms,在實(shí)際的操作過(guò)程中,可達(dá)到較好的用戶體驗(yàn)。根據(jù)應(yīng)用邏輯,對(duì)設(shè)備的操作及響應(yīng)數(shù)據(jù)的處理都需要進(jìn)行MongoDB和Redis數(shù)據(jù)庫(kù)的操作及多次網(wǎng)絡(luò)通信,但仍達(dá)到了理想的響應(yīng)效果,基本可體現(xiàn)出基于內(nèi)存數(shù)據(jù)庫(kù)的控制云在時(shí)延方面的優(yōu)勢(shì)。

        表1 設(shè)備通信性能測(cè)試結(jié)果

        4 總結(jié)

        為接入海量物聯(lián)網(wǎng)智能設(shè)備,處理設(shè)備信息,對(duì)設(shè)備進(jìn)行控制操作,設(shè)計(jì)了一種基于消息總線及內(nèi)存數(shù)據(jù)庫(kù)的物聯(lián)網(wǎng)設(shè)備接入云平臺(tái)。該平臺(tái)為智能設(shè)備接入及應(yīng)用層展示、分析提供相應(yīng)服務(wù),將數(shù)據(jù)按照使用率進(jìn)行分類,分別存入MongoDB、Redis及MySQL數(shù)據(jù)庫(kù),同時(shí)設(shè)計(jì)了數(shù)據(jù)庫(kù)同步組件,將內(nèi)存數(shù)據(jù)按日志存入MySQL,便于后臺(tái)數(shù)據(jù)分析及處理。平臺(tái)使用消息總線技術(shù),整合不同的業(yè)務(wù)邏輯模塊,使得不同語(yǔ)言實(shí)現(xiàn)的功能模塊可完美融合。云平臺(tái)接入層使用基于LibEvent的IO復(fù)用技術(shù),大幅提升單機(jī)的連接數(shù)及并發(fā)能力。

        通過(guò)系統(tǒng)的長(zhǎng)期運(yùn)行及實(shí)際項(xiàng)目應(yīng)用表明,云平臺(tái)系統(tǒng)能夠?qū)崟r(shí)反映設(shè)備的狀態(tài)信息及設(shè)備的使用和運(yùn)行情況,分析設(shè)備數(shù)據(jù)得到有用價(jià)值數(shù)據(jù),為用戶提供數(shù)據(jù)支撐。下一步將繼續(xù)優(yōu)化系統(tǒng),進(jìn)一步挖掘單機(jī)設(shè)備的最大連接能力及并發(fā)能力,將系統(tǒng)組件分布式部署,同時(shí)開發(fā)更多數(shù)據(jù)挖掘應(yīng)用,為用戶提供更多更有價(jià)值的信息。

        [1] CONTIP. The Internet of Things[J]. Communications Engineer, 2006,4(6):20-25.

        [2] Tingli Li, Yang Liu, Ye Tian, et al. A Storage Solution for Massive IoT Data Based on NoSQL[M]//Proceedings of the IEEE International Conference on Internet of Things, 2012:50-57.

        [3] Suna Yin, Dehua Chen, Jiajin Le. STNoSQL: Creating NoSQL database on the Sensible Things platform[C]//IEEE Ieee/acis International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, 2016:669-674.

        [4] 田野,袁博,李廷力. 物聯(lián)網(wǎng)海量異構(gòu)數(shù)據(jù)存儲(chǔ)與共享策略研究[J]. 電子學(xué)報(bào),2016,44(2):247-257.

        [5] 申德榮,于戈,王習(xí)特,等. 支持大數(shù)據(jù)管理的NoSQL系統(tǒng)研究綜述[J]. 軟件學(xué)報(bào),2013(8):1786-1803.

        [6] 閆密巧,王占宏,王志宇. 基于Redis的海量軌跡數(shù)據(jù)存儲(chǔ)模型研究[J]. 微型電腦應(yīng)用,2017,33(4):9-11.

        猜你喜歡
        數(shù)據(jù)庫(kù)設(shè)備信息
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        展會(huì)信息
        原來(lái)他們都是可穿戴設(shè)備
        国产精品九九久久一区hh| 人妻少妇无码精品视频区| 免费观看又色又爽又黄的| 亚洲精品国产字幕久久vr| 强d乱码中文字幕熟女1000部| 国产成人一区二区三区影院| 久久精品国产精品亚洲| 亚洲国产高清在线一区二区三区| 色播在线永久免费视频网站| 日本免费三片在线视频| 亚洲综合网国产精品一区| 少妇高潮尖叫黑人激情在线| 亚洲欧美性另类春色| 亚洲女人天堂成人av在线| 五月色丁香婷婷网蜜臀av| 成年无码av片完整版| 亚洲熟妇大图综合色区| 国产精女同一区二区三区久| 4hu四虎永久免费地址ww416| 久久精品中文字幕无码绿巨人| 成人区人妻精品一熟女| 骚片av蜜桃精品一区| 美女被内射很爽的视频网站| 在线播放五十路熟妇| 亚洲狠狠婷婷综合久久| 无码国产一区二区色欲| 成人影院在线观看视频免费| 欧美一性一乱一交一视频| 日韩专区欧美专区| 国产在线观看免费不卡视频| 狠狠色噜噜狠狠狠8888米奇| 国产成人无码免费网站| 无码专区无码专区视频网址 | 中文字幕乱码无码人妻系列蜜桃| 亚洲人成无码网站久久99热国产| 情色视频在线观看一区二区三区| 国内揄拍国内精品人妻久久| 亚洲av天天做在线观看| 日本加勒比东京热日韩| 久久综合亚洲鲁鲁五月天| 亚洲最大av网站在线观看|