防汛防旱监测预警的研究与应用
2014-10-25宋炜
宋 炜
(江苏省防汛防旱指挥部办公室,210029,南京)
近年,江苏省加大防汛决策指挥信息化建设力度,逐步建成了以信息采集为基础、通信系统为保障、计算机网络系统为依托、决策支持应用系统为核心的防汛指挥系统。
防汛指挥系统应用现代信息技术,实施防汛信息动态监测,能够及时采取预防与补救措施,全面提高防汛抗洪工作的有效性和可靠性,对减少洪水灾害、缓解防洪压力、保障人民生命财产安全具有重要作用。然而,当前系统在雨量或水位等达到警戒值时,虽能够发出报警声,但必须在系统打开的情况下才能实现。一旦监测系统没有及时打开,预警功能不能发挥作用,工作人员看不到报警信息,也就不能及时采取相应的措施。因此如何能够使工作人员随时随地及时得到预警信息,成为防汛监测中亟待解决的问题。
一、需求分析
现有系统在监测预警方面的主要问题在于:
①缺乏主动性。在用户离线的情况下,预警信息不能够主动推送给用户。
②缺乏灵活性。预警信息发布方式比较单一,不能满足汛期实时监测的要求。
要让防汛工作人员及时掌握实时信息,为防汛抗旱决策调度和快速指挥抢险作准备,就需要系统能够主动把报警信息推送至工作人员的电脑桌面,或以短消息、图片的形式发到移动设备上。
二、技术方案
江苏省防汛防旱监测预警系统是基于面向服务的体系结构,应用.NET Framework 平台、Web Service、PUSH 技术、自适应实时数据扫描算法等先进技术,建成了一个自动化程度高、自适应能力强、实时性、用于全省雨水情的综合监测预警系统。系统软件架构如图1所示。
预警系统作为中间件运行在服务器上,为其他应用程序提供预警服务,预警服务通过WSDL标准来描述其提供的服务,向外界的应用程序提供接口,使预警信息可以发布到各个应用层平台上,具有较强的通用性。
数据管理、预警管理与预警发布管理3个模块安装在服务器端,由于交互性较强,采用B/S架构,基于ASP.NET的MVC模式设计。预警分析引擎也安装在服务器端,由于不需要进行详细的配置,采用C/S架构。服务器端实现远程数据管理、预警规则设定、预警分析处理等功能,在接收到实时数据后,进行分析计算,判别是否超警,同时生成预警消息,推送至客户端。
预警发布模块安装在客户端,通过socket通信实时获取预警计算结果,并及时推送到客户端桌面,从而完成预警消息发布。
三、系统功能
图1 系统软件架构
江苏省防汛防旱监测预警系统包括数据管理、预警分析引擎、预警管理、预警发布四个功能模块。
1.数据管理
数据管理模块是系统的数据管理部分,将预警管理数据进行封装,对系统在预警分析中所涉及的各类数据进行存取管理,包括水、雨、旱情实时数据的读取,各类预警管理、消息管理数据的存取,同时包括用户相关的各种信息。
数据管理模块作为后台服务运行在服务器端,根据预设时间对基础数据库进行扫描,获取预警时间段内的数据并保存,以供预警分析引擎进行数据处理。数据管理类结构如图2所示。
图2 数据管理类结构图
该模块采用通用模块,对远程数据库进行动态监视,并根据预警管理模块中设定的预警规则,自动扫描并筛选出符合预警条件的数据。防旱监测预警系统中,所有对数据库的操作都是通过调用数据管理模块提供的公共方法,或是对公共方法的组合来完成的。该模块的特性是封装性强、安全性高、灵活性好。通过封装的数据库操作方法,只提供对外接口,使得结构统一,方便管理。通过对配置文件的修改与处理,可以灵活运用到不同数据库环境下的各种系统中。
2.预警分析引擎
预警分析引擎是防汛防旱监测预警系统的核心模块。根据雨情、水位和流量预警设计相应的预警规则,预警分析引擎集成各种预警规则,形成规则库,依据预警规则对获取的数据进行分析,以判定数据的可靠性以及是否需要预警。同时对需要预警的数据进行消息制定,提交给预警发布模块。
该模块在设计和开发中采用了开放的、可扩展的基于服务的软件体系结构,使其可以无缝集成到已有的系统以及新开发的系统当中,为其他应用系统提供预警服务。同时,采用了自适应的实时数据扫描算法,当在需要预警的时间段内未扫描到水雨情数据时,引擎会自动缩短数据扫描时间,若在一段时间内仍未获取数据,才判定数据并不存在,恢复预设的扫描时间。此特性可防止因网络堵塞或故障带来的数据传输延迟而造成数据遗漏的情况,同时也保证了预警数据的实时性。
下面以流量预警为例。
①流量预警规则:对8:00流量超预警门槛值的设定站点,发布一次预警;以后每过2小时巡查一次,将流量与上次预警时流量比较,如增幅达到或超过预警要求,发布预警。
②性能设计:根据自适应实时数据扫描算法,对数据进行频率变换扫描,当某测站到达巡查时间后,每5分钟巡查一次数据库,若半小时后仍未巡查到数据,则停止频繁巡查,预警至下次巡查时间进行。
3.预警管理
预警管理是系统的后台配置模块。本模块基于MVC设计模式,对用户、监测站点、预警门槛值、预警类型、预警消息等信息,能够针对不同时段、不同测站、不同地区进行方便灵活的详细配置,从而修改数据管理与分析引擎的建模和分析策略模型,对预警系统进行管理。
4.预警发布
预警发布模块主要实现预警消息的发布及推送,由预警发布服务端、预警接收客户端、配置文件以及日志文件所组成。
本模块采用两种方式实现实时报警功能:
①利用PUSH技术,将预警消息推送到工作人员桌面电脑和移动终端。预警消息被制作成标准格式的通信包推送至客户端,客户端在接收到通信包之后,以短信、声音等方式,通知给有关防汛值班人员。
②提供与其他应用程序的服务接口,照标准格式协议,将预警数据与消息数据存放于数据库中,可供其他应用系统所读取调用。
四、应用实效
江苏省防汛防旱监测预警系统从2011年开始在江苏省防办投入使用,在汛期该系统已产生了数千条预警信息,预警及时。
本系统在OSB服务总线上以代理服务呈现,其他应用系统通过服务总线验证服务安全策略,可以调用其服务取得预警信息并展现。通过标准接口,该服务可以为江苏省各级防汛指挥系统的应用程序所调用,具有极好的通用性。
五、结 语
使用基于服务架构的监测预警系统具有较好的灵活性、通用性及可扩展性,同时利用PUSH技术,“主动”将预警信息推送,使防汛工作人员能够随时随地灵活地掌握各类重要的防汛防旱预警信息,极大提高了防汛防旱抢险救灾应急指挥能力。目前,本系统主要对水情、雨情进行实时监测预警,将来旱情预警、工情预警以及防汛启动条件预案可以分别对相应的基础数据与警戒值进行比较,对超出警戒范围的要素进行预警,具有极强的可扩展性。