APP下载

小浪底安全监测资料整编分析报告系统设计与应用

2023-02-17李端有牛广利周华艳

中国水利 2023年2期
关键词:过程线小浪底统计表

金 锐 ,李端有 ,2,3,牛广利 ,2,3,周华艳 ,2,3

(1.长江科学院工程安全与灾害防治研究所,430010,武汉;2.水利部水工程安全与病害防治工程技术研究中心,430010,武汉;3.国家大坝安全工程技术研究中心,430010,武汉)

小浪底水利枢纽是一座集防洪、灌溉、减淤、供水、发电等功能为一体的综合性大型水利工程。小浪底枢纽工程共安装埋设安全监测测点3380 支(套),附属配套工程西霞院枢纽工程安装埋设安全监测测点855 支(套),其中部分监测仪器已接入自动化监测系统。经过近20 年的信息化建设,小浪底枢纽工程累积形成了海量的监测数据,现有监测数据采集软件和数据管理软件近20 个,每日采集汇聚的数据量庞大。在小浪底日常管理工作中,大坝安全监测作为判断水库大坝安全状态的重要技术手段之一,是监测管理中心的重要工作内容。资料整编分析报告作为大坝安全监测的主要成果内容,具有覆盖内容广、涉及数据量大、系统性与综合性较强特点,对评判水库大坝的运行状态具有重要意义。

在小浪底安全监测信息管理系统内生成整编分析报告,需要综合数据管理、整编计算、成果展示等各个模块的信息作为数据支撑,系统查询数据量大,程序之间调用复杂,高频的数据读写操作对系统稳定运行存在一定的负荷压力,在使用过程中易出现系统资源占用率过高、程序易阻塞崩溃、生成效率低等问题。

为解决上述问题,设计了一种基于分布式架构的资料整编分析报告系统。通过集成分布式技术,将整编分析报告系统从其依赖的安全监测信息管理系统中拆分出来,采用RPC 远程过程调用的方式进行通信,实现服务间非阻塞调用,平衡系统的负载压力,达到提升系统稳定性和可靠性的目的。

一、系统关键技术

小浪底安全监测整编分析报告系统涉及监测数据管理、整编分析计算、过程线成果展示等模块。本系统以安全监测信息管理系统为基础,以实时监测数据、环境量数据、整编计算数据、成果展示数据为数据源。从生成流程上,整编分析报告划分为报告书签设计、报告模板制作、报告书签替换三个过程,每个过程的继续依赖于前置过程的完成(见图1)。

图1 整编分析报告生成流程

1.报告书签设计

根据安全监测整编分析报告表现形式的特点,将报告分解成统计文字、整编统计表、整编过程线等内容。为实现整编分析报告的自动生成,本系统将统计文字、整编统计表、整编过程线从报告中提取出来,作为动态内容在报告生成时进行动态替换;报告中的其他内容则作为静态部分,对报告进行预处理形成一个特定报告模板。报告模板中的动态内容,分别以Word 书签的形式进行唯一标识,在报告生成过程中,通过此标识进行数据映射,从而完成动态数据替换。

(1)统计文字书签

统计文字是对整编分析报告中某段时间内某特定统计对象的描述,特定统计对象一般为某工程部位、监测点等,常见统计方式有极值、上期值、本期值、变化量等。将整编分析报告中统计文字按统计方式逐个抽取,在整编报告系统内进行数据配置,形成一个适配的统计文字资源池。资源池的每个数据以唯一标识符表示,并与报告模板中指定位置书签进行关联。

(2)整编统计表书签

整编统计表作为常见的数据展示形式,被大量应用于整编分析报告中。整编统计表通常统计一组监测点在某取值周期内的极值、当前值、变化量等。统计表可分别进行表头样式配置和表头数据取值配置,进而实现整编统计表的样式自定义。将配置完成的整编统计表保存至统计表资源池中,在系统生成报告时,通过书签标识从资源池中获取对应数据信息,实现整编统计表的自动绘制和数据填充。

