四川省水文资料对外在线服务标准化技术与应用研究

2024-03-29 07:34李腾飞
水资源开发与管理 2024年2期

李腾飞

(四川省水文水资源勘测中心,四川 成都 610036)

水文资料是通过实地调查、观测及计算研究所得的与水文有关的各项资料,如降水量、蒸发量、水位、流量、含沙量等,以及从这些资料求得的在一定时期内的最大值、最小值、平均值、总量、过程线和等值线等,水文资料广泛应用于国家机关决策和防灾减灾、国防建设、公共安全、环境保护、应急管理等相关社会事务中。水文资料对外服务主要是水文资料存储保管单位,面向政府机构和社会公众编制重要规划、进行重点项目建设、防灾减灾、水资源管理等需求,提供水文资料的一种服务活动。

1 研究目的

《“十四五”智慧水利建设规划》《水文现代化建设规划》《四川省水文事业发展规划(2021—2035 年)》等文件对水文领域信息数字化转型提出,要根据政府部门和社会公众对水灾害、水资源、水生态、水环境等不同水文信息的需求,提供前瞻性数字化产品服务[1],目前水利部长江委实现了面向Web 的水文数据“一站式”服务[2],气象、测绘等行业也实现了资料的线上服务。由于水文资料对外服务不属于行政审批事项,全国各地对此信息化改进重视不够,大多数依旧沿袭使用单位提出实际需求、手工填写数据申请,层层审批,最终由工作人员从水文数据库提取后提供的服务模式,工作效率低、容易出错、沟通成本大,基于此,本研究力求实现水文资料对外服务的高效化、标准化、准确化,以国家基本水文测站提供水文资料为例,基于面向Web 设计,从水文资料在线查询、在线申请等全流程服务环节出发,制定系统架构、网络组织、数据表设计等一系列标准化体系,建立四川水文数据对外服务系统,实现了水文数据需求与资料服务的关联转换,从而提升水文信息服务现代化能力。

2 方案设计

2.1 总体架构

基于不跑路、少跑路、无纸化、远程申请、在线获取的总体要求,该研究采取了面向Web 服务的方式,采用B/S 架构,即浏览器/服务器模式(Browser/Server),将系统功能实现的核心部分和数据集中到Web 服务器和数据库服务器上,用户通过访问Web 浏览器端进行数据访问,从而实现信息交互、数据服务。系统层级结构和网络架构见图1 和图2。

图1 系统层级结构

图2 系统网络架构

2.2 逻辑设计

以服务用户为主旨,设计了用户注册登录、数据申请、数据查询和提交等主要工作流程,后台管理设置了用户资料审核、数据申请审核、数据资料目录复核等操作流程,见图3。

图3 水文数据对外服务基本流程

2.3 权限设计

基于角色的访问控制(RBAC)是实施面向Web服务的一种有效的访问控制方式,可以对客户进行识别,减轻服务器负担,同时加强管理。设置了用户角色、流程管理角色、管理员角色。流程管理主要由内部审核人员负责,如数据管理员复核数据,一个水文资料可以分发给多个资料管理部门进行复核审核。RBAC 基本框架见图4。

图4 RBAC 基本框架

2.4 结构设计

该系统按功能划分为基础设施层、数据资源层、业务应用层。基础设施层是系统的基础保障,提供存储、网络等资源设施;数据资源层主要包括水文站点数据、水文资料目录等数据库;业务应用层是直接提供水文资料服务的窗口,主要包括用户进行数据索引、数据申请、数据资料填报,管理员进行角色访问控制、类别管理等功能。

2.5 模块设计

按照前台、后台组成系统整体进行了设计,同时设置了导出、记录、统计、订单答疑等功能,可以开展价格统计,订单月度、年度分析等[3]。针对使用过程中存在的问题,对每个订单设置了答疑模块,主要针对提供的水文资料、服务流程等方面答疑。系统功能模块见图5。

图5 系统功能模块结构

2.6 数据库服务设计

该系统业务流程单一,在数据库的设计上,选用较为轻便的服务器作为内部平台的补充,围绕用户来完成,由必要的站点表、站点数据表、用户表、用户申请数据表等组成,对于唯一字段和关键字段,数据表设计见表1,水文资料计价表字段定义见表2。

表1 数据表设计

表2 水文资料计价表字段定义

资料清单编码设计参考《水文数据目录服务规范》(SL 736—2016)要素代码表,按照《四川省水文资料和成果有偿使用收费标准》(川水文函〔2016〕54 号),水文资料对外服务共分为水文、水质、墒情、地下水四大类。一级类选用1 位编码,即1~4;水文一类中二级类最多,接近2 位数,考虑以后的扩展,二级类选用2 位编码,即01~99;水文一类流量二类三级类最多,接近2 位数,考虑以后的扩展,三级类选用2 位编码即01~99。如获取某站月最大值该项数据资料的编码即为10306,资料共采用5 位编码。

