賈 佳 邱曙光 白若琛 龐成鑫
(上海電力大學電子與信息工程學院 上海 200090)
水利信息化是現代化水利的重要組成部分,“十三五”期間水利部提出要以水利信息化帶動水利現代化[1],加強基礎設施和保障環境建設,全面推進全國水利信息化。現如今,城市水利信息采集及管理由人工測試記錄逐步轉變為各種智能化管理模式,如:智能管理采用遙感、空間定位、衛星航空定位、視頻監控等科學手段,動態監測主要河流湖泊、濱水海岸線和河道采砂。[2],但是上述技術均無法實現全方位的監控和調度、各個水文站信息相對獨立,易造成偏遠區域河流采砂監測不完善,干流流域私自采砂現象影響河道正常的行洪與泄洪等現象。協調管理機制的不完善使得很多河流無法得到應有的管理,導致水環境污染問題不斷加重[3]。因此,管理部門需要及時調查取證,掌握實時動態,以免造成很多不必要的麻煩。
低功耗廣域網絡(Low Power Wide Area Network,LPWAN)是具有超低功耗、廣覆蓋、低帶寬、低速率、支持海量連接的物聯網技術[4],適合狀態變化慢、采集頻次低、實時性要求低、分布松散的“小數據”連接。LPWAN網絡常見技術有LoRa、NB-IoT、SigFox、LTE-M、RPMA、Weightless、Amber Wireless等。
SOA(Service Oriented Architecture)是一個業務驅動的框架[5],集成了對業務流程和IT基礎設施的之處,提供安全、標準、可重用的組件,即服務;通過接口來實現各模塊間的通信,接口的方式降低了模塊之間的耦合度,從而使各種新舊系統進行無縫整合;具有基于標準、松散耦合、共享服務、粗粒度和聯合控制等優勢,可以有效地解決傳統集成方案存在的弊端,簡化了應用間集成拓撲結構[6],采用開放的標準,實現了不同系統間的消息、事件和服務層面的動態的互聯互通,更有利于不同系統間的互操作性的提高[7]。
企業服務總線(Enterprise ServiceBus,ESB)是構建基于SOA解決方案時所使用基礎架構的關鍵部分[8],是由中間件技術實現并支持SOA的一組基礎架構功能。
本文將SOA的設計思想引入到水質自動化監測系統的平臺設計中,使用SSM框架同時融合了ESB系統為實現各異構系統平臺共同接入為智慧河道管理系統提供更多服務,吸取SOA面向服務架構的優點,使平臺具有更好的服務性、多源融合性及科學性等。系統整體架構如圖1所示。