(3)整编过程线书签

整编过程线作为图形数据,展示的是一组监测点在某一段时间内的监测数据,具有非常直观的展示效果,是整编分析报告中必不可少的内容之一。过程线的动态生成依赖于安全监测信息管理系统的成果展示模块,用户根据整编分析报告中的过程线预先在成果展示模块进行过程线的配置工作。由于BS 系统架构的技术特点,整编过程线的生成流程与CS 系统架构存在较大区别,程序首先从后端服务器获取过程线配置信息,然后隐式地调用前端图形插件进行绘图得到SVG 数据,最后通过后端服务器将SVG 数据转成PNG 图片插入整编分析报告中,从而完成整编过程线的动态生成。

2.报告模板定制

报告模板是整编分析报告的数据载体,包含所有与此报告相关的书签信息。复杂的整编分析月报和年报,其关联的统计文字、整编统计表、整编过程线的书签可达几百甚至上千个。Office AddIns 加载项是微软近年来提供的一种新兴的、可直接在Office软件中进行定制化功能开发的技术。通过此功能,用户可直接在Word 文档中与安全监测整编分析报告系统进行数据交互,读取报告书签资源池,并将对应的书签标识插入Word 文档指定位置,快速实现报告模板的制作。

3.报告生成技术

Java 语言作为目前Web 服务器端主流编程语言之一,经过长期积累发展,已形成完善生态系统,拥有大量优秀第三方资源库,通过Java 程序可以方便地读取、修改和生成文档。

在生成整编分析报告时,用户首先通过前端浏览器页面动态地传入本次整编分析报告生成的时间期数信息,服务器收到报告生成的指令后,调用Java相关库将报告模板加载到系统内存中,然后遍历模板中所有书签标识,通过书签标识去数据资源池中匹配对应的统计文字、整编统计表或者整编过程线信息并进行数据替换,最终形成完整的整编分析报告。通过程序批量处理书签信息,可大大提升工作效率,减少每次编制报告的重复性劳动。

二、分布式架构设计

作为目前主流开源的分布式框架之一,Apache Dubbo 致力于提供高性能、透明化的RPC 远程服务调用方案及SOA 服务治理方案,其核心部分包括远程通信、集群容错以及服务注册与发现,通过透明化的远程方法调用,系统开发者可以像调用本地方法一样调用远程服务方法。根据不同服务对系统资源要求的不同,可以更合理地对系统资源进行配置,最大化利用系统资源。RPC 是分布式系统的核心通信组件。一个完整的RPC 流程由服务提供者、服务消费者以及服务注册中心三部分组成。在本文所设计的安全监测整编分析报告系统中,将报告生成的相关公共方法提取出来作为服务提供者,使用分布式应用程序Zookeeper 进行服务注册与发现,并对接口服务的调用进行协调和管理。

在传统的单一应用架构软件设计模式中,从底层数据库服务器到后端服务器再到前端服务器,每个部分都各自作为独立的服务单元部署在Web 服务器上。客户端执行一个操作后,将指令发送给前端服务器,前端服务器将指令推送给后端服务器,后端服务器通过执行SQL 语句从结构化数据库中获取相应数据,并调用相应的业务逻辑处理单元进行业务处理,最后将处理结果返回给客户端。

传统的单一应用架构系统中所有业务模块都耦合在一起,每个模块的稳定性直接影响整个系统的稳定性,单一应用架构模式适合业务逻辑处理相对简单、规模较小的应用系统。随着安全监测信息管理系统业务复杂度和数据量的提升,在单一应用架构模式下,系统整体稳定性和可靠性难以保证。为克服单一应用架构系统存在的问题,本文设计的基于Apache Dubbo 分布式架构的应用系统,将整编分析报告生成单一责任的功能模块从安全监测信息管理系统中拆分,从而降低系统耦合度、提升系统稳定性和可靠性。该分布式系统服务调用流程如下(见图2):

