董 静,满运涛,李娅婷,刘德龙
(中国水利水电科学研究院,北京,100038)
党中央、国务院高度重视中小河流治理。为加快我国中小河流建设,2010年,国务院出台了《关于切实加强中小河流治理和山洪地质灾害防治的若干意见》(国发〔2012〕31号),并于2011年批准了《全国中小河流治理和病险水库除险加固、山洪地质灾害防御和综合治理总体规划》(以下简称《总体规划》),确定了2012年底基本完成近期规划2209条重点中小河流重要河段治理,到2015年累计完成5000余条重点中小河流重要河段治理的目标任务[1]。
为了更好的对全国中小河流项目进行管理,2012年水利部开发了“全国中小河流治理项目管理系统”,利用交互式网络技术等手段,以县级行政区为基本管理单元,逐步实现项目投资建设信息动态跟踪管理、重要文档和工程多媒体信息搜集查询、工程地理信息查询、短消息自动督办等功能,极大地提高了项目管理效率。自上线运行以来,系统升级维护工作一直持续推进。为满足水利部对项目管理和系统完善的新要求,本项目旨在完成流域面积3000 km2以上中小河流治理项目管理系统的建设,服务于全国中小河流治理项目管理。
(1)部级用户:可对项目的前期工作进行编辑以及对河段部分信息进行修改;对项目的投资进行编辑以及河段部分信息进行修改;可查询前期工作情况、投资计划执行情况等数据;可对各省份河段数据、灾后汇总信息、主要支流建设进展情况、主要支流投资完成情况进行综合统计分析。
(2)省级用户:可对项目的前期工作进行编辑以及对河段部分信息进行修改;对项目的投资进行编辑以及河段部分信息进行修改;可查询前期工作情况、投资计划执行情况等数据。
依据实际业务,本系统需满足各级用户对流域面积3000 km2以上中小河流治理的管理需求。主要包括前期工作情况管理、投资计划执行情况管理等等。其中前期工作情况包括列入《灾后实施方案》总投资、可研批复情况、初设批复情况、开完工时间、验收时间、实际完成工程范围等等;投资计划执行情况包括中央规划投资、投资计划执行与建设进展情况、项目开完工数、项目验收数、已安排中央资金项目数等等。系统需要实现以上信息的数据录入、数据查询、综合统计分析,并对各级用户进行分级权限管理。
系统设计遵循“以需求为导向、以应用为核心”的设计理念,根据系统需求分析确定系统的功能模块,力求功能全面、实用。同时,注重“以技术激发需求、以创新促进应用”,合理确定技术路线[2],丰富界面展示方式,提高人机友好程度,促进用户更好地使用系统。
(1)实用性原则
实用性是系统的生命,在设计系统时要求采用各种技术方法和措施来保证系统的实用性。它体现在系统规划的合理性、系统的可靠性、功能的完善性、使用的方便性和人机界面的友好性等。总之,系统要能够以简单、方便、快捷、实用为原则,全方位深层次地满足用户的业务要求。在进行系统的开发建设时,始终坚持实用性原则,以满足全国中小河流信息管理的需求为目标,针对全国中小河流治理项目管理系统的特点,具体分析,将信息技术有机地融入系统建设中。
(2)可靠性原则
系统运行在可靠的软件和硬件平台上,这是系统可靠运行的前提,在此基础上,操作系统与应用软件应有比较明确的接口规范。由于系统需要7×24小时连续运行,以保证相关技术人员和决策人员随时调用和查询,必须从系统结构、设计方案、技术保障等方面综合考虑,并经过严格的测试,有较强的容错能力,尽量减少故障的可能性和影响范围,确保可靠运行。
(3)先进性原则
先进性具有两方面的含义,一是指构成系统的软硬件配置;二是指系统的设计思想、软件开发技术和系统运行管理必须具有先进性。整个应用系统的设计,立足于采用先进的、成熟可靠的、代表未来发展方向的主流技术,既减小了系统建设过程中的技术风险,又增加了系统的生命周期。
(4)可扩展性原则
可扩展性是指软件扩展新功能的容易程度。系统设计保证对系统以后的发展留有适当的扩展空间,能够以最小的成本最大限度地满足今后技术发展变化和功能扩充的需要,使系统规模在扩张时亦不需要重新进行颠覆性的系统规划和设计。
(5)开放性原则
系统在客观上要求必须具有良好的开放性,必须符合相关的工业标准,以充分保障系统与其它应用系统的无缝集成。开放性是指系统能够方便地进行功能扩充和修改,以及能方便地同其它系统(甚至基于不同软硬件体系结构)进行连接、数据交换、增加子系统。系统的开放性是系统设计时要重点遵循的主要原则之一,是系统具有高可维护性的基础。
系统架构在技术路线的选择上,采用了符合SOA体系架构的设计思想及当前业界主流的JavaEE技术路线,可以满足跨硬件平台、跨操作系统的要求。系统所采用的技术遵循国际行业标准,JavaEE规范,XML, IOC,AOP,ORM等,具有良好的扩展性和技术先进性。
项目的JS前端框架由原来面向RIA的Extjs改为简洁、高效、轻量级的Jquery框架,从而解决由于Extjs的js文件较大带来的系统性能瓶颈。Web MVC框架由原来的Struts改为性能更好的Spring MVC框架,Spring MVC 是基于方法的设计,而Sturts是基于类,每次发一次请求都会实例一个 Action ,每个Action都会被注入属性,而Spring MVC基于方法,粒度更细,效率更快。Spring MVC通过策略接口,是高度可配置的,而且包含多种视图技术,例如Java Server Pages(JSP)技术、Velocity、Tiles、iText和 POI。
新的框架采用轻量级的构建方法,在POJO的基础上,封装了Spring、Spring MVC、Hibernate和Shiro,实现了主框架平台,可灵活扩展组织权限系统、辅助项目应用的独立组件库等。
图1 技术架构
(1)视图层:由于系统面向B/S架构,视图层主要由Web资源文件组成,包括JSP,JS和大量的界面控件,采用了AJAX技术,负责向用户展现丰富的界面信息,并执行用户的命令。
(2)控制层:负责视图层请求的转发、调度和验证,同时处理后台返回的异常信息,同时控制层可以通过Control做远程的请求。
(3)领域层:是系统最为丰富的一层,主要负责处理整个系统的业务逻辑。这一层主要包括业务服务和领域模型,同时负责系统的事务管理。
(4)持久层:主要负责数据持久化,支持OR Mapping和 JDBC,对数据源的访问提供多种访问方式。
另外,引入了Spring的IOC容器,系统的控制层、领域层和持久化层元素都有IOC容器统一管理,实现完全的接口分离和解耦。
在技术体系中采用了AJAX、Hibernate、Jquery、Spring、Spring MVC、Shiro等核心技术,在保证了先进性的同时兼顾了技术的实用性。同时,采用组件式开发技术,使彼此独立的业务组件通过XML、JSON等松耦合的通讯方式组织在一起形成完整的业务系统。采用数据访问对象(Data Access Object)来实现对数据库的存取,采用异步任务来处理长时间请求,采用OR Mapping技术保证公共数据库的可扩展性,采用JSON、XML作为数据发布标准,采用元数据、数据映射、XML数据库等技术实现数据处理。
流域面积3000 km2以上中小河流治理项目管理系统在设计开发中通过使用缓存技术来减少由于高并发访问带来的系统负载,提高系统的吞吐量和稳定性。在系统业务数据存储之前通过增加cache缓存来减少应用程序对物理数据源访问的次数,在系统登录和验证授权模块通过使用用户信息的缓存数据从而提高系统登录的稳定性和安全性。
实现对项目的前期工作进行编辑,主要包括对项目的修改、添加、删除以及河段部分信息的修改。支持同时从外部粘贴多条项目信息进行修改,完成批量更新,并根据项目字段值改变实现省级与河段统计字段的同步统计功能。
查看所有省份下的河段及项目信息,支持通过行政区、所在河段以及项目关键字进行过滤查询操作。
此外还有编辑和查看项目初设工程范围信息和项目完成工程范围信息的功能。
实现对项目的投资进行编辑,主要包括对项目的修改、添加、删除以及河段部分信息的修改。支持同时从外部粘贴多条项目信息进行修改,完成批量更新,并根据项目字段值改变实现省级与河段统计字段的同步统计功能。
查询所有省份下的河段及项目的投资计划执行情况,并可以通过省级行政区、所在河段、项目名称关键字、年份进行过滤查询操作。
包括所有省份的汇总表、汇总表(灾后)信息、主要支流建设进展情况、主要支流投资完成情况、一河一单等。
汇总表为34个省级行政区所有河段数据汇总,数据源为前期工作情况表和投资执行情况表。
一河一单是针对新的管理需求,根据河流名称查询出该河流对应项目的相关信息和河流的相关信息。该功能是全国主要支流的治理项目清单,通过选择河流名称,展示该河流的详细信息,包括所在水系、所在流域、上级河流和主要支流等,通过选择涉及到的支流条件筛选出该河流下的项目统计信息,包括项目初设批复信息的项目统计信息和资金情况,项目实施信息的项目统计信息和资金情况。最下面展示该河流下具体项目的项目信息。
系统管理实现了企业级组织机构管理和权限管理的可复用应用组件。它实现了企业管理软件系统中常用的系统管理功能,包括组织机构管理、用户管理、角色管理和资源(菜单)管理等,可以与现有的应用软件系统进行快速无缝的集成,用户可以根据项目的业务需求快速地进行组织机构的管理、权限的分配和系统菜单的定制。
流域面积3000 km2以上中小河流治理项目管理系统服务于全国中小河流治理工作,系统完成集成、测试、部署与试运行等工作。实现对流域面积3000 km2以上中小河流项目前期工作情况、投资计划执行情况、各省份河段信息、灾后信息、建设进展情况、投资完成情况等实现全方位的管理[3]。随着中小河流治理工作的不断推进,系统将根据实际应用需求不断进行完善。