设计了3 类申请的状态,一类状态是申请状态(撤销、已申请、推进中、已完成),二类状态是资料状态(已初核资料;申请走完流程已收到,资料未提供;与已提供资料不一致;与已提供资料一致),三类状态是合同付款状态(未签订合同未付款、已签订合同未付款、未签订合同已付款、已签订合同已付款)。根据二类、三类状态,自动更新一类状态。在订单状态中增加客户申请数据和客户获得数据一致性校验,避免出现申请数据与获得数据存在差错的情况。

2.7 技术选择

2.7.1 服务器程序设计模式

MVC 设计模式是一种将应用程序的逻辑层和表现层分离出来的软件设计方法,包括模型(Model)、视图(View)和控制器(Controller),三者之间关系见图6。

图6 MVC 设计模式

模型表示企业数据和业务规则,负责转发请求,对请求进行处理,模型类包含帮助对数据库进行增删改查的方法。视图是用户看到并与之交互的界面,是一种输出数据并允许用户操纵的方式。控制器是模型、视图以及其他任何处理 HTTP 请求所必需资源之间的中介,接受用户的输入并调用模型和视图去完成用户的需求。MVC 三个部件中模型拥有最多的处理任务,MVC 优点在于能为应用程序处理不同的视图。

2.7.2 设计程序语言和框架选择

CodeIgniter 框架采用MVC 设计模式构建,是一个小巧但功能强大的PHP 框架。作为一个简单而“优雅”的工具包,它提供一套丰富的标准库以及简单的接口和逻辑结构,可以快速帮助PHP 程序员建立功能完善的Web 应用程序[4]。

Codelgniter 系统数据流程为:index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源;路由Routing 检查HTTP 请求,以确定如何处理该请求;如果存在缓存Caching 文件,将直接输出到浏览器,不用走下面正常的系统流程;在加载应用程序控制器Application Controller 之前,对 HTTP 请求以及任何用户提交的数据进行安全Security 检查;控制器加载模型Models、核心类库Libraries、辅助函数Helpers 以及其他所有处理请求所需的资源;渲染视图View 并发送至浏览器,如果开启了缓存,视图先缓存起来用于后续的请求。Codelgniter 系统数据流程见图7。

2.7.3 WebGIS 类库选择

在站点选择中,为了增加可视化、直观查看的效果,基于四川省政府网站公开数据平台的公开站点数据,使用OpenLayers 在网页前端进行展示。OpenLayers是一个以面向对象形式开发的JavaScript 类库,用于WebGIS 前端,主要用来在浏览器中展现地图数据,它提供了大量的地图组件,如图层加载、控件、标准显示、信息查看弹出窗口等。

2.8 安全设计

《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》规定,网站涉及用户登录名、密码、电话等敏感信息,采用Md5 加密,对相应字段信息加密后存入数据库。

2.9 容量设计

通过近5 年统计,按照新建大中小型水库建设、生态流量、水文水资源等需要水文资料的实际,资料目录量并不多,按照无偿、有偿等分类。

3 系统实现

3.1 安装环境

操作系统采用CenOS 5.4 64 位,服务器为Apache 2.4,数据库选择Mysql 5.1.48,PHP 环境为5.2 版本,CodeIgniter 版本为2.1.3。

3.2 Codelgniter 程序文件目录结构

Codelgniter 基本结构为入口程序文件(index.php)、system 框架程序目录文件夹和application 项目程序文件夹,application 文件夹中主要存放了controllers、views、models 等主要文件夹,对应MVC 模式的程序文件。

3.3 效果预览功能截图

按照查询流程,设计了查询首页、关键词选择查询等页面,页面效果预览见图8~图10。

图8 水文资料申请表单填写

图9 站点资料查询选择

图10 管理页面

4 结 语

针对政府机构和社会公众对四川省水文资料对外服务的实际需求,通过分析现有水文资料对外服务存在的线下审批、沟通不畅等不足,立足于系统结构、网络、数据表设计等一系列标准化建设,搭建四川省水文资料对外在线服务信息系统,可全天候服务于社会公众获取水文资料的全过程管理,在水文资料服务的内容、服务的效率和服务的质量上均得到提升,更加方便快捷全面地服务于社会公众。四川省水文资料对外服务系统现已上线试运行,业务人员可通过此系统在线查看水文资料价格和资料完整情况、提交资料申请以及下载所需水文资料,得到了水文资料需求单位的一致好评。也要看到该系统目前支持的服务还是基本需求,受可选择站点覆盖不全、水文站点资料更新不及时等影响,下一步还需加入专用站、中小河流站点等水文站点资料,在当前适应手机、平板电脑等多类型终端需求上,还要继续完善功能模块、提供接口服务、开发手机App 等。