图2 分布式系统数据处理流程

①整编分析报告模块作为服务提供者启动运行并发布接口信息,将接口信息注册到服务注册中心。

②服务注册中心接收到注册信息后,为服务接口分配注册地址并开启服务监控,保证相关服务接口离线后能及时通知服务消费者。

③服务消费者向服务注册中心提交接口订阅请求,申请获取服务注册中心注册接口地址。

④订阅请求通过后,服务注册中心向服务消费者发出订阅成功的通知。

⑤服务消费者根据接口地址向目标接口发送调用请求封装传递参数。

⑥服务提供者接收参数并进行业务逻辑处理,将处理结果返回给服务消费者。

三、系统应用与性能测试

1.系统应用

小浪底安全监测资料整编分析报告系统自上线试运行以来,通过用户反馈和持续优化,现已在小浪底安全监测中心稳定运行。

小浪底安全监测资料整编分析报告系统作为服务提供者,其提供的每个接口业务负载情况不同。Apache Dubbo 提供的接口管理中心将服务接口分为高频、中频和低频服务。针对高频访问的服务接口,如基础数据查询接口、报告数据替换接口等属于报告生成过程中需要频繁大量访问的接口,可以适当分配更多的系统资源,软件开发人员可根据项目运行的实际情况对相关主要接口进行权重调整。综合现场调试的实际情况,表1 列举了小浪底安全监测资料整编分析报告系统的主要接口和相应权重分配值。

表1 报告生成系统主要接口权重分配

2.性能测试

为验证分布式架构相对于单一应用架构对系统可靠性和稳定性的提升,制作一套包含50 张整编过程线图、50 个整编数据表格、100 个统计量的共100 页的整编分析报告模板,用于模拟整编分析报告的生成。整编分析报告生成耗时统计见表2。

表2 整编分析报告生成耗时统计表

对分布式架构与单一应用架构资源消耗量比较(图3)进行分析:在单一应用架构下生成报告,通过浏览器DevTools 工具可以发现,部分高频接口存在阻塞时间过长的情况,多次生成报告,耗时波动较大;在分布式架构下,报告生成耗时大大降低,整体操作流畅度有明显提升。通过Java 性能分析工具JVisualVM 进一步分析可知,在分布式架构模式下,CPU平均占用率为60.2%;在单一架构模式下进行相同业务操作,CPU 平均占用率达到74.4%,并且峰值波动较大。

图3 分布式架构(a)与单一应用架构(b)资源消耗量

综上测试结果,通过应用分布式架构,可以更加合理地对系统资源进行分配,降低整编分析报告生成中资源挤占率,实现系统运行负载的分担与均衡,提升系统稳定性和可靠性。

四、结 语

本文提出的小浪底安全监测资料整编分析报告系统,从书签设置、模板定制、报告生成方面进行了系统整体功能设计和技术应用,实现了报告模板中统计文字信息、整编统计表和整编过程线的快速批量替换,降低了报告编制人员的使用难度,大大提升了工作效率。通过集成分布式技术,提升了系统的稳定性和可靠性,从而更好地应对各类整编分析报告的生成。该整编分析报告系统满足了目前水利信息化发展需求,其设计思路和技术对本领域软件开发人员具有一定参考作用。该系统如何智能地根据整编分析内容进行推理和结论信息自动生成,是下一步需要研究的方向。

猜你喜欢

过程线小浪底统计表
小浪底飞出欢乐的歌
小浪底飞出欢乐的歌
2020年部分在晋提前批招生院校录取统计表
洪水过程线对水库调洪结果的影响分析
2019年提前批部分院校在晋招生录取统计表
上榜派出所统计表
基于Excel绘制改正系数过程线浅析
神奇的统计表
基于青山水库洪水调节论述给排水系统设计
黄河上的小浪底