宋 煒
(江蘇省防汛防旱指揮部辦公室,210029,南京)
近年,江蘇省加大防汛決策指揮信息化建設(shè)力度,逐步建成了以信息采集為基礎(chǔ)、通信系統(tǒng)為保障、計算機網(wǎng)絡(luò)系統(tǒng)為依托、決策支持應(yīng)用系統(tǒng)為核心的防汛指揮系統(tǒng)。
防汛指揮系統(tǒng)應(yīng)用現(xiàn)代信息技術(shù),實施防汛信息動態(tài)監(jiān)測,能夠及時采取預(yù)防與補救措施,全面提高防汛抗洪工作的有效性和可靠性,對減少洪水災(zāi)害、緩解防洪壓力、保障人民生命財產(chǎn)安全具有重要作用。然而,當(dāng)前系統(tǒng)在雨量或水位等達到警戒值時,雖能夠發(fā)出報警聲,但必須在系統(tǒng)打開的情況下才能實現(xiàn)。一旦監(jiān)測系統(tǒng)沒有及時打開,預(yù)警功能不能發(fā)揮作用,工作人員看不到報警信息,也就不能及時采取相應(yīng)的措施。因此如何能夠使工作人員隨時隨地及時得到預(yù)警信息,成為防汛監(jiān)測中亟待解決的問題。
現(xiàn)有系統(tǒng)在監(jiān)測預(yù)警方面的主要問題在于:
①缺乏主動性。在用戶離線的情況下,預(yù)警信息不能夠主動推送給用戶。
②缺乏靈活性。預(yù)警信息發(fā)布方式比較單一,不能滿足汛期實時監(jiān)測的要求。
要讓防汛工作人員及時掌握實時信息,為防汛抗旱決策調(diào)度和快速指揮搶險作準(zhǔn)備,就需要系統(tǒng)能夠主動把報警信息推送至工作人員的電腦桌面,或以短消息、圖片的形式發(fā)到移動設(shè)備上。
江蘇省防汛防旱監(jiān)測預(yù)警系統(tǒng)是基于面向服務(wù)的體系結(jié)構(gòu),應(yīng)用.NET Framework 平臺、Web Service、PUSH 技術(shù)、自適應(yīng)實時數(shù)據(jù)掃描算法等先進技術(shù),建成了一個自動化程度高、自適應(yīng)能力強、實時性、用于全省雨水情的綜合監(jiān)測預(yù)警系統(tǒng)。系統(tǒng)軟件架構(gòu)如圖1所示。
預(yù)警系統(tǒng)作為中間件運行在服務(wù)器上,為其他應(yīng)用程序提供預(yù)警服務(wù),預(yù)警服務(wù)通過WSDL標(biāo)準(zhǔn)來描述其提供的服務(wù),向外界的應(yīng)用程序提供接口,使預(yù)警信息可以發(fā)布到各個應(yīng)用層平臺上,具有較強的通用性。
數(shù)據(jù)管理、預(yù)警管理與預(yù)警發(fā)布管理3個模塊安裝在服務(wù)器端,由于交互性較強,采用B/S架構(gòu),基于ASP.NET的MVC模式設(shè)計。預(yù)警分析引擎也安裝在服務(wù)器端,由于不需要進行詳細(xì)的配置,采用C/S架構(gòu)。服務(wù)器端實現(xiàn)遠(yuǎn)程數(shù)據(jù)管理、預(yù)警規(guī)則設(shè)定、預(yù)警分析處理等功能,在接收到實時數(shù)據(jù)后,進行分析計算,判別是否超警,同時生成預(yù)警消息,推送至客戶端。
預(yù)警發(fā)布模塊安裝在客戶端,通過socket通信實時獲取預(yù)警計算結(jié)果,并及時推送到客戶端桌面,從而完成預(yù)警消息發(fā)布。
圖1 系統(tǒng)軟件架構(gòu)
江蘇省防汛防旱監(jiān)測預(yù)警系統(tǒng)包括數(shù)據(jù)管理、預(yù)警分析引擎、預(yù)警管理、預(yù)警發(fā)布四個功能模塊。
數(shù)據(jù)管理模塊是系統(tǒng)的數(shù)據(jù)管理部分,將預(yù)警管理數(shù)據(jù)進行封裝,對系統(tǒng)在預(yù)警分析中所涉及的各類數(shù)據(jù)進行存取管理,包括水、雨、旱情實時數(shù)據(jù)的讀取,各類預(yù)警管理、消息管理數(shù)據(jù)的存取,同時包括用戶相關(guān)的各種信息。
數(shù)據(jù)管理模塊作為后臺服務(wù)運行在服務(wù)器端,根據(jù)預(yù)設(shè)時間對基礎(chǔ)數(shù)據(jù)庫進行掃描,獲取預(yù)警時間段內(nèi)的數(shù)據(jù)并保存,以供預(yù)警分析引擎進行數(shù)據(jù)處理。數(shù)據(jù)管理類結(jié)構(gòu)如圖2所示。
圖2 數(shù)據(jù)管理類結(jié)構(gòu)圖
該模塊采用通用模塊,對遠(yuǎn)程數(shù)據(jù)庫進行動態(tài)監(jiān)視,并根據(jù)預(yù)警管理模塊中設(shè)定的預(yù)警規(guī)則,自動掃描并篩選出符合預(yù)警條件的數(shù)據(jù)。防旱監(jiān)測預(yù)警系統(tǒng)中,所有對數(shù)據(jù)庫的操作都是通過調(diào)用數(shù)據(jù)管理模塊提供的公共方法,或是對公共方法的組合來完成的。該模塊的特性是封裝性強、安全性高、靈活性好。通過封裝的數(shù)據(jù)庫操作方法,只提供對外接口,使得結(jié)構(gòu)統(tǒng)一,方便管理。通過對配置文件的修改與處理,可以靈活運用到不同數(shù)據(jù)庫環(huán)境下的各種系統(tǒng)中。
預(yù)警分析引擎是防汛防旱監(jiān)測預(yù)警系統(tǒng)的核心模塊。根據(jù)雨情、水位和流量預(yù)警設(shè)計相應(yīng)的預(yù)警規(guī)則,預(yù)警分析引擎集成各種預(yù)警規(guī)則,形成規(guī)則庫,依據(jù)預(yù)警規(guī)則對獲取的數(shù)據(jù)進行分析,以判定數(shù)據(jù)的可靠性以及是否需要預(yù)警。同時對需要預(yù)警的數(shù)據(jù)進行消息制定,提交給預(yù)警發(fā)布模塊。
該模塊在設(shè)計和開發(fā)中采用了開放的、可擴展的基于服務(wù)的軟件體系結(jié)構(gòu),使其可以無縫集成到已有的系統(tǒng)以及新開發(fā)的系統(tǒng)當(dāng)中,為其他應(yīng)用系統(tǒng)提供預(yù)警服務(wù)。同時,采用了自適應(yīng)的實時數(shù)據(jù)掃描算法,當(dāng)在需要預(yù)警的時間段內(nèi)未掃描到水雨情數(shù)據(jù)時,引擎會自動縮短數(shù)據(jù)掃描時間,若在一段時間內(nèi)仍未獲取數(shù)據(jù),才判定數(shù)據(jù)并不存在,恢復(fù)預(yù)設(shè)的掃描時間。此特性可防止因網(wǎng)絡(luò)堵塞或故障帶來的數(shù)據(jù)傳輸延遲而造成數(shù)據(jù)遺漏的情況,同時也保證了預(yù)警數(shù)據(jù)的實時性。
下面以流量預(yù)警為例。
①流量預(yù)警規(guī)則:對8:00流量超預(yù)警門檻值的設(shè)定站點,發(fā)布一次預(yù)警;以后每過2小時巡查一次,將流量與上次預(yù)警時流量比較,如增幅達到或超過預(yù)警要求,發(fā)布預(yù)警。
②性能設(shè)計:根據(jù)自適應(yīng)實時數(shù)據(jù)掃描算法,對數(shù)據(jù)進行頻率變換掃描,當(dāng)某測站到達巡查時間后,每5分鐘巡查一次數(shù)據(jù)庫,若半小時后仍未巡查到數(shù)據(jù),則停止頻繁巡查,預(yù)警至下次巡查時間進行。
預(yù)警管理是系統(tǒng)的后臺配置模塊。本模塊基于MVC設(shè)計模式,對用戶、監(jiān)測站點、預(yù)警門檻值、預(yù)警類型、預(yù)警消息等信息,能夠針對不同時段、不同測站、不同地區(qū)進行方便靈活的詳細(xì)配置,從而修改數(shù)據(jù)管理與分析引擎的建模和分析策略模型,對預(yù)警系統(tǒng)進行管理。
預(yù)警發(fā)布模塊主要實現(xiàn)預(yù)警消息的發(fā)布及推送,由預(yù)警發(fā)布服務(wù)端、預(yù)警接收客戶端、配置文件以及日志文件所組成。
本模塊采用兩種方式實現(xiàn)實時報警功能:
①利用PUSH技術(shù),將預(yù)警消息推送到工作人員桌面電腦和移動終端。預(yù)警消息被制作成標(biāo)準(zhǔn)格式的通信包推送至客戶端,客戶端在接收到通信包之后,以短信、聲音等方式,通知給有關(guān)防汛值班人員。
②提供與其他應(yīng)用程序的服務(wù)接口,照標(biāo)準(zhǔn)格式協(xié)議,將預(yù)警數(shù)據(jù)與消息數(shù)據(jù)存放于數(shù)據(jù)庫中,可供其他應(yīng)用系統(tǒng)所讀取調(diào)用。
江蘇省防汛防旱監(jiān)測預(yù)警系統(tǒng)從2011年開始在江蘇省防辦投入使用,在汛期該系統(tǒng)已產(chǎn)生了數(shù)千條預(yù)警信息,預(yù)警及時。
本系統(tǒng)在OSB服務(wù)總線上以代理服務(wù)呈現(xiàn),其他應(yīng)用系統(tǒng)通過服務(wù)總線驗證服務(wù)安全策略,可以調(diào)用其服務(wù)取得預(yù)警信息并展現(xiàn)。通過標(biāo)準(zhǔn)接口,該服務(wù)可以為江蘇省各級防汛指揮系統(tǒng)的應(yīng)用程序所調(diào)用,具有極好的通用性。
使用基于服務(wù)架構(gòu)的監(jiān)測預(yù)警系統(tǒng)具有較好的靈活性、通用性及可擴展性,同時利用PUSH技術(shù),“主動”將預(yù)警信息推送,使防汛工作人員能夠隨時隨地靈活地掌握各類重要的防汛防旱預(yù)警信息,極大提高了防汛防旱搶險救災(zāi)應(yīng)急指揮能力。目前,本系統(tǒng)主要對水情、雨情進行實時監(jiān)測預(yù)警,將來旱情預(yù)警、工情預(yù)警以及防汛啟動條件預(yù)案可以分別對相應(yīng)的基礎(chǔ)數(shù)據(jù)與警戒值進行比較,對超出警戒范圍的要素進行預(yù)警,具有極強的可擴展性。