李長(zhǎng)杰, 李 威, 徐 亮, 陳 鵬, 成 波
1(湖北交投智能檢測(cè)股份有限公司, 武漢 430050)
2(湖北省協(xié)誠(chéng)交通環(huán)保有限公司, 武漢 430030)
環(huán)境問(wèn)題日趨復(fù)雜, 傳統(tǒng)的環(huán)境監(jiān)測(cè)方式已經(jīng)難以滿足環(huán)境治理需求和公眾的要求. 因此, 環(huán)境在線監(jiān)測(cè)技術(shù)應(yīng)運(yùn)而生, 出現(xiàn)了各種針對(duì)污水、大氣、噪聲、土壤、固體廢棄物等污染物進(jìn)行在線監(jiān)測(cè)的解決方案, 利用計(jì)算機(jī)模擬人工進(jìn)行分析, 并排除了人工分析時(shí)的不穩(wěn)定、分析速度慢等人為因素, 提高了穩(wěn)定性和分析速度. 這種方案具有實(shí)時(shí)性、智能化、精確度高、運(yùn)行維護(hù)簡(jiǎn)單等優(yōu)點(diǎn), 但各設(shè)備廠商所遵循的標(biāo)準(zhǔn)不盡相同, 且各廠商均有各自的維護(hù)管理平臺(tái), 系統(tǒng)之間相互獨(dú)立, 數(shù)據(jù)不能共享, 孤島效應(yīng)嚴(yán)重, 企業(yè)無(wú)法利用監(jiān)測(cè)數(shù)據(jù)進(jìn)行綜合分析, 難以發(fā)揮數(shù)據(jù)的應(yīng)用價(jià)值; 另外, 由于設(shè)備供應(yīng)商較多, 各廠商系統(tǒng)互相獨(dú)立, 維護(hù)和管理比較麻煩. 企業(yè)需要一套集動(dòng)態(tài)感知、智能管理、智慧決策為一體的環(huán)保監(jiān)控管理平臺(tái),通過(guò)動(dòng)態(tài)采集環(huán)境在線監(jiān)測(cè)數(shù)據(jù), 匯集污染數(shù)值, 集合各類(lèi)環(huán)境數(shù)據(jù), 形成環(huán)境數(shù)據(jù)專(zhuān)題, 幫助環(huán)境管理者了解環(huán)境現(xiàn)狀、分析環(huán)境問(wèn)題及成因, 實(shí)現(xiàn)對(duì)生態(tài)環(huán)境的精細(xì)監(jiān)管、精準(zhǔn)執(zhí)法、科學(xué)決策.
國(guó)內(nèi)的環(huán)境工作者在改進(jìn)環(huán)境監(jiān)測(cè)方案方面已經(jīng)做出了大量的嘗試和創(chuàng)新, 取得了豐碩的研究成果, 并在實(shí)際應(yīng)用中得到了較好的推廣和應(yīng)用. 2012 年, 王靜等設(shè)計(jì)了一種基于無(wú)線傳感網(wǎng)絡(luò)和GPRS 無(wú)線網(wǎng)絡(luò)的水環(huán)境監(jiān)測(cè)系統(tǒng), 采用分布式數(shù)據(jù)采集方式, 提高了監(jiān)測(cè)精確度, 降低了對(duì)單個(gè)節(jié)點(diǎn)傳感器的精度要求[1].2013 年, 廖玉霞以江河流域水環(huán)境水質(zhì)狀態(tài)為研究對(duì)象, 提出了基于B/S 模式的水環(huán)境監(jiān)測(cè)系統(tǒng)模型, 實(shí)現(xiàn)了對(duì)水質(zhì)參數(shù)的網(wǎng)絡(luò)化、信息化、規(guī)范化管理[2]. 2014年, 吳烈國(guó)設(shè)計(jì)了一套適用于復(fù)雜水域環(huán)境監(jiān)測(cè)的多傳感器數(shù)據(jù)融合機(jī)制, 包括基于自適應(yīng)加權(quán)算法和冗余數(shù)據(jù)融合以及基于彈性BP 網(wǎng)絡(luò)的互補(bǔ)數(shù)據(jù)融合[3].嵇曉燕等闡述了水環(huán)境質(zhì)量監(jiān)測(cè)網(wǎng)絡(luò)的發(fā)展歷程與現(xiàn)狀, 提出建立水環(huán)境質(zhì)量監(jiān)測(cè)網(wǎng)絡(luò)設(shè)計(jì)技術(shù)體系、擴(kuò)大監(jiān)測(cè)網(wǎng)覆蓋面、擴(kuò)展監(jiān)測(cè)項(xiàng)目等建議[4]. 2019 年, 姚國(guó)勤對(duì)環(huán)保大數(shù)據(jù)在環(huán)境污染防治管理中的應(yīng)用進(jìn)行了研究, 提出構(gòu)建環(huán)保大數(shù)據(jù)的共享和應(yīng)用平臺(tái), 實(shí)現(xiàn)環(huán)境污染防治管理的動(dòng)態(tài)模擬以及應(yīng)急預(yù)案的制定,從而提升環(huán)境污染防治管理效率與質(zhì)量[5]. 崔麗萍通過(guò)深入研究, 梳理并提煉大氣環(huán)境污染物監(jiān)測(cè)的方法: 首先針對(duì)目標(biāo)區(qū)域開(kāi)展調(diào)研, 做好基本資料的儲(chǔ)備和各項(xiàng)準(zhǔn)備工作, 其次做好監(jiān)測(cè)點(diǎn)的布設(shè), 最后進(jìn)行采樣與數(shù)據(jù)分析[6]. 車(chē)祥等采用3 臺(tái)傳感器對(duì)環(huán)境空氣中氣態(tài)污染物(NO2、SO2、O3、CO)和顆粒物(PM10、PM2.5)進(jìn)行為期1 個(gè)月的連續(xù)監(jiān)測(cè), 探討了傳感技術(shù)在環(huán)境空氣監(jiān)測(cè)中的方法適用性[7]. 闞麗萍分析了生態(tài)環(huán)境監(jiān)控系統(tǒng)的設(shè)計(jì)架構(gòu), 并探討了生態(tài)環(huán)境監(jiān)控系統(tǒng)在具體應(yīng)用方面的創(chuàng)新與發(fā)展[8]. 劉皎等設(shè)計(jì)了一種基于物聯(lián)網(wǎng)的環(huán)境監(jiān)測(cè)系統(tǒng), 采用ZigBee 傳感網(wǎng)絡(luò)實(shí)時(shí)采集大氣環(huán)境數(shù)據(jù), 并利用4G 網(wǎng)絡(luò)對(duì)采集到的各種數(shù)據(jù)進(jìn)行實(shí)時(shí)傳輸, 能夠?qū)崿F(xiàn)對(duì)環(huán)境溫濕度、CO、NOx、PM2.5等參數(shù)進(jìn)行實(shí)時(shí)顯示及存儲(chǔ)[9]. 韓福財(cái)對(duì)我國(guó)目前對(duì)水環(huán)境的監(jiān)測(cè)所存在的問(wèn)題和加強(qiáng)水環(huán)境監(jiān)測(cè)質(zhì)量控制的相關(guān)措施進(jìn)行了闡述[10].
以上研究主要集中在環(huán)境監(jiān)測(cè)的水質(zhì)或大氣等某個(gè)單項(xiàng), 很少有機(jī)構(gòu)或?qū)W者針對(duì)集成環(huán)境監(jiān)測(cè)問(wèn)題進(jìn)行相應(yīng)探索.
本文研究的重點(diǎn)放在設(shè)計(jì)開(kāi)發(fā)針對(duì)高速公路服務(wù)區(qū)的污水、大氣、噪聲等綜合污染源數(shù)據(jù)的實(shí)時(shí)采集、高速傳輸、智能分析、高效決策等集成環(huán)境監(jiān)測(cè)系統(tǒng).創(chuàng)新性地提出了一種基于微服務(wù)架構(gòu), 采用分治法思想來(lái)構(gòu)建環(huán)境監(jiān)測(cè)系統(tǒng). 具體來(lái)說(shuō), 以往環(huán)境監(jiān)測(cè)系統(tǒng)大都是“單體式”應(yīng)用系統(tǒng), 所有的模塊或子系統(tǒng)只是在系統(tǒng)內(nèi)部邏輯上進(jìn)行了區(qū)分. 本文提出的方法是將“單體式”環(huán)境監(jiān)測(cè)系統(tǒng)分割為面向水質(zhì)、大氣、噪聲和固體廢棄物等多污染源服務(wù)單元. 服務(wù)單元之間在物理層面上實(shí)現(xiàn)了分離, 為可獨(dú)立部署的進(jìn)程, 且各服務(wù)單元之間通過(guò)API 接口相互通信, 從而實(shí)現(xiàn)模塊功能的松耦合. 除此之外, 近年來(lái)在公共服務(wù)、電力能源、智能制造、供應(yīng)鏈、物流、電商、農(nóng)業(yè)、物聯(lián)網(wǎng)等諸多行業(yè)領(lǐng)域都在探索區(qū)塊鏈應(yīng)用[11-15]. 本文率先嘗試將區(qū)塊鏈技術(shù)在環(huán)境監(jiān)測(cè)領(lǐng)域進(jìn)行了探索性應(yīng)用研究.研發(fā)了針對(duì)環(huán)境監(jiān)測(cè)數(shù)據(jù)區(qū)塊鏈中間件(environmental monitoring Blockchain middleware)技術(shù), 將報(bào)警數(shù)據(jù)通過(guò)區(qū)塊鏈中間件寫(xiě)入到區(qū)塊鏈系統(tǒng), 實(shí)現(xiàn)了報(bào)警數(shù)據(jù)可信存儲(chǔ)與驗(yàn)證, 為區(qū)塊鏈技術(shù)在數(shù)字化環(huán)境監(jiān)測(cè)的應(yīng)用做出了較大貢獻(xiàn).
本文的主要研究?jī)?nèi)容包括: (1)研發(fā)監(jiān)測(cè)數(shù)據(jù)采集中間件, 實(shí)現(xiàn)數(shù)據(jù)從傳感器到云服務(wù)器直連, 并通過(guò)Web和移動(dòng)互聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)可視化展示; (2)基于分治法思想結(jié)合微服務(wù)技術(shù)實(shí)現(xiàn)“單體式”應(yīng)用向“微服務(wù)”應(yīng)用改造, 基于多污染源概念將環(huán)境監(jiān)測(cè)業(yè)務(wù)拆分為可獨(dú)立開(kāi)發(fā), 獨(dú)立部署的進(jìn)程, 降低系統(tǒng)模塊間的耦合; (3)針對(duì)環(huán)境監(jiān)測(cè)數(shù)據(jù)海量且結(jié)構(gòu)化的特點(diǎn), 采用多數(shù)據(jù)源結(jié)合時(shí)間戳水平分片的方法實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)管理與查詢(xún)索引, 極大提高了數(shù)據(jù)查詢(xún)檢索效率; (4)研發(fā)環(huán)境監(jiān)測(cè)區(qū)塊鏈中間件, 實(shí)現(xiàn)監(jiān)測(cè)報(bào)警數(shù)據(jù)鏈上存儲(chǔ)與檢索.
本文組織結(jié)構(gòu)如下: 第1 節(jié)從系統(tǒng)實(shí)現(xiàn)角度對(duì)多污染源微服務(wù)架構(gòu)進(jìn)行整體詳細(xì)的闡述; 第2 節(jié)的內(nèi)容是監(jiān)測(cè)數(shù)據(jù)采集中間件設(shè)計(jì)與開(kāi)發(fā)中所涉及的關(guān)鍵技術(shù); 第3 節(jié)主要對(duì)多數(shù)據(jù)源與數(shù)據(jù)分片算法模型的實(shí)現(xiàn)細(xì)節(jié)進(jìn)行介紹說(shuō)明; 第4 節(jié)介紹區(qū)塊鏈微服務(wù)中間件, 包括報(bào)警數(shù)據(jù)的可信存儲(chǔ)與驗(yàn)證; 最后是實(shí)驗(yàn)與總結(jié), 對(duì)系統(tǒng)總體性能進(jìn)行實(shí)驗(yàn)對(duì)比, 并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析總結(jié).
多污染源微服務(wù)架構(gòu)模型如圖1 所示, 包括功能服務(wù)單元和業(yè)務(wù)服務(wù)單元兩種. 其中, 功能服務(wù)單元包括服務(wù)注冊(cè)中心和API 網(wǎng)關(guān), 主要解決智能環(huán)保監(jiān)控管理系統(tǒng)所面臨的海量數(shù)據(jù)存儲(chǔ)和調(diào)度以及大規(guī)模的并發(fā)訪問(wèn)問(wèn)題; 業(yè)務(wù)服務(wù)單元包括用戶管理服務(wù)、污水服務(wù)、噪聲服務(wù)、大氣服務(wù)、中心服務(wù)、數(shù)據(jù)采集服務(wù)和數(shù)據(jù)上鏈服務(wù), 所謂多污染源指的是將環(huán)境監(jiān)測(cè)污染物指標(biāo)劃分為污水、噪聲和大氣等幾大類(lèi), 從單個(gè)分類(lèi)角度來(lái)看, 整體系統(tǒng)的業(yè)務(wù)復(fù)雜度和數(shù)據(jù)規(guī)模都呈線性模型減小, 從而降低了系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)復(fù)雜性, 極大提高了系統(tǒng)的伸縮性和擴(kuò)展性. 除此之外,模型中還包括環(huán)境監(jiān)測(cè)區(qū)塊鏈中間件和數(shù)采平臺(tái)中間件.
圖1 應(yīng)用平臺(tái)微服務(wù)架構(gòu)模型圖
服務(wù)注冊(cè)中心, 對(duì)于注冊(cè)中心來(lái)說(shuō), 服務(wù)單元分為服務(wù)提供者和服務(wù)消費(fèi)者, 負(fù)責(zé)管理、記錄服務(wù)單元的信息, 同時(shí)將符合要求的服務(wù)提供者地址列表返回服務(wù)消費(fèi)者. 服務(wù)消費(fèi)者向注冊(cè)中心訂閱服務(wù), 表達(dá)自己的需求, 然后得到服務(wù)提供者消息, 遠(yuǎn)程調(diào)用即可.
API 網(wǎng)關(guān)是一個(gè)更為智能的應(yīng)用服務(wù)器, 它是微服務(wù)架構(gòu)系統(tǒng)的門(mén)面, 所有的外部訪問(wèn)都要先經(jīng)過(guò)API 網(wǎng)關(guān), 然后API 網(wǎng)關(guān)來(lái)實(shí)現(xiàn)請(qǐng)求路由、負(fù)載均衡、權(quán)限驗(yàn)證等功能, 隨后將各個(gè)訪問(wèn)請(qǐng)求分發(fā)到對(duì)應(yīng)的服務(wù)單元.
(1) 數(shù)據(jù)采集服務(wù)起到了承上啟下的作用, 下接物聯(lián)網(wǎng)中間件, 上接污水、噪聲、大氣服務(wù), 定時(shí)采集最新監(jiān)測(cè)數(shù)據(jù). 數(shù)據(jù)采集服務(wù)采用兩種通信方式: Feign、RabbitMQ. 通過(guò)Feign 與對(duì)應(yīng)服務(wù)單元通信, 獲取服務(wù)區(qū)、監(jiān)測(cè)因子等信息, 查詢(xún)最新數(shù)據(jù), 并通過(guò)RabbitMQ,發(fā)送給其他服務(wù)單元.
(2) 污水服務(wù)是針對(duì)水質(zhì)監(jiān)測(cè)業(yè)務(wù)構(gòu)建的多污染源服務(wù)單元. 主要負(fù)責(zé)服務(wù)區(qū)水質(zhì)監(jiān)測(cè)管理以及水質(zhì)數(shù)據(jù)的標(biāo)準(zhǔn)化處理、存儲(chǔ)、查詢(xún)等. 通過(guò)接收數(shù)據(jù)采集服務(wù)發(fā)送的水質(zhì)監(jiān)測(cè)消息, 標(biāo)準(zhǔn)化處理后存入數(shù)據(jù)庫(kù). 同時(shí)提供標(biāo)準(zhǔn)化的RESTful 接口供服務(wù)消費(fèi)者調(diào)用.
(3) 大氣服務(wù)是針對(duì)大氣監(jiān)測(cè)業(yè)務(wù)構(gòu)建的多污染源服務(wù)單元. 主要負(fù)責(zé)服務(wù)區(qū)的大氣監(jiān)測(cè)管理以及大氣數(shù)據(jù)的標(biāo)準(zhǔn)化處理、存儲(chǔ)、查詢(xún)等. 通過(guò)接收數(shù)據(jù)采集服務(wù)發(fā)送的大氣監(jiān)測(cè)消息, 標(biāo)準(zhǔn)化處理后存入數(shù)據(jù)庫(kù). 提供標(biāo)準(zhǔn)化的RESTful 接口, 供服務(wù)消費(fèi)者調(diào)用.
(4) 噪聲服務(wù)是針對(duì)噪聲監(jiān)測(cè)業(yè)務(wù)構(gòu)建的多污染源服務(wù)單元. 主要負(fù)責(zé)服務(wù)區(qū)的噪聲監(jiān)測(cè)管理以及噪聲數(shù)據(jù)的標(biāo)準(zhǔn)化處理、存儲(chǔ)、查詢(xún)等. 通過(guò)接收數(shù)據(jù)采集服務(wù)發(fā)送的噪聲監(jiān)測(cè)消息, 獲取噪聲數(shù)據(jù), 標(biāo)準(zhǔn)化處理后存入數(shù)據(jù)庫(kù). 提供標(biāo)準(zhǔn)化的RESTful 接口, 供服務(wù)消費(fèi)者調(diào)用.
(5) 中心服務(wù)是數(shù)據(jù)處理的業(yè)務(wù)服務(wù)單元, 包括報(bào)警管理、報(bào)表管理、站點(diǎn)管理等模塊. 通過(guò)Feign 調(diào)用污水服務(wù)、大氣服務(wù)、噪聲服務(wù)接口, 生成報(bào)警信息、報(bào)表等數(shù)據(jù). 通過(guò)RabbitMQ 將用戶操作信息發(fā)送到用戶管理模塊, 生成日志.
(6) 數(shù)據(jù)上鏈服務(wù)負(fù)責(zé)其他服務(wù)單元與區(qū)塊鏈系統(tǒng)的交互. 具體來(lái)說(shuō), 本服務(wù)提供了兩類(lèi)接口, 前者將監(jiān)測(cè)報(bào)警數(shù)據(jù)寫(xiě)入?yún)^(qū)塊鏈分布式賬本; 后者提供了報(bào)警數(shù)據(jù)有效性驗(yàn)證, 驗(yàn)證數(shù)據(jù)在存儲(chǔ)過(guò)程中是否被篡改. , 報(bào)警數(shù)據(jù)由中心服務(wù)中產(chǎn)生, 通過(guò)RabbitMQ 發(fā)送至數(shù)據(jù)上鏈服務(wù), 在此服務(wù)單元中, 報(bào)警數(shù)據(jù)通過(guò)序列化技術(shù)轉(zhuǎn)為JSON 格式, 再通過(guò)環(huán)境監(jiān)測(cè)區(qū)塊鏈中間件將數(shù)據(jù)寫(xiě)入分布式賬本. 有效性驗(yàn)證邏輯與前述數(shù)據(jù)寫(xiě)入類(lèi)似.
環(huán)境監(jiān)測(cè)數(shù)據(jù)數(shù)采平臺(tái)中間件負(fù)責(zé)對(duì)接高速公路服務(wù)區(qū)終端環(huán)境監(jiān)測(cè)設(shè)備, 如圖2 所示, 實(shí)現(xiàn)終端監(jiān)測(cè)設(shè)備與應(yīng)用系統(tǒng)之間的解耦, 極大增加了應(yīng)用系統(tǒng)業(yè)務(wù)以及數(shù)采平臺(tái)自身的擴(kuò)展性.
圖2 數(shù)采平臺(tái)中間件示意圖
其特點(diǎn)體現(xiàn)在: (1)提供獨(dú)立于應(yīng)用系統(tǒng)外的服務(wù)能力, 可服務(wù)擴(kuò)展其他環(huán)保監(jiān)控系統(tǒng); (2)集成HJ 212-2017 與HJ/T212-2005 兩套污染源在線傳輸國(guó)標(biāo), 環(huán)境監(jiān)測(cè)傳感器的接入、管理; (3)提供了基于RESTful接口實(shí)現(xiàn)終端設(shè)備實(shí)時(shí)數(shù)據(jù)獲取以及設(shè)備反向控制;(4) 提供了數(shù)據(jù)庫(kù)訪問(wèn)接口實(shí)現(xiàn)分鐘數(shù)據(jù)、小時(shí)數(shù)據(jù)、天數(shù)據(jù)檢索查詢(xún).
高速公路服務(wù)區(qū)監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)管理面臨以下幾大痛點(diǎn)問(wèn)題: (1)服務(wù)區(qū)數(shù)量多; (2)監(jiān)測(cè)指標(biāo)較多, 分為水質(zhì)、大氣和噪聲3 大類(lèi), 總共30 多個(gè)指標(biāo)參數(shù);(3)監(jiān)測(cè)數(shù)據(jù)回傳頻率高, 每個(gè)服務(wù)區(qū)平均數(shù)分鐘回傳一次監(jiān)測(cè)數(shù)據(jù). 綜上所述, 在高速公路服務(wù)區(qū)應(yīng)用場(chǎng)景下環(huán)境監(jiān)測(cè)數(shù)據(jù)具有海量結(jié)構(gòu)化的特點(diǎn), 在此情形下, 需要針對(duì)該數(shù)據(jù)特點(diǎn)提出特殊的數(shù)據(jù)模型進(jìn)行存儲(chǔ)管理.
本文提出了一種多污染源數(shù)據(jù)分片模型來(lái)解決上述問(wèn)題. 多污染數(shù)據(jù)分片模型的含義分為兩層: (1)基于分治法和微服務(wù)架構(gòu)的多污染源; (2)監(jiān)測(cè)數(shù)據(jù)水平分片算法. 首先前者從系統(tǒng)架構(gòu)上將監(jiān)測(cè)指標(biāo)類(lèi)型分為3 大污染源服務(wù), 與第2 節(jié)中闡述水質(zhì)、大氣和噪聲業(yè)務(wù)服務(wù)單元一一對(duì)應(yīng). 從而業(yè)務(wù)體系上針對(duì)監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)調(diào)度進(jìn)行了一次分流, 將單一數(shù)據(jù)源分為3 個(gè)數(shù)據(jù)源, 減少了系統(tǒng)2/3 的查詢(xún)檢索的時(shí)延, 如圖3 所示.
圖3 多污染源示意圖
除此之外, 多數(shù)據(jù)源還能夠有效地分散對(duì)數(shù)據(jù)庫(kù)單點(diǎn)的訪問(wèn)量; 數(shù)據(jù)分片算法是指數(shù)據(jù)規(guī)模過(guò)大的單表通過(guò)某種算法將表中的數(shù)據(jù)均勻的分散到若干表中,從而達(dá)到降低單表數(shù)據(jù)規(guī)模減少檢索時(shí)延的目的. 本文提出監(jiān)測(cè)數(shù)據(jù)分片算法基于月份時(shí)間戳通過(guò)Hash函數(shù)將監(jiān)測(cè)數(shù)據(jù)動(dòng)態(tài)分配到對(duì)應(yīng)的月份分表中. 使用多主多從的分片方式, 有效的避免數(shù)據(jù)單點(diǎn), 從而提升數(shù)據(jù)架構(gòu)的可用性.
通過(guò)多數(shù)據(jù)源和月份時(shí)間戳的分表進(jìn)行數(shù)據(jù)的拆分來(lái)使得各個(gè)監(jiān)測(cè)數(shù)據(jù)表的數(shù)據(jù)量保持在閾值以下,以及對(duì)流量進(jìn)行疏導(dǎo)應(yīng)對(duì)高訪問(wèn)量, 是應(yīng)對(duì)高并發(fā)和海量數(shù)據(jù)系統(tǒng)的有效手段. 采用本模型之后, 相比傳統(tǒng)單點(diǎn)數(shù)據(jù)庫(kù)在監(jiān)測(cè)數(shù)據(jù)方面的檢索效率提高5-10 倍,而且隨著數(shù)據(jù)條目的增加, 效率會(huì)相對(duì)呈線性增加. 每個(gè)分表中僅含各年份一個(gè)月的監(jiān)測(cè)數(shù)據(jù), 極大提高歷史監(jiān)測(cè)數(shù)據(jù)檢索效率(30 s 穩(wěn)定減少至1.5 s).
多污染源數(shù)據(jù)分片模型算法步驟細(xì)節(jié)說(shuō)明: 假設(shè)監(jiān)測(cè)數(shù)據(jù)集合為D, 多污染的分類(lèi)為K, 月份時(shí)間分類(lèi)Tn(1≤n≤12), 那么模型算法偽代碼可表述為算法1所示.
算法1. 數(shù)據(jù)分片模型算法current_db current_table for (d in D){for (k in K){if (type of d within k) {current_db =: k Td =: hash_mod(d)while (Tn){if (Td= Tn) {current _table = Td insert(current_db, current_table, d)}}}}}}
模型算法具體思路步驟為:
(1) 對(duì)于監(jiān)測(cè)數(shù)據(jù)集中的每筆Datad, 對(duì)于多污染源的每種分類(lèi)k;
(2) 判定Datad是否屬于k分類(lèi), 是, 跳轉(zhuǎn)到流程(3); 否, 跳轉(zhuǎn)到流程(1);
(3) 將當(dāng)前數(shù)據(jù)庫(kù)置為k污染源對(duì)應(yīng)數(shù)據(jù)庫(kù), 根據(jù)hash_mod(d)計(jì)算得到Td, 計(jì)算Datad時(shí)間戳分表;
(4) 遍歷月份時(shí)間分類(lèi)Tn, 如果Td與某個(gè)Tn一致, 則將當(dāng)前current_table 置為T(mén)d月份時(shí)間分表;
(5) 將Datad插入到當(dāng)前指定database 中的當(dāng)前指定分表.
根據(jù)我國(guó)《大氣污染防治法》的規(guī)定, 排污單位應(yīng)當(dāng)對(duì)自動(dòng)監(jiān)測(cè)數(shù)據(jù)的真實(shí)性和準(zhǔn)確性負(fù)責(zé). 因此, 本文引入了區(qū)塊鏈技術(shù)保障監(jiān)測(cè)數(shù)據(jù)在線傳輸和存儲(chǔ)過(guò)程中真實(shí)性和防篡改性, 同時(shí)本研究是區(qū)塊鏈技術(shù)在環(huán)境監(jiān)測(cè)領(lǐng)域第一次創(chuàng)新性應(yīng)用與嘗試.
在本文湖北高速公路服務(wù)區(qū)應(yīng)用場(chǎng)景下, 共有210 個(gè)左右監(jiān)測(cè)點(diǎn), 每個(gè)監(jiān)測(cè)點(diǎn)平均8 個(gè)監(jiān)測(cè)指標(biāo), 上傳頻率為3 min. 監(jiān)測(cè)數(shù)據(jù)的瞬時(shí)峰值可達(dá)1 680 條. 為了保證監(jiān)測(cè)數(shù)據(jù)上鏈過(guò)程的穩(wěn)定性和高可用性, 本文采用了雙緩沖隊(duì)列接入技術(shù)進(jìn)行流量削峰.
如圖4 所示, 區(qū)塊鏈微服務(wù)中間件作為連接環(huán)境監(jiān)測(cè)系統(tǒng)和環(huán)保聯(lián)盟鏈中間節(jié)點(diǎn), 起到承上啟下作用.其核心職責(zé)是以基于RESTful 接口為環(huán)境監(jiān)測(cè)系統(tǒng)提供數(shù)據(jù)上鏈、數(shù)據(jù)溯源和數(shù)據(jù)驗(yàn)證服務(wù).
圖4 區(qū)塊鏈微服務(wù)中間件示意圖
區(qū)塊鏈依托分布式賬本和密碼不可篡改的特性為上層應(yīng)用提供可信的分布式數(shù)據(jù)網(wǎng)絡(luò). 環(huán)境監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)(報(bào)警數(shù)據(jù))通過(guò)區(qū)塊鏈微服務(wù)中間件寫(xiě)入至區(qū)塊鏈系統(tǒng)的賬本中, 可通過(guò)基于區(qū)塊鏈本身的區(qū)塊鏈瀏覽器瀏覽上鏈數(shù)據(jù), 可通過(guò)基于區(qū)塊鏈本身的錢(qián)包應(yīng)用來(lái)管理數(shù)據(jù)資產(chǎn).
在此, 以報(bào)警數(shù)據(jù)的全生命周期視角出發(fā)來(lái)描述環(huán)境監(jiān)測(cè)系統(tǒng)和區(qū)塊鏈微服務(wù)中間件的交互情況.
(1)報(bào)警數(shù)據(jù)通過(guò)TCP/IP 回傳至監(jiān)測(cè)數(shù)據(jù)采集中間件, 再調(diào)用區(qū)塊鏈微服務(wù)中間件數(shù)據(jù)上鏈接口將數(shù)據(jù)寫(xiě)入到區(qū)塊交易中;
(2)通過(guò)監(jiān)測(cè)數(shù)據(jù)采集中間件將數(shù)據(jù)發(fā)送至微服務(wù)環(huán)境監(jiān)測(cè)系統(tǒng)數(shù)據(jù)采集服務(wù), 然后由數(shù)據(jù)采集服務(wù)分發(fā)至中心服務(wù)中存儲(chǔ);
(3)環(huán)境監(jiān)測(cè)系統(tǒng)中心服務(wù)發(fā)起驗(yàn)證流程, 中心服務(wù)首先調(diào)用數(shù)據(jù)采集服務(wù)接口, 由數(shù)據(jù)采集服務(wù)代理向區(qū)塊鏈微服務(wù)中間件發(fā)送報(bào)警數(shù)據(jù), 校驗(yàn)該數(shù)據(jù)是否合法或未修改.
針對(duì)數(shù)據(jù)上鏈可能遇到的TPS 瓶頸問(wèn)題, 本文提出了基于雙緩沖隊(duì)列的多節(jié)點(diǎn)上鏈方法. 如圖5 所示,左側(cè)為環(huán)境監(jiān)測(cè)中間件; 中間為區(qū)塊鏈微服務(wù)中間件,包括雙緩沖隊(duì)列和線程池兩部分; 右側(cè)為環(huán)保聯(lián)盟鏈,其中白色節(jié)點(diǎn)為當(dāng)前可用節(jié)點(diǎn), 灰色節(jié)點(diǎn)為當(dāng)前不可用節(jié)點(diǎn). 環(huán)境監(jiān)測(cè)中間件回傳的數(shù)據(jù)并寫(xiě)入雙緩沖隊(duì)列; 消費(fèi)者通過(guò)讀取緩沖隊(duì)列數(shù)據(jù), 結(jié)合聯(lián)盟鏈中當(dāng)前可用節(jié)點(diǎn)創(chuàng)建上鏈任務(wù)傳入線程池任務(wù)隊(duì)列, 實(shí)現(xiàn)多節(jié)點(diǎn)異步上鏈.
圖5 緩沖隊(duì)列數(shù)據(jù)上鏈模型
這種方式先將數(shù)據(jù)存放到緩沖隊(duì)列, 然后通過(guò)線程池異步上鏈. 與數(shù)據(jù)直接上鏈的方式相比, 很大程度解決了區(qū)塊鏈系統(tǒng)可能存在的TPS 瓶頸問(wèn)題.
本節(jié)針對(duì)環(huán)境監(jiān)測(cè)系統(tǒng)查詢(xún)性能以及系統(tǒng)擴(kuò)展性方面進(jìn)行對(duì)比分析與評(píng)價(jià).
實(shí)驗(yàn)硬件環(huán)境: CPU Intel Core i7-7700 3.6 GHz, 內(nèi)存 16 GB, 硬盤(pán) HDD 2T, 操作系統(tǒng) Windows 10.
實(shí)驗(yàn)軟件環(huán)境: 微服務(wù)開(kāi)發(fā)框架Springcloud Finchley. RELEASE; 區(qū)塊鏈采用井通公鏈; 服務(wù)注冊(cè)中心Netflix Eureka.
(1) 系統(tǒng)查詢(xún)性能對(duì)比分析. 通過(guò)單查詢(xún)和多查詢(xún)?cè)u(píng)價(jià)指標(biāo)分別對(duì)“單體式”系統(tǒng)模型、多污染系統(tǒng)模型、數(shù)據(jù)分片系統(tǒng)模型以及多污染源數(shù)據(jù)分片模型4 類(lèi)系統(tǒng)的隨機(jī)模擬查詢(xún)實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比分析, 此處隨機(jī)模擬指在數(shù)據(jù)時(shí)間序列上進(jìn)行均勻隨機(jī), 對(duì)多次查詢(xún)結(jié)果取平均值.
本實(shí)驗(yàn)結(jié)果中, 針對(duì)各類(lèi)系統(tǒng)模型分別進(jìn)行單次和多次查詢(xún)統(tǒng)計(jì)(10, 20, 30, 40, 50), 實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)各類(lèi)查詢(xún)所造成的系統(tǒng)時(shí)延(單位: ms). 由表1 實(shí)驗(yàn)結(jié)果可知, 從單體模型、多污染模型、數(shù)據(jù)分片系統(tǒng)模型和多污染源數(shù)據(jù)分片模型, 實(shí)驗(yàn)結(jié)果(查詢(xún)時(shí)延)逐步遞減, 說(shuō)明多污染數(shù)據(jù)分片模型在查詢(xún)時(shí)延評(píng)價(jià)指標(biāo)上優(yōu)于其他模型, 且數(shù)據(jù)分片系統(tǒng)模型優(yōu)于單體式模型和多污染模型, 多污染模型優(yōu)于單體式模型.
表1 各系統(tǒng)模型查詢(xún)實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果(ms)
(2) 監(jiān)測(cè)數(shù)據(jù)寫(xiě)入性能對(duì)比分析. 通過(guò)批量寫(xiě)入評(píng)價(jià)指標(biāo)分別對(duì)“單體式”系統(tǒng)模型、多污染系統(tǒng)模型、數(shù)據(jù)分片系統(tǒng)模型以及多污染源數(shù)據(jù)分片模型4 類(lèi)系統(tǒng)的監(jiān)測(cè)數(shù)據(jù)寫(xiě)入操作實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比分析.
本實(shí)驗(yàn)結(jié)果中, 針對(duì)各類(lèi)系統(tǒng)模型分別進(jìn)行批量寫(xiě)入統(tǒng)計(jì)(10 000, 20 000, 50 000, 100 000, 500 000, 1 000 000),實(shí)驗(yàn)統(tǒng)計(jì)各類(lèi)寫(xiě)入操作時(shí)間消耗(單位: s). 由表2 實(shí)驗(yàn)結(jié)果可知, 單體式模型和數(shù)據(jù)分片系統(tǒng)模型寫(xiě)入時(shí)間基本一致, 多污染源模型和多污染源數(shù)據(jù)分片模型寫(xiě)入時(shí)間基本一致. 而后者比前者的寫(xiě)入時(shí)間有較大程度的減少, 由實(shí)驗(yàn)結(jié)果可知, 多污染源模型和多污染源數(shù)據(jù)分片模型在監(jiān)測(cè)數(shù)據(jù)批量寫(xiě)入方面性能提升顯著, 表現(xiàn)出較大優(yōu)勢(shì).
表2 各系統(tǒng)模型寫(xiě)入實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果 (s)
(3) 系統(tǒng)的功能性和擴(kuò)展性分析, 對(duì)傳統(tǒng)單體式監(jiān)測(cè)系統(tǒng)和基于微服務(wù)架構(gòu)與區(qū)塊鏈技術(shù)監(jiān)測(cè)系統(tǒng)在區(qū)塊鏈?zhǔn)褂?、傳感器接入管理和監(jiān)測(cè)指標(biāo)擴(kuò)展3 個(gè)維度進(jìn)行對(duì)比分析. 如表3 所示. 從總的結(jié)果來(lái)看, 基于微服務(wù)架構(gòu)與區(qū)塊鏈技術(shù)相對(duì)于傳統(tǒng)單體式在區(qū)塊鏈?zhǔn)褂谩鞲衅鹘尤牍芾砗捅O(jiān)測(cè)指標(biāo)擴(kuò)展3 個(gè)維度均表現(xiàn)出較大的優(yōu)勢(shì).
表3 監(jiān)測(cè)系統(tǒng)的優(yōu)勢(shì)對(duì)比分析
綜上實(shí)驗(yàn)結(jié)果對(duì)比, 可以得出結(jié)論: 基于微服務(wù)架構(gòu)與區(qū)塊鏈技術(shù)環(huán)境監(jiān)測(cè)系統(tǒng)較其他技術(shù)模型的環(huán)境監(jiān)測(cè)系統(tǒng)在查詢(xún)性能、批量寫(xiě)入性能以及功能性和擴(kuò)展性方面具有較大的優(yōu)勢(shì).
本文提出了一種基于微服務(wù)架構(gòu)的環(huán)境監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)模式, 在此基礎(chǔ)之上提出了多數(shù)據(jù)源結(jié)合基于月份時(shí)間戳的分表方法; 并結(jié)合了一種環(huán)境監(jiān)測(cè)數(shù)據(jù)數(shù)采平臺(tái)中間件技術(shù). 綜上所述, 本系統(tǒng)對(duì)現(xiàn)有環(huán)境監(jiān)測(cè)系統(tǒng)分布式與擴(kuò)展性方面的性能進(jìn)行了優(yōu)化與改進(jìn), 提出了一種新穎的方法解決環(huán)境監(jiān)測(cè)系統(tǒng)海量結(jié)構(gòu)化數(shù)據(jù)的快速檢索問(wèn)題, 對(duì)環(huán)境監(jiān)測(cè)系統(tǒng)的發(fā)展與進(jìn)步有較為明顯的推動(dòng)作用, 具有較大的研究意義.