基于微服务的内河船舶污染物监管系统设计与实现
2022-09-15王永兴
王永兴
一、引言
为遏制船舶在运营过程中的非法排放污染物行为,依据《中华人民共和国防治船舶污染内河水域环境管理规定》等法规,各省、市和地区相继开展了船舶污染物的接收转运处置机制、技术和管理等方面的研究[1-5],并制定了相关制度。
船舶污染物转移联单制度虽然正在各地逐步建立,但目前仍以纸质联单为主,电子联单等信息化监管手段应用有限,未实现多部门互联互通监管模式。2019年,交通运输部、生态环境部、住房和城乡建设部联合印发《关于建立完善船舶水污染物转移处置联合监管制度的指导意见》,明确指出“鼓励各地建立船舶水污染物转移处置监管信息系统,实现‘电子单证’流转”。因此利用先进的信息化技术构建船舶污染物监管系统,是推进落实船舶污染物联合监管制度和规定的关键。
2020年,为了全面推进长江干线船舶水污染物“零排放”治理模式,长江航务管理局主导研发了“长江干线船舶水污染物联合监管与服务信息系统”,向长江沿线省市的船舶和污染物接收、转运、处置单位提供统一便捷的线上服务,形成了数字监管和多部门共建共治共享的新格局。船员通过APP即可实现一键预约船舶污染物的接收,极大提高了船员交付污染物的便利性和积极性。
广西内河航运发达,为了保护生态环境、促进绿色发展,广西海事局、交通厅、环境保护厅等联合发布了《广西壮族自治区船舶污染物接收、转运及处置联单制度和联合监管制度》,对船舶污染物分类、船舶污染物接收转运处置流程和联单以及各部门监管职责等做出了规定。但广西在船舶污染物监管方面存在污染物接收、转运和处置设施能力不足,环保意识较为薄弱等问题,同时还缺乏有效的船舶污染物协同监管手段。针对广西船舶污染物联合监管需求和缺乏有效的信息化系统的现状,本文借鉴长江模式,遵循广西数字港航一体化应用架构的统一规划,基于微服务和微前端架构,对船舶污染物监管系统进行设计,并对其中关键技术进行研究实现,以提升船舶污染物的监管力度和污染物处理的服务水平。
二、船舶污染物监管系统架构设计
(一)业务流程
根据《广西壮族自治区船舶污染物接收、转运及处置联单制度和联合监管制度》要求,设计了如图1所示的船舶污染物监管系统的业务流程。系统将利用微信小程序等技术手段实现船舶污染物接收、转运和处置全过程的“电子联单”流转、实时监管、智能预警提醒和统计分析等功能,完成各部门对船舶污染物的协同闭环监管。
图1 船舶污染物监管系统业务流程
(1)船舶污染物接收。船主可通过手机端程序在电子航道图上选择污染物回收站(船)或者扫描其二维码填报污染物种类和数量,双方确认后生成“污染物接收电子联单”记录,系统开始对该船舶产生的污染物进行跟踪和监管。
(2)船舶污染物转运。船舶污染物回收站(船)可在手机端程序上的列表中或扫描二维码选择相应有资质的运输单位或企业,汇总多船的同类污染物后生成“污染物转运处置电子联单”。运输方完善负责人和运送时间等信息,双方确认后更新“污染物转运处置电子联单”。
(3)船舶污染物处置。运输方于手机端程序上的列表中或扫描二维码选择有资质的污染物处置单位,完善交接人员、交接地点和时间等信息,经双方确认后更新“污染物转运处置电子联单”。
(4)电子预警与协同监督。系统根据船舶吨位和配员情况建立运输船舶的污染物排放周期模型,并根据船舶运营情况和污染物接收记录,对超周期未进行污染物回收的船舶进行预警。海事局可结合视频和AIS记录对船舶违规行为进行取证,作为后期处罚依据。港航发展中心、住建厅和环保厅可通过系统从空间、时间和类型等多种维度查看全自治区船舶污染物接收、转运和处置记录以及各种违规及预警的统计信息,实现多部门协同监管。
(二)系统结构设计
广西船舶污染物监管系统应遵循广西数字港航一体化应用的顶层设计,确保系统的灵活性和可用性,以便集成到为民办实事的统一平台中。基于微服务进行系统架构设计,其总体结构如图2所示。广西船舶污染物监管系统集成在统一的数字港航一体化应用架构中,在其基础平台层、业务服务层和应用生态层中关联的模块分别如下:(1)基础平台层。涉及航道测量、视频监控、AIS基站和航标RTU,获取外场感知的航道和船舶信息。(2)业务服务层。在数据中台涉及航道图、视频、船舶、污染物、单位和用户等数据,主要由达梦数据库存储并能实现数据管控、数据搜索和数据挖掘等功能;在业务中台涉及的微服务包括单点统一登录、航道图显示、船舶监控、污染物接收转运和处置电子联单、单据加密、船舶污染物跟踪、电子预警和违规取证、视频监控、目标检测和时空统计等,并通过业务网关实现服务编排、服务调用、资源权限和服务监控管理。(3)应用生态层。船舶污染物监管应用基于一张图(地图与电子航道图融合)构建,集成于数字港航一体化应用生态圈,可与港航运行检测系统和港航公众服务系统等无缝融合;可利用Web网站、数字港航APP和微信小程序进行访问和交互,同时为第三方提供交互接口;可根据用户权限为其他港航企事业单位提供被授权的微服务API访问能力。
图2 船舶污染物监管系统总体结构
三、船舶污染物监管系统技术架构
广西船舶污染物监管系统主要包括应用生态层和业务服务层,应用生态层主要利用基于HTML5、VUE等核心技术的微前端架构,业务服务层则主要利用基于Nacos、Spring Boot和Spring Cloud等核心技术的微服务架构,图3显示了整个系统的技术架构。
(一)微服务架构
微服务架构包括网关、服务注册中心、用户认证服务中心、微服务模块、数据库和搜索引擎等。网关包括基于Nginx的流量网关以及基于Spring Cloud Gateway实现的微服务业务网关,Gateway是整个微服务API请求的入口,实现用户的验证登录和权限控制,并与Nginx和Sentinel配合实现限流、熔断和负载均衡等功能。
各微服务模块包括用户统一登录服务、船舶信息服务、污染物信息服务、电子航道图服务、电子联单服务等基于Spring Boot实现,它们在服务注册中心注册服务实例并获取动态配置与服务列表。服务注册中心基于Nacos实现,负责服务注册、发现、配置和管理,其整合Spring Boot Admin实现各个微服务运行状态的监控。
图3 船舶污染物监管系统技术架构
用户认证服务中心基于OAuth 2.0实现,当从网关接收到用户登录请求后,其从用户统一登录微服务获取用户信息进行验证,生成JWT(Json Web Token)令牌返回给用户,令牌携带用户信息和有效时间;当用户再次发送请求时携带JWT令牌,Gateway网关直接从JWT获取用户信息进行鉴权,实现高效的安全认证。
在数据中台,船舶污染物监管相关数据主要存储在达梦数据库中,结合高速缓存内存数据库Redis满足实时的高并发需求。同时,利用Logstash从数据库采集数据存入分布式的ElasticSearch索引库,利用其高效的全文搜索引擎满足时空统计等微服务对大范围历史数据进行快速准确查询和时空分析的需求。
(二)微前端架构
广西数字港航一体化应用生态圈主要基于基座模式的微前端架构开发。微前端类似微服务架构,将前端应用由单一的单体应用转变为多个小型前端应用的聚合,各个前端应用可独立开发和部署,然后由一个主应用基座进行管理并作为系统的统一入口。广西船舶污染物监管系统作为一个主要业务模块,遵循统一的微前端框架约定方案,主要利用H5和Vue进行开发,分别形成基于小程序和Web的微应用系统嵌入基座并由基座路由加载。
(三)系统特点
系统采用微服务和微前端架构,具有很强的灵活性和可扩展性,不仅方便系统的开发和部署,而且当检测到某些微服务的访问压力比较大时可以动态增加微服务的实例数量,进行动态扩容。例如:当Gateway网关微服务的访问压力较大时,可增加Gateway的实例数量,新增的实例会自动注册到Nacos服务中心,并由Nacos根据相应的策略动态调用,实现系统的按需扩容,极大地方便了系统的维护。
四、船舶污染物监管系统实现
(一)小程序
船舶污染物监管小程序主要面向现场用户,包括营运船舶、污染物回收船舶(站点)、转运车辆以及污染物处置单位人员。小程序包含在广西港航一体化应用APP基座中,也可通过微信小程序入口调用,图4显示了小程序的系统界面。船舶用户可方便地通过APP或者微信小程序直接进行污染物接收申请,同时可得到及时预警提醒并进行统计查询。污染物接收单位、转运单位和处置单位工作人员同样可以通过APP或小程序方便地对污染物转运和处置过程进行确认和跟踪,形成最终电子联单,图5为船舶污染物转运和处置过程的小程序界面。
图4 船舶污染物监管小程序系统界面
图5 船舶污染物转运和处置过程小程序系统界面
(二)Web监管系统
船舶污染物Web监管系统主要面向海事、港航发展中心、环卫以及船舶公司等管理用户,提供协同监管工作台。图6为其系统界面,系统主要实现包括船舶污染物接收、转运、处置的数据监控与电子联单管理,统计分析数据大屏,预警违规处理,通知公告以及车船、单位和用户管理等功能,在统一平台实现各管理方的协同监管。
五、结语
图6 船舶污染物W eb监管系统界面
依据广西数字港航一体化应用的顶层设计,基于微服务和微前端架构,综合利用电子航道图、视频检测和时空分析等技术,设计了广西船舶污染物监管系统。其将在广西全面推广,以提升广西内河船舶污染物监管能力和服务水平。随着船舶污染物监管系统应用的不断推进,将会产生更多的管理或服务的需求。基于微服务的架构可以很好地适应系统的持续演化,其松耦合和高弹性的特性,使之能够以较小的代价不断集成以微服务形式出现的新业务功能。此外,其基于集群部署的强大可扩展能力也能够很好地适应用户规模的不断扩大,持续为广西船舶污染防治做出贡献。