圖1 基于SOA的河道管理系統架構
(1) 數據持久層。數據持久層是專門負責數據持久化的邏輯層,提供對數據庫的CRUD(增刪改查)操作[9]。持久層使用MySQL和MongoDB數據庫進行存儲以實現數據持久性,并且可以實現Device Shadow和HTTP服務。本文通過阿里云物聯網套件作為中間件來實現數據鏡像存儲,同時定義了大量HTTP接口為用戶界面服務提供幫助。
(2) 系統服務管理層。系統服務管理層是共享和交換底層數據的核心部分[10],是業務系統各個功能和任務的抽象和封裝,其功能實現主要依賴于適配器和企業服務總線。該平臺包含五類服務:設備管理傳輸服務、河道信息傳輸服務、權限信息傳輸服務、水質監測傳輸服務、數據采集傳輸服務。
高中是學生學習知識的關鍵期,這也是大家公認的一個特殊時期。那么,面對這個特殊時期,學生和教師都應該繃緊“一根弦”—學生要讓自己踏上接受高等教育的道路,而教師則要將學生送上他們理想的高等學府。但是,這所有的一切都是建立在教師的高效教學和學生的高效學習的基礎之上的。根據調查顯示,“多元互動”式的合作學習就是一個不可多得且十分高效的教學方法。其以“互動”“合作”為手段,以教學課堂為依托,進而實施“多元互動”式的合作學習,以促進學生的知識吸收,提升高中語文課堂的教學效率。
(3) 應用展示層。應用展示層通過Echart庫向用戶展示區域內所有河道位置及放置傳感器的點位信息;結合Web服務技術跨平臺向用戶動態展示河道相關數據、地理位置、水質等級、各水質參數走勢等。
基于SOA架構設計如圖1中各類服務,將通用服務接口搭載在ESB上,這些服務通過不同協議、接口對采集到的數據及需要發送的數據進行系統化管理,同時為應用端服務提供基礎。主要服務功能如下:
(1) 設備管理傳輸服務:使用SOAP輕量型協議與服務器進行消息交換[11]、消息控制,實現包括:對鏡像阿里云設備進行激活,添加收發規則引擎對各套件設備數據格式、規則詳情進行控制管理,設置設備連接等。
(2) 河道信息傳輸及權限服務:將河道專題圖、河道基本信息、河流長辦公信息、河道統計、用戶角色設定、對應權限等上傳至基本管理應用中。
(3) 水質監測傳輸服務:將訓練好的深度學習算法網絡存儲在云端,解析后的數據通過該服務調取模型進行運算,實現云端數據智能化分析和預測。
(4) 數據采集傳輸服務:通過Socket連接網關網絡服務器,從中提取JSON格式數據,對原生數據及無人機視頻資料進行存儲。所有服務在應用服務器中均可按需進行調用實現相應功能。
河道監測平臺集成了包括水文站人工采集信息、傳感器監測信息、沿岸涉水信息、各類河道新聞資訊、河道管理規則、沿河視頻監控等多方面數據資源。
系統采用中間件模式統一管理各種異構數據庫,遺留系統和Web資源。中間件位于異構數據源系統(數據層)和應用程序(應用層)之間[12],向下可以協調各數據源系統,向上可以為訪問集成數據的應用提供統一數據模式和數據訪問的通用接口。各水質傳感器可基于不同的LPWAN技術進行組網,以實現低功耗、長距離數據采集及傳輸。不同系統的網關NS通過Websocket技術與阿里云物聯網套件SDK相連接,組成數據流通中間件。SDK接收到采集數據后,形成設備影子數據,通過Topic傳輸設備影子數據,將原始數據存儲在云服務器中并進行算術處理;水質傳感器通過RS485/232分別與各協議集中器相連接,遵循LoRaWAN、CoAP、UDP等不同協議規定將各類低功耗物聯網數據傳輸至網關NS,從而實現多源數據的接入,如圖2所示。

圖2 多協議數據接入
針對上述系統中接入的異構數據,采用三層B/S架構,服務器分為存儲服務器、運算服務器及應用服務器。數據存儲模式為“主存-輔存”模式[13],其中存儲服務器中的數據庫是主數據庫,用于存儲不同協議接入的各類原生數據(包括JSON、XMl等)及解析后數據。
采集出的數據根據類型可以分為結構化數據和非結構化數據[14],其中:結構化數據有傳感器采集數據、設備狀態信息、網關實時狀態設備等;非結構化數據有運算產生的圖表、頁面展示目錄信息、地理信息、遙感信息等。
結構化數據采用分布式關系型數據庫(MySQL)進行存儲。數據以表-字段形式存儲在數據庫中, 將數據表水平拆分到后端的每個分數據庫的分表中。根據不同狀態及服務,本文將數據庫文件分為 “系統”“用戶”“云端”“終端”。分別管理河道基本信息、河道定位坐標、傳感器設備控制命令、采集數據等。數據庫中每個分庫負責每一份數據的讀寫操作,從而有效地分散了整體的訪問壓力, 提高了大型數據訪問效率。
對半結構及非結構數據采用分布式文檔存儲數據庫(MangoDB)。實現對JSON格式文本進行動態查詢,同時查詢文檔中內嵌的對象及數組、關鍵段提取等; 對非結構化類數據,如無人機采集視頻數據進行結構轉換、清除無用數據等處理。
系統應用層使用MVC架構,將用戶界面與邏輯運算分離,實現代碼模塊化。用戶請求通過前端.jsp代碼,將用戶請求發送到Dispatch Servlet,隨后通過.jsp中的URL地址查找Handler Mapping將請求分派給相應的Handler(Controller),調用相應的邏輯運算對請求進行處理,如監測數據查詢服務、獲取產品設備狀態、地理信息獲取、控制數據查詢間隔、預警信息讀取等服務,處理完成后將ModelAndView再傳回Dispatcher Servlet,并將視圖渲染到對應的JSP。
平臺采用JavaScript技術實現的可視化庫ECharts來更直觀地呈現河道水質監測不同參數的變化情況,動態表圖展示參數走勢。該平臺可在PC和移動設備上順利運行,并與大多數當前瀏覽器兼容。提供可視化、交互式和高度可定制的數據可視化圖表;同時,ECharts通過增量渲染技術支持Canvas / SVG雙引擎渲染,可以實現數千萬的數據渲染[15]。該平臺基于ECharts庫,使前端能夠可視化大量監控數據的呈現,并具有平滑的動態效果。
河流評估主要根據代表監測點的數據和河段的監測來評估河流或河段的分數[16]。僅在河道中放置一組傳感器遠不能準確測評出整條河道的水質信息,因此在進行監測、預警設計前針對一條河道分為N段,每段長度約為河寬的5~10倍,連續放置M類傳感器在各河段進行數據采集,采用評價河段-監測點-監測河段-監測河道的技術路線,最終綜合各河段數據以保證整條河道監測的完整性,如圖3所示。設計包括對整條河道水質等級的監測及對一條河中某河段的某一參數進行預測報警。同時,對數據進行質量檢測,包括對采集數據的合理性和時間連續性進行檢查,對不符合檢查標準的數據自動標注為異常數據,為下文數據深度應用與挖掘提供支持。

