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