彭海鹰,王用红,张云飞,陈亚明
(1.南京市水利局,江苏 南京 211100;2.河海大学计算机与信息学院,江苏 南京 211100)
2014年第二届青奥会将在南京举办,在运动会筹办、举行阶段,都需要使用到大量的水利信息,同时,作为南京青奥会帆船比赛场地的金牛湖本身就是南京市的重要水库,为了保证青奥会的顺利举办,根据青奥会筹办工作和运动会召开阶段的具体需求,需建设南京青奥会防汛专题系统,提供相应的水雨情信息服务和相关预警功能支撑。
南京青奥会防汛专题系统主要由2大部分组成:数据转换和功能展示系统。其中数据转换系统将远程数据库中的实时水雨情数据汇集到本地数据库中供功能展示系统进行查询分析;功能展示系统以地图为载体,多维地对实时水雨情数据进行查询与分析,提供相关的防汛预警功能支持,并结合防汛预案信息,通过短信方式及时地把防汛工作部署指令发送到相关责任方,相关责任方可以据此开展及时有效的防汛工作。
本文将从系统总体方案、关键技术及设计3个方面来具体阐述该系统的建设情况,并在结语部分对系统所做工作及存在不足进行总结。
根据特定的水利信息化背景与需求,本系统有如下特征:
1)实时性强。通过对远程数据库的汇集,系统每5min 对最新的水雨情数据进行更新,保证了本地数据库中数据的实时性。此外,在本系统中,对重要监测站的实时信息进行显示,有利于对汛情的监视和预警。
2)数据安全性高。当远程或者本地数据库服务器由于断电等特殊原因宕机时,有部分实时数据由于没有及时汇集到本地数据库中而容易引发数据丢失问题。当服务器恢复正常之后,数据交换系统能够自启动,及时同步本地数据库,保证与远程数据库的一致。通过该自适应功能,能够大大提高数据的安全性,保证系统可以正常运行。
3)前台展示方式丰富,用户体验良好。系统基于 WebGIS 技术,将地理信息位置与实时水雨情信息进行有机结合,用户可以方便地在地图上查看到测站的实时水位和雨量信息,当水位、雨量超过预设警戒线时,系统将自动在地图上发布水雨情预警信息。另外,对于系统水雨情分析中的统计图部分,系统使用 FusionCharts 技术,解决了一般画图插件存在的浏览器兼容问题,动画效果好,用户体验佳。
综上,系统主要总体架构如图1所示,通过数据转换系统,经由通信专线,将本地数据库实时与已有系统中的远程数据库进行同步[1],保证数据的时效性。通过南京青奥会防汛专题系统的开发,提供对水雨情等信息的查询、分析等功能,并提供用户体验良好的交互界面。
图1 系统总体架构
数据汇集平台是国家防汛抗旱指挥系统“两台一库”的重要组成部分,是防汛抗旱信息向各节点汇集,为各应用系统提供数据的重要设施[2]。通过数据汇集平台的建设,实现从分中心、省(自治区、直辖市)、流域机构直至国家防汛抗旱总指挥部的防汛抗旱信息交换,根据需要有些信息还要在上述单位之间互相交换。
依据系统的具体需求,系统需获取到实时的报讯及遥测水雨情信息对外进行发布。而南京防办自有的数据库中没有实时的水雨情信息,需从南京水文局获取到该信息。为减轻南京水文局数据库访问的负担及提高本系统的运行效率,将南京水文局数据库中的实时水雨情数据汇集到南京防办本地库中进行存储是最优的解决方案。
本系统通过使用基于 C# 开发的数据汇集程序运行在服务器上,只要服务器处于启动状态,不需要用户进行登录等操作,数据库转换系统会自动扫描同步远程数据库中的数据到本地,且该汇集程序支持功能强大的设置功能,用户可以根据自身需求设置数据汇集的数据库表及汇集频率等关键信息。
Web 服务(Web Service)是目前程序设计领域中的一项新技术,在不同系统平台之间具有互操作性,实现不同应用程序之间的远程过程调用。Web服务[3]使用基于 XML 的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为单个计算网络协同运行。Web 服务是建立在一些通用协议的基础上,如 Http,SOAP,XML,WSDL,UDDI 等。
本系统通过采用 Web 服务技术,将系统的数据查询等操作封装成为标准的接口,提高了系统的可拓展性。
只有系统的主界面简洁、易用、美观、布局合理,才会有一个良好的用户体验。为了使南京青奥会防汛专题系统达到这些目标,并保持系统的安全性、实时性、运行速度快等性能特点,对系统使用了相关的开发技术,如 Struts 框架技术[4],减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化;Hibernate 技术[5],实现对实时数据的持久化、保证数据实时性、正确性;WebGIS 技术[6],基于“水利信息一张图”的思想,所有信息均基于 GIS地图进行展示,提高用户体验;FusionCharts 技术[7],现今 Web 端最完备的图形解决方案,可以方便地在浏览器中画出水位、流量过程线,雨量柱状图等统计图,且界面美观,兼容所有浏览器。
本系统总体架构采用国家防汛抗旱指挥系统“两台一库”的体系架构,并结合自身特点对该架构进行了一些调整和扩展,将系统架构最终确定为数据层、平台层、服务层及显示层。数据层包括了“两台一库”架构中的数据汇集平台及数据库,在本系统中,数据汇集平台主要提供实时的水雨情信息,而数据库中则保存着和系统业务相关的属性数据及与地理信息系统相关的空间数据;平台层为系统应用支撑的关键部分,本系统采用 SOA 的思想,为系统最终的业务服务提供粒度适中的 Web 服务标准接口,上层服务可以基于该组接口实现具体的业务服务功能;服务层是对外提供粗粒度的系统服务,这些服务被封装成模块供用户进行使用;显示层是浏览器,负责提供操作员和系统交互的界面。本系统总体架构如图2所示。
图2 系统总体架构图
在本系统中,数据层包括数据汇集平台及系统数据库。其中,数据汇集平台的主要作用为将分中心、省(自治区、直辖市)、流域机构直至国家防总的防汛抗旱信息交换,而汇集实时的水雨情信息则是本系统中数据汇集平台的主要功能;系统数据库用于存储支撑系统的属性及地理信息空间数据。
数据层的主要任务为将远程数据库中的数据汇集转换到本地数据库中,数据层中核心部分是数据库转换系统。数据库转换系统基于 C# 技术进行开发。为了满足报汛工作的需要,该程序每5min 增量转换1次数据库,并支持人工设置转换时间间隔。
数据库转换系统基于 XML 的技术,具有很高的拓展性和自定义性,可以根据需要进行数据库转换的数据库和数据表的配置,还可以对名称不同、但是结构相同的数据表进行映射和数据转换器。
平台层采用 SOA 的思想,用于开发适用于服务层水雨情信息查看、分析等具体业务需求的应用接口。该套应用接口符合标准的 Web 服务体系架构,对于服务层的具体服务开发者来说是透明的,主流开发框架均可以基于这套公共接口来开发符合自身业务需求的具体服务。
具体实现时,平台层主要对各类数据进行封装,并统一发布成标准的 Web 服务接口供用户调用。采用这种方式进行系统开发,隔离了上层用户对于数据的依赖性,由服务提供者来发布接口,服务使用者依附于业务支撑平台,只需专注于具体上层业务逻辑的开发,提高了二次开发的可扩展性及开发效率。
服务层是系统的核心部分,其基于平台层发布的接口,完成对系统功能的具体开发任务。
结合系统的实际情况,系统使用 Struts2框架进行系统的具体开发工作。在实际系统的业务逻辑层,系统对防汛工作的业务逻辑进行了抽象,如完成站点监测数据的查询和实时汛情数据查询等,而这些数据的来源为平台层提供的 Web 服务接口,并非传统的 Hibernate 或 JDBC 方式;对于实际系统的控制层,主要通过 Struts2框架的 Action 实现,对于来自客户端的请求,在控制层中进行响应和处理,避免了应用表示层对数据的直接操作,而是通过转发请求到对应的业务逻辑层进行处理后返回客户端需要的结果数据。
系统的显示层采用 jQuery 和 Ajax 等方式,提供兼容性强、功能丰富、及时响应、界面精美的客户端,提高了系统的开放性和拓展性,为用户提供良好的用户体验的同时也使得系统易于拓展升级。
系统在显示层还提供 WebGIS 功能,用户可以通过在地图中直观地查看实时水雨情信息,该功能基于 ArcGIS API for JavaScript 技术进行开发;在水雨情分析部分,需要使用水位、流量过程线及雨量柱状图等方式对数据进行多维的展示,系统使用FusionCharts 技术,绘制各类界面美观、动画效果强大的统计图,提高用户体验。系统基于地图的水雨情信息查看界面如图3所示,基于 FusionCharts 技术进行统计分析的界面如图4所示。
南京青奥会防汛专题系统的设计、开发和使用,取得了一定的成果,通过数据转换系统,实现了将实时水雨情数据从远程数据库汇集到本地数据库,并在本地进行数据库的增量转换,保证数据的实时性;对于展示系统的开发,系统采用先进的SOA 思想,提高了系统的可移植性和扩展性;在前台展示方面,系统使用 WebGIS技术、FusionCharts 技术,为用户提供了兼容性强、功能丰富、及时响应、界面精美的客户端,用户体验好。
图3 系统水雨情信息查看界面
图4 系统水雨情信息分析界面
[1] 雷姝洁.基于 Tuxedo 的水利数据汇集探析[D].南昌:南昌大学,2009:11-15.
[2] 曾长清.基于 XML 及中间件技术的数据汇集平台研究与开发[D].南昌:南昌大学,2009: 23-26.
[3] 黄序鑫.基于 XML 和 Web Service的数据集成研究与应用[J].现代计算机(下半月版),2012(4): 39-41.
[4] 刘艳春,洪晓慧.Struts2框架核心配置文件的研究与应用[J].计算机技术与发展,2013,23(2): 77-81.
[5] 邓子云,罗涛,黄友森,等.基于Struts2+ Hibernate3+ Spring2的物流数据交换平台[J].计算机应用与软件,2009,26(10): 88-100.
[6] 宋关福,钟耳顺,王尔琪.WebGIS-基于 Internet 的地理信息系统[J].中国图象图形学报,1998,3(3): 251-254.
[7] 曾玉琦,葛孝堃.面向集成的图形构件的研究与实现[J].计算机应用与软件,2013,30(6): 249-252.