圖3 傳感器監測點位
監測技術是監測和測量水中污染物類型,各種污染物濃度及其變化以評估水質的過程。模型使用常見的BP神經網絡,具有前向傳播反饋功能,能夠更好地修正各層級間權值問題,找出最優解。由于BP網絡容易陷入局部最優解,因此利用PSO對BP網絡進行參數優化,PSO是基于種群的一種演化算法,根據個體對環境的適應度來決定個體是否能移動到好的區域[17],使被優化算法具有更快收斂速度、更強的搜索能力和適用性等。
利用采集到的一個月的水質數據進行訓練,設置輸入層為五類傳感器參數,根據中國水質分類文件《地表水環境質量標準GB3838—2002》將輸出分為I、II、III、IV、V類,即輸出向量為[1,2,3,4,5]。對河道中每一段進行檢測。最終,所有河段中當Ⅰ~Ⅲ類大于90%時判斷整條河質量為優,Ⅰ~Ⅲ類大于等于75%且小于90%時為良,以此類推,如圖4所示。

圖4 監測預測模型選擇設計框圖
預警信息包括監測預警對象、監測預警結果兩部分[18]。當用戶選擇AR模型時,選調器跳轉到AR模塊進行運算,具體方法如下:以河道中pH值為例,預警對象為河道未來幾天pH值,預測模型選用回歸模型:
xt=?1xt-1+?2xt-2+…+?nxt-n+at
(1)
式中:xt-i(i=0,1,2,…,n)為歷史數據;?n(i=0,1,2,…,n)為模型系數;at為均值為0、方差為δ2的平穩白噪聲序列。傳感器信息輸入模型后,根據預測值與實際值之間差值,在規定的閾值范圍內進行報警判斷,預警信息標志分別設為“0”“1”,通過Ajax技術返回預警標志“1”對應的文字警報信息,實現自動化監控預警。該數據運算均在運算服務器中,采用多線程處理和并行計算模式完成多不同河段pH值、ORP、溶解氧等多類數據質量檢查、數據滑動平均、迭代預測等處理流程。
上述監測及預測算法模型均基于MATLAB 2017平臺進行搭建,通過MATLAB核心算法庫設計數據處理算法,使用其中的Deploytools工具箱將.m文件生成Java包,從而在Java中對不同算法函數進行調用,實現同步算法的輸入輸出管理。采用Redis (Remote dictionary server) 緩存服務器和線程池技術對同一算法進行多次處理及結果存儲,實現高效和簡潔的編程,提高算法導入后的應用效果。
監測算法仿真、測試仿真過程中,訓練數據選取總體樣本的前2/3,共1 200組數據(包含五種水質等級數據)進行PSO-BP模型訓練。
PSO-BP模型通過設置粒子數量、迭代次數、粒子運動次數對BP網絡中net.iw{1,1}、net.b{1}、net.lw{2,1}及net.b{2}(不同層級間權值)依次進行迭代最優值計算。其中網絡參數設置為:網絡輸入輸出層元素個數分別為五類傳感器及其對應等級;最大收斂次數為1 000;收斂誤差為1e-50;學習速率為10e-4;網絡以RMSE為性能函數測試不同隱藏層層數最終確定隱藏層數為6層。
(2)
經過多次訓練,選取RMSE結果為0.008 9的網絡固定網絡參數。輸入新的測試集(樣本后1/3),結果如圖5所示。橫坐標為訓練集樣本個數,其中每一個樣本都包含五個數值即五類水質參數值??v坐標即每個樣本對應的水質等級。圖中期望輸出即原始樣本,也就是每個樣本應當輸出的等級值;預測輸出即拿原始輸入樣本通過上述訓練網絡后的輸出結果,對比可見預測值基本在期望值上下浮動。

