麻凱雄,鄭海寧
(航天海鷹安全技術(shù)工程有限公司,北京 100074)
隨著計算機信息技術(shù)的飛速發(fā)展,信息管理系統(tǒng)被廣泛應用于各個領域,相比于傳統(tǒng)人工管理方式,使用計算機進行信息管理具有無法比擬的優(yōu)勢:數(shù)據(jù)處理效率高、數(shù)據(jù)查詢快速準確以及信息便于長期保存等。近年來,越來越多的城市開啟了“智慧城市”的建設熱潮。在線監(jiān)測類系統(tǒng)作為“智慧城市”的重要組成部分,其數(shù)據(jù)處理的一般流程為:數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)計算及數(shù)據(jù)調(diào)用。其中,數(shù)據(jù)采集和存儲為整個流程的基礎部分,能否實現(xiàn)快速的數(shù)據(jù)采集和高效的數(shù)據(jù)存儲,將直接影響整個信息系統(tǒng)的工作效率。此外,開發(fā)“智慧城市”在線監(jiān)測類系統(tǒng)時,每次都將數(shù)據(jù)采集和存儲模塊進行重新設計與實現(xiàn),造成單個系統(tǒng)的開發(fā)速度慢、周期長,開發(fā)效率低下。
在空氣懸浮風機云平臺設計實現(xiàn)過程中,本文針對以上在線監(jiān)測類系統(tǒng)開發(fā)中存在的問題,在軟件復用思想下,設計實現(xiàn)基于ActiveMQ消息中間件和協(xié)議解析模型庫的通用型數(shù)據(jù)網(wǎng)關(guān),并設計了OpenTSDB時序數(shù)據(jù)庫,更在此基礎上,設計實現(xiàn)了空氣懸浮風機云。
云平臺系統(tǒng)框架體系結(jié)構(gòu)如圖1所示。系統(tǒng)主要包括物聯(lián)感知層、數(shù)據(jù)層、中間層和應用層。風機DTU設備借助Modbus TCP協(xié)議傳輸風機運行參數(shù)數(shù)據(jù),通用型數(shù)據(jù)網(wǎng)關(guān)接收參數(shù)數(shù)據(jù),完成數(shù)據(jù)解析工作后,將數(shù)據(jù)推送給ActiveMQ消息中間件和OpenTSDB時序數(shù)據(jù)庫。為降低系統(tǒng)耦合性,設計實現(xiàn)通用型數(shù)據(jù)網(wǎng)關(guān),并將其作為獨立系統(tǒng)部署于數(shù)據(jù)網(wǎng)關(guān)服務器上。
圖1 系統(tǒng)框架體系結(jié)構(gòu)
圖2所示為空氣懸浮風機云平臺功能模塊組織結(jié)構(gòu),云平臺主要劃分為數(shù)據(jù)采集與通信、風機數(shù)據(jù)實時監(jiān)測、數(shù)據(jù)統(tǒng)計與分析、風機歷史數(shù)據(jù)查詢、風機銷售管理、風機設備管理、報警模塊管理和系統(tǒng)管理。數(shù)據(jù)采集與通信模塊負責風機運行參數(shù)數(shù)據(jù)接收、協(xié)議解析、預處理、數(shù)據(jù)推送;風機數(shù)據(jù)實時監(jiān)測通過一張圖和列表的方式,將數(shù)據(jù)采集與通信模塊處理后的風機實時運行參數(shù)數(shù)據(jù)展示給用戶;風機歷史數(shù)據(jù)查詢模塊支持用戶自由選擇風機運行參數(shù),查詢風機歷史數(shù)據(jù);報警模塊管理包括報警信息查看、報警信息的確認和處置等。
圖2 系統(tǒng)功能模塊組織結(jié)構(gòu)
數(shù)據(jù)采集為設備、傳感器在線監(jiān)測類系統(tǒng)中的關(guān)鍵模塊,將其與在線監(jiān)測類系統(tǒng)作為一個整體進行開發(fā),使得系統(tǒng)耦合性高、可復用性差,導致系統(tǒng)開發(fā)周期長、效率低下。為此,本文單獨設計了基于ActiveMQ的通用型數(shù)據(jù)網(wǎng)關(guān),解決在線監(jiān)測類系統(tǒng)中的數(shù)據(jù)采集問題。通用型數(shù)據(jù)網(wǎng)關(guān)設計模型如圖3所示。
圖3 通用型數(shù)據(jù)網(wǎng)關(guān)設計模型
為提高數(shù)據(jù)網(wǎng)關(guān)的普適性,使其支持多種協(xié)議解析,設計了協(xié)議解析模型庫,支持多種協(xié)議的動態(tài)添加。設備、傳感器產(chǎn)生的流式數(shù)據(jù)經(jīng)過通用型數(shù)據(jù)網(wǎng)關(guān)中相關(guān)協(xié)議解析模型解析,將解析后的風機實時監(jiān)測數(shù)據(jù)推送至ActiveMQ消息中間件。通過ActiveMQ,應用程序可直接獲取中間件消息隊列中的風機實時監(jiān)測數(shù)據(jù),無需與數(shù)據(jù)庫交互,極大降低了用戶的響應延遲。此外,通過ActiveMQ消息中間件可實現(xiàn)通用型數(shù)據(jù)網(wǎng)關(guān)與應用程序間的解耦。
在實際風機運行數(shù)據(jù)采集時,需要采集的風機參數(shù)數(shù)量多,并且不同風機設備需要采集的參數(shù)內(nèi)容和數(shù)量不同;通過關(guān)系型數(shù)據(jù)庫存儲風機實時運行參數(shù)數(shù)據(jù),數(shù)據(jù)存儲和查詢效率低下。針對以上數(shù)據(jù)采集特點,考慮到數(shù)據(jù)存儲和查詢效率問題,將通用型數(shù)據(jù)網(wǎng)關(guān)采集和處理后的風機實時運行參數(shù)數(shù)據(jù)推送至OpenTSDB時序數(shù)據(jù)庫,數(shù)據(jù)經(jīng)過時序數(shù)據(jù)庫處理,結(jié)合產(chǎn)生的時間戳,存入HBase分布式、面向列的數(shù)據(jù)庫中。風機運行數(shù)據(jù)采集、處理和存儲流程如圖4所示。
圖4 風機運行數(shù)據(jù)處理流程
系統(tǒng)采用關(guān)系型和非關(guān)系型結(jié)合的方式存儲數(shù)據(jù)。系統(tǒng)的業(yè)務配置數(shù)據(jù)、用戶數(shù)據(jù)等量級小且事務性要求較高的數(shù)據(jù),被存儲在MySQL數(shù)據(jù)庫中;設備實時運行參數(shù)數(shù)據(jù)和報警數(shù)據(jù)等,其增長速度較快,且需要被查詢和統(tǒng)計分析,存儲于在HBase中。這種關(guān)系型數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫相結(jié)合的數(shù)據(jù)存儲方式在保證數(shù)據(jù)一致性和完整性的前提下,提高了整體存儲結(jié)構(gòu)的高效性和穩(wěn)定性。
空氣懸浮風機云平臺基于Spring Boot開發(fā)框架搭建,使用Java開發(fā)語言,平臺前端采用Vue框架,開發(fā)工具采用InteliJ IDEA。采用前后端分離的開發(fā)模式,解除了傳統(tǒng)開發(fā)技術(shù)框架帶來的前后臺緊耦合問題,可分別對前后端代碼進行升級優(yōu)化。空氣懸浮風機通過 DTU(Data Transfer Unit)數(shù)據(jù)傳輸單元將風機設備運行參數(shù)數(shù)據(jù)借助Modbus TCP協(xié)議發(fā)送至通用型數(shù)據(jù)網(wǎng)關(guān)服務器。為此,設計實現(xiàn)Modbus TCP協(xié)議解析模型,并添加到協(xié)議解析模型庫中??諝鈶腋★L機云平臺如圖5所示。在試運行階段,系統(tǒng)表現(xiàn)出良好的實用性,且運行穩(wěn)定。風機數(shù)據(jù)實時監(jiān)測模塊和歷史數(shù)據(jù)查詢模塊均能較好地滿足用戶實際使用需求??諝鈶腋★L機云平臺實時數(shù)據(jù)展示如圖6所示,歷史數(shù)據(jù)查詢效果如圖7所示。
圖5 空氣懸浮風機云平臺
圖6 實時數(shù)據(jù)展示
圖7 歷史數(shù)據(jù)查詢
文中闡述了“智慧城市”在線監(jiān)測類系統(tǒng)中數(shù)據(jù)處理的一般流程,針對流程的基礎部分—數(shù)據(jù)采集和存儲,單獨設計并實現(xiàn)了基于ActiveMQ消息中間件和協(xié)議解析模型庫的通用型數(shù)據(jù)網(wǎng)關(guān),并進行了相關(guān)數(shù)據(jù)庫設計。以此為基礎,實現(xiàn)了空氣懸浮風機云。下一步計劃將通用型數(shù)據(jù)網(wǎng)關(guān)及相關(guān)數(shù)據(jù)庫設計應用于其他“智慧城市”在線監(jiān)測類系統(tǒng)中,通過可復用軟件解決“智慧城市”平臺建設中的數(shù)據(jù)采集和存儲問題,提高平臺開發(fā)效率。