谭帅 李金炜 黄川晟 马玉宝 李年杰
摘 要 管道阴极保护具有分布区域化和信息多样化特点。阴极保护数据海量,分布分散,尚未形成集中统一管理和经验共享,存在严重的数据碎片化和信息隔离现象,数据价值未能有效挖掘。因此,提出基于微服务架构的长输管道阴极保护信息管理系统设计方案,结合实际应用场景,对系统功能模块进行了划分。系统建成后可实现管道区域和线路阴极保护数据的集中储存、分析和查询管理,提高阴极保护数据利用效率,可为管道阴极保护辅助决策提供依据。
关键词 信息管理系统 长输管道 微服务架构 阴极保护 数据深度挖掘
中图分类号 TP391.9;TE832 文献标识码 B 文章编号 1000?3932(2023)03?0371?05
作者简介:谭帅(1990-),工程师,从事长输管道安全管理工作。
通讯作者:马玉宝(1987-),高级工程师,从事长输管道安全管理工作,765741661@qq.com。
引用本文:谭帅,李金炜,黄川晟,等.基于微服务的管道阴极保护信息管理系统设计[J].化工自动化及仪表,2023,50(3):371-375.
长输管道主要采用防腐涂层和阴极保护技术防止防腐层老化,通过恒电位仪或牺牲阳极的方式向管道施加负电位,使管道对地构成阴极,形成防护、减缓腐蚀[1]。长输管道阴极保护系统根据保护目标不同可分为管道线路阴极保护系统和站场区域阴极保护系统,具有分布区域化、信息多样化的特点[2]。现阶段,由于阴极保护数据量大,储存孤立分散,导致数据利用效率低,信息孤岛现象严重。随着信息化、智能化技术的快速发展,数据资源已成为工业安全生产评价的核心,建立统一的信息管理系统,将已有的管道阴极保护数据进行数据储存与应用,辅助管道阴极保护技术决策已经成为重要的研究课题。
文献[3]依托百度地图API开发了长输管道阴极保护信息管理系统,并嵌入WebGIS技术,实现了阴极保护数据共享。文献[4]利用Hadoop生态圈数据挖掘技术设计长输管道区域阴极保护数据管理系统,实现了阴极保护影响因素——土壤的数据管理。文献[5]开发了管道阴极保护智能管理系统,并引入智能测试桩,实现了管道线路阴极保护参数的集中统一管理。文献[6]研发了基于站控系统的管道阴极保护设备,实现对管道电位、装置输出电流与电压以及环境参数的采集,通过对数据的对比与处理,辅助管道阴极保护决策管理。上述管道阴极保护信息管理系统仅实现了站场区域或者管道线路阴极保护数据的采集、管理,未将站内和站外阴极保护数据集中管理,且由于系统均采用单体架构开发,存在很多问题,如:所有组件、服务高度耦合,导致系统开发周期长;随着运行时间的延长,业务量增大,系统维护难度会逐渐增大;程序架构会随着修改而不断退化,无法进行持续布署;横向扩展困难,不能根据实际业务需要灵活调整架构;容错性差,程序任何一个环节出现问题,都有可能导致系统瘫痪。
针对以上问题,笔者设计了一套基于微服务架构的长输管道阴极保护信息管理系统,以实现区域和线路阴极保护数据的采集上传、储存分析、故障报警等多项功能,不需要Web服务器,通过浏览器即可直接访问,操作便捷,并提升阴极保护数据的深度挖掘利用能力,为管道阴极保护辅助决策提供依据。
1 微服务架构
微服务架构是在传统单体架构的基础上演变而来的软件架构模式[7],与传统应用架构相比,主要有以下优势:
a. 可将一个完整的应用程序划分为若干个小服务,通过服务拆分,使每个服务开发和布署独立化、小型化,高度内聚和低度耦合,可以提高开发效率,降低维护难度;
b. 每个服务具有独立的生命周期,可以采用不同的语言开发,并在独立的进程中运行,具有易于横向扩展的优势;
c. 当一个服务出现故障,可以单独进行维护,不会影响到整个应用程序,提高了系统容错性;
d. 各组件之间边界清晰,轻量级的HTTP的RESTFUL API通信,可实现相互协调、配合,提高系统运行速度[8]。
微服务架构一般由展示层、网关层、应用层和数据层4部分组成[9]。展示层是前端用户交互界面,主要负责服务实现和服务监控。网关层提供外部访问的统一标准和入口,通过服务路由、负载均衡等完成服务分发管理。应用层由业务微服务模块及聚合微服务组成,每个模块可分别编程,相互耦合性低,适应性强。数据层负责基础数据存储,包括阴极保护数据以及设备、用户数据等。
2 关键技术
2.1 架构设计
系统整体采用Spring Cloud+Vue的前后端分离技术。前端主要负责界面渲染、数据解析,开发语言采用轻量级即时编译型的JavaScript。Vue.js融合了Angular JS和React框架的优势,具有优良的MVVM库Vue.js[10],其组件化的特点大幅增加了程序的易读性和维护性。采用Vue?cli提供脚手架和自定义配置,Element UI提供完善的组件[11],Echarts提供丰富的可视化图表库,Axios提供简洁高效的HTTP库[12]。后端采用Java语言编写,主要负责提供数据。Spring Cloud是一种服务框架,可以有效简化分布式系统基础设施的开发[13]。Spring Boot是Spring提供的快速配置脚手架,通过Spring Boot封装后可屏蔽掉复杂的配置,成熟度高、维护性强[14]。使用Nginx作为反向代理服务器,可提高系统开发效率,在系统运行时,通过负载均衡也可获取更好的运行效率[15]。
Spring Cloud的基本配置包括服务注册和发现中心、配置中心、服务网关、负载均衡、容断器等。Spring Cloud提供的服务注册和发现中心主要有Netflix Eureka和zookeeper。Eureka没有选举过程,即使发生网络分割故障,也会继续提供服务,因此可靠性更强。本系统框架选用Eureka作为服务注册和发现中心组件。采用config作為配置中心,为多个微服务管理配置文件。采用Sentinel作为流量控制中心,实现流量控制。采用基于Zuul的微服务API网关,向客户端统一提供REST API接口,便于各系统的集成,为整个微服务架构系统的入口提供可靠保护,同时将多个微服务应用的权限控制统一转移到微服务网关[16]。采用RestTemplate实现服务间的调用、通信。Ribbon用于负载均衡,它提供了6种负载均衡方法,可根据业务场景和业务需要进行选择。采用hystrix作为断路器,当某一服务出现故障时,给出响应信息,避免系统联级失败,提高容错性。RabbitMQ作为系统的消息中间件,担任系统服务的解耦、削峰、异步和队列功能[17]。
2.2 数据库设计
阴极保护数据是管理系统的核心组成部分,包括各个输油气站场区域和线路恒电位仪输出保护电压、保护电流等数据,还包括设备参数数据、用户信息等。
系统持久化数据库选用关系型MySQL[18],主要存储数量少、改动少的管理系统的系统信息,以及所有实体对象信息。MySQL具有响应速度快、性能稳定和可靠性高的特点。它的核心程序采用安全的多线程编程,内存分配系统快速、稳定,权限和口令系统灵活、安全。采用Redis主要用作缓存数据库使用,以存储登录用户的Token信息、登录验证码以及缓存阴极保护数据。系统查询和报表生成功能主要依靠的是Redis数据库。
2.3 系统安全性
为提高系统安全性和可靠性,恒电位仪阴极保护数据只能单向通过企业内部局域网传输至服务器,不能反向传送。在后台开发方面,采用Spring Cloud Security提供的安全解决方案,强化用户鉴权[19]。用户登录时在前端同时输入账号、密码和验证码。系统将账号、密码和验证码发送至后端System/login接口。后端将前端输入的验证码与Redis中的验证码信息进行对比,并到数据库中进行用户信息校验。如果成功查询到用户信息,鉴权中心会使用JWT[20]+RSA[21]生成加密的用户Token信息返回前端,完成登录。当用户请求其他接口时就会携带这个Token信息,用来验证用户身份。前端通过已登录用户的Token调用后端的接口来获取数据,根据相应的数据来渲染前端的页面。
3 实现路径
3.1 系统组成结构
基于微服务架构的管道阴极保护信息管理系统包括采集端、服务端和客户端3部分。
采集端布设在各个输油气站场,包括区域和线路恒电位仪,及其配套电源等辅助设备,主要完成阴极保护数据采集功能。一般情况下,每个输油气站场至少有区域恒电位仪和线路恒电位仪,且均采用冗余设置。采集端采集现场的阴极保护数据后,通过局域网上传至服务端并储存至数据层数据库中。
服务端存储了后台源代码以及数据库。主要用于程序的开发,数据汇集、储存、计算等功能。数据库的数据由恒电位仪通过通信模块进行传输并在服务器中存储。系统每小时读取一次恒电位仪输出保护电压、保护电流等参数,并将数据存储起来。
采集端与服务端之间通过Modbus/TCP协议通信。
客户端提供了友好的人机交互界面,可以直观展示各台恒电位仪输出阴极保护数据、设备运行状态等,并完成报表自动生成功能。客户端通过展示层向服务器发起请求后,服务端接收请求,与数据库交互,将数据打包返回,并通过前端展示对应的视图,供浏览查阅。
3.2 数据透传模式
将接入局域网的串口服务器与恒电位仪引出的RS485信号线相连,恒电位仪根据预置参数及末端管道防护情况,输出保护电压、保护电流值,然后通过RS485信号线传输到协议转换器,接入串口服务器中。通过通信参数调节,自定义注册包等功能设定,服务端通过局域网络向串口服务器发送Modbus RTU请求报文,报文根据不同数据需求及安全性保障,分别获取恒电位仪报警信息、阴极保护数据,并将所有数据都保存到数据库中,便于数据查询和分析。服务器每小时读取并記录一次阴极保护数据,每次读取的数据包括输出保护电压、输出保护电流两个参数数据。实时数据采用一月一表的策略进行存储。
3.3 数据采集及访问
服务端向采集端写入相应的查询指令,当客户端回传数据到服务器时,服务器通过通信协议进行相应的解包,得到通信数据。解包后获取到客户端的Mac地址,使用Redis通过Mac地址查询出对应的设备信息,如果Redis中不存在设备信息,则通过Mac地址使用Mybatis查询恒电位仪设备表得到对应的设备信息,待查询成功后,将设备信息保存到Redis中,以提升设备信息查询效率。实现数据访问后就可以进行保存阴极保护信息、更新设备报警状态等操作。
4 系统功能
依据管道阴极保护管理业务功能、业务逻辑和微服务拆分原则,业务微服务模块主要划分为阴保数据展示、业务报表管理、设备状态监视和设备及用户管理。系统总体架构如图1所示。
4.1 业务报表管理
根据阴极保护业务管理需求,系统可以自动生成日、周、月度及年度等多种形式的报表,既可显示某个站点的区域阴极保护报表,也可以显示某段管道的线路阴极保护报表,还可以显示整个公司的阴极保护业务报表。日、周、月度和年度报表中的阴极保护数据主要从服务端数据库中获得。
系统报表自动生成功能的实现可以大幅减少人工统计工作量,并规范阴极保护数据管理。
4.2 设备状态监视
服务端获取采集端恒电位仪设备报警信息并保存到数据库中,在数据库中查询设备信息、输出阴极保护数据和报警信息,通过比对分析,判断恒电位仪的工作状态,以不同颜色指示灯在前端窗口展示设备状态。同时,根据设备输出的电流值和电压值对比判断设备是处于恒电位运行模式或是恒电流运行模式。数据库中储存恒电位仪运行状态数据,如预置参比电压、预置参比电流、预置输出电压等区间阈值。并将采集端采集的输出保护电位值、输出保护电流值与之对比,以此来判断设备运行状态。若设备有报警或输出数据偏离阈值区间,则在前端显示设备故障,设备指示灯为红色。若恒电位仪无报警且输出阴极保护数据在正常值范围内,则显示该设备正常运行,设备指示灯为绿色。若恒电位仪无输出数据,则判断该设备处于备用状态,设备指示灯为黄色。
4.3 阴极保护数据展示
阴极保护数据展示主要用以展示各输油气站的名称、区域和线路阴极保护电位、电流。阴极保护数据以曲线图的形式在界面展示。运行数据和参考数据分别以不同的颜色区分显示。在前端界面设置数据录入窗口,区域和线路测试桩定期测试阴极保护数据,包括保护电位、自然电位、干扰电压、干扰电流等均可通过前端录入系统,数据录入时可以通过电子表单模板快速录入。系统将自动调取表单中数据,并以曲线图形式在界面展示,以此实现阴极保护数据集中统一、可视化管理。
通过阴极保护数据可视化展示、自动对比分析,可以准确掌握管道防腐层状态及恒电位仪运行情况,为管理腐蚀防护提供决策依据。
4.4 设备及用户管理
系统可实现恒电位仪设备的集中统一管理,统计恒电位仪维护保养记录,包括维护保护内容、周期及频次。管理人员可收集设备维护保养信息,并上传系统,实现维护保养记录的电子化管理。系统会根据后面设定的周期和频率,及时提醒管理人员按期开展恒电位仪切换、测试及维护保养等工作。由于系统采用前后端分离技术设计,前端登录通过网页便可实现,提高了便捷性,为保障系统安全,可设定用户级别、用户数量、限定用户权限,并对用户登录密码进行管理。
5 结束语
利用微服务架构的服务独立、低耦合、可扩展等优势,提出了一套基于微服务架构的长输管道阴极保护信息管理系统设计方案,从关键技术、实现路径、系统功能三大方面详细介绍了系统设计方案的全过程。基于微服务架构的长输管道阴极保护信息管理系统,可实现管道阴极保护数据集中统一管理,进一步挖掘阴极保护数据价值,提高管理效率,减少人工劳动。
目前,由于智能测试桩普及率低,大部分管道线路阴极保护参数仍然需要由人工现场测试并记录,然后才能录入系统。在智能测试桩推广普及后,可探索将智能测试桩的阴极保护数据直接与本系统进行链接,进而取代人工测试等环节,进一步实现管道阴极保护的现代化管理。
参 考 文 献
[1] 唐勇,丁帅.长输油气管道阴极保护电位智能监测技术[J].天然气工业,2022,42(5):46-49.
[2] 方卫林,李振军,洪娜.典型站场区域阴极保护系统对线路阴极保护系统干扰的检测及处理[J].腐蚀与防护,2015,36(3):272-275.
[3] 王宝珠,杜逸伟,郭志涛,等.埋地金属管道阴极保护远程监控系统的设计[J].河北工业大学学报,2017,46(1):29-33.
[4] 王玉婷.基于大数据的长输管道区域阴极保护数据管理系统研究[D].西安:西安石油大学,2019.
[5] 王爱玲,刘玉展,余东亮,等.山区管道阴极保护智能采集监控管理系统应用[J].油气田地面工程,2019,38(z1):149-153.
[6] 王一丁.基于站控系统的油气管道阴极保护装置研发[D].西安:西安石油大学,2021.
[7] 周家昊.微服务架构关键技术研究与通用框架实现[D].广州:广东工业大学,2019.
[8] 徐言.基于微服务架构的Web AR服务平台中关键技术的研究与实现[D].北京:北京邮电大学,2019.
[9] 张晶,黄小锋,李春阳.微服务框架的设计与实现[J].计算机系统应用,2017,26(6):259-262.
[10] 唐斌斌,叶弈.Vue.js在前端开发应用中的性能影响研究[J].电子制作,2020(10):49-50;59.
[11] 曾晓钰,唐莹,温丰蔚,等.一种基于ElementUI的表格查询组件开发方案[J].现代工业经济和信息化,2021,11(12):50-51;56.
[12] 李大娟.救护队应急救援管理系统的前端计与实现[D].西安:西安科技大学,2020.
[13] 王方旭.基于Spring Cloud实现业务系统微服务化的设计与实现[J].电子技术与软件工程,2018(8):60-61.
[14] 查嵩炜.Java微服务架构在邮政移动互联网应用研发设计中的思考与实践[J].邮政研究,2021,37(3):12-17.
[15] 王琰洁,王孟强,刘泽三.基于微服务的统一应用开发系统应用上云关键技术研究[J].电力信息与通信技术,2021,19(4):64-69.
[16] 廖俊杰,陶智勇.微服务API网关的设计及应用[J].自动化技术与应用,2019,38(8):85-88.
[17] 唐权,周蓉,张勇.RabbitMQ消息中间件在Spring Boot教学中的应用[J].现代信息科技,2020,4(18):125-127.
[18] 肖勇,周密,钱斌,等.微服务架构在网级电能量数据系统中的应用研究[J].浙江工业大学学报,2021,46(3):258-265.
[19] 宋馨来,张海濤.基于前后端分离和Spring Security的用户登录功能的设计与实现[J].科技创新与应用,2021,11(18):19-21;24.
[20] 肖双林,何迎生,田杰,等.基于JWT+Spring Security的动态权限管理系统[J].信息与电脑(理论版),2021,33(14):131-134.
[21] 苏蓓蓓,黄星杰,尚智婕,等.基于RSA算法的计算机网络通信安全加密方法[J].现代传输,2022(3):66-68.
(收稿日期:2022-09-30,修回日期:2023-01-05)
Design of Information Management System for Pipeline Cathodic Protection Based on Microservice
TAN Shuai, LI Jin?wei, HUANG Chuan?sheng, MA Yu?bao, LI Nian?jie
(Nanning Oil and Gas Transportation Branch, PipeChina Southwest Pipeline Co., Ltd.)
Abstract The distribution regionalization and information diversification characterize the pipeline cathodic protection. The data of cathodic protection is massive and distributed widely and no unified management platform and experience can be shared. It results in serious phenomena of data fragmentation and information isolation and the data value cant be mined effectively. In this paper, a design scheme of cathodic protection information management system for long?distance pipeline based on microservice architecture was proposed and basing on actual application scenario, the functional modules of the management system were divided. The system completed can realize centralized storage, analysis, query and management of cathodic protection data of both the pipeline areas and lines. It can improve utilization efficiency of cathodic protection data and provide a basis for auxiliary decision?making of the pipeline cathodic protection.
Key words information management system, long?distance pipeline, microservice architecture, cathodic protection, data deep mining