圖5 PSO-BP模型測試
通過圖6所示的誤差分析,可以更加直觀地看出這些誤差基本維持在±0.5內,由于樣本等級間隔為1,對于間誤差的數據可以通過程序判斷來進行校正。

圖6 誤差分析(PSO-BP模型)
為了更加確保該模型不僅整體預測效果佳,同時對局部數據也有較強的可靠性,因此分別對不同算法模型下不同等級的新樣本數據進行計算,測試結果見表1??梢悦黠@看出PSO-BP算法測試中誤差不超過1.5%,可以完全適用于河道預測。

表1 不同算法模型下新樣本數據測試
預測算法仿真中,由于預測值和歷史數據間關系密切,因此,在采集數據時對一個站點采集頻率設置為24次/天,對一個站點一天內采集到的數據進行切尾均值計算,得出該站點當天pH情況;對整條河道所有站點進行切尾均值后得出整條河道的綜合值作為該河道當天pH值。
測試選用河道pH樣本中的前80個數據作為歷史數據,預測隨后5天數據,如圖7所示,其中“*”為真實樣本數據,“△”為通過AR模型后的預測值。通過式(2)的計算得出其RMSE為1.6%,基本可以滿足預測。

圖7 pH值預測結果(AR模型)
系統采用Eclipse平臺進行開發,使用Java語言進行編寫,基于ASP.net、SOA 架構,利用HTML、CSS、JavaScript及服務器腳本,開發了上海市智慧河道云平臺。平臺實現融合多協議傳感器數據接入,同時對接嘉定區水利局河道數據信息,提供真實可靠的數據采集展示平臺。
平臺運行界面如圖8所示。圖8(a)展示了河道管理平臺的整體功能分布及數據采集控制部分。該平臺通過河道經緯度及百度地圖插件將所有監測河道標記在地圖中,同時實現了河道沿河管理、傳感設備的隨時監控、數據實時采集、水質數據PDF生成等功能。針對河道中放置的采集傳感器,設計自由組合命令方式,根據用戶需求設置發送設備的入網時間、發送內容、定時發送等功能,使平臺更加貼合實際使用。圖8(b)展示了平臺在線水質監測部分。在線監測以5 s為周期自動更新各個監測數據,使用柱狀圖直觀展示河道參數走勢,便于分析,分析、預測中可以選擇不同的河道進行分析、預測天數、預測參數等,另外還有大屏顯示頁面,手機端頁面等綜合上述功能。點擊大屏頁面地圖中不同區域,通過Ajax技術使網頁迅速跳轉至區域河道信息展示,顯示河道中設備狀態、河道等級、及各參數狀態等。

(a) 云平臺界面
本文搭建了基于SOA架構的“云管端”一體化服務平臺?;贚PWAN的低功耗物聯網平臺,借助阿里云中間件實現多種協議數據接入,形成多源異構的平臺。結構化數據設計了針對用戶數據分析的監測、預測系統,將PSO-BP及AR算法嵌入應用服務器內使用以便用戶在平臺進行實時監測。
同時,平臺可以從多方面清晰地描述河湖健康與環境壓力響應關系、系統地識別河湖健康狀況,為揭示受損成因提供幫助;緊密結合河流和湖泊系統的任務要求,為加強河流和湖泊管理提供支持;多源融合數據訪問可以為不同地區和類型的河流和湖泊健康評估的交叉參考比較提供支持;河流和湖泊的環境條件和評價指標驗證了該平臺是一種高效、經濟的監測和管理平臺。