基于微服务架构的三峡通航智能调度系统整体设计
2022-09-14汪璐王前司马俊杰张栋
汪璐,王前,司马俊杰,张栋
(长江三峡通航管理局,湖北 宜昌 443002)
0 引言
现有三峡通航调度系统于2014年建成投运,系统涵盖了申报、安检、到锚等七大主要功能,实现了两坝船闸及升船机“一次申报、统一计划、统一调度、分坝实施”的无缝调度指挥,切实提高了船舶过闸效率,保障了通航安全。随着近年来三峡通航形势的变化,三峡通航管理部门、过坝船舶以及社会各界对通航调度提出了更高的要求,为切实推动三峡通航高质量发展,顺应通航发展新形势,提升船方过坝体验、提高过坝效率,三峡通航管理部门在现有调度系统基础上,着手三峡通航智能调度系统开发研究工作[1]。
三峡通航智能调度系统开发涉及多方面内容,如系统主要功能模块的需求、核心功能的模型与算法、信息采集方式等,是一个系统性工程,本文主要研究系统整体框架设计。
1 微服务架构概况
微服务架构是一项在云中部署应用和服务的新技术,基本思想在于考虑围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,可使部署、管理和服务功能交付变得更简单。
微服务架构的关键在于该服务可以在自己的程序中运行。基于此可将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,就必须缩小进程范围。在微服务架构中,只需在特定的某种服务中增加所需功能,而不影响整体进程的架构[2]。
因此,在三峡通航智能调度系统建设中采用微服务架构,有利于在同一个综合性系统中充分实现三峡通航调度组织、安全监管、信息服务等功能,同时有利于在通航管理规定、业务流程变更时对系统的某项功能进行重新设计、改造,符合远期三峡通航智能调度系统升级和扩展需求。
2 三峡通航智能调度系统框架的构建
三峡智能通航调度系统在遵循三峡通航管理局现有规范与标准(应用系统架构及数据中心)的基础上,结合气象、水文、通航环境实际情况,实现三峡调度水域自动化、智能化通航调度组织与安全监管,实现基础数据采集、船舶申报、智能计划、船舶安检、锚泊管理、计划执行、船舶进程管理及预警、信号控制、疑似问题船舶甄别与处理、统计分析、信息服务及管理、信息集中动态展示、综合查询、日志及接口管理等功能,完成船舶过坝申报、到锚排序、“三位一体”智能化调度方案生成、自动锚泊、远程智能安检、通航调度信息发布、自动化发航、计划执行与计划调整等一系列业务处理。三峡智能通航调度系统通过构建规范的整体流程,确定了先计划后安检的模式,实现了船舶申报后可预期并细化了联控调度的组织工作。
在确定船舶过坝整体流程的基础上,在三峡通航智能调度系统中构建以下基本功能模块。
(1)通航业务模块
该模块主要用于与船舶过坝直接相关的功能的实现,包括船舶申报、锚泊、安检、计划、过闸等,由通航业务服务对象使用。
(2)通航管理模块
该模块为保障船舶过坝秩序、统计船舶过坝效益等工作而设立,主要由通航管理部门来使用。具体功能包括:对船舶航行实际情况偏离业务流程的船舶进行提醒、纠正;对疑似违法、违规、违章以及不诚信的船舶进行筛选、认定及处理;对通航调度组织产生的相关数据进行统计、分析、应用、展示;展示枢纽运行实际情况。
(3)服务需求模块
该模块聚焦于为实现智能调度业务,在智能调度系统之外需增加的服务需求,主要分为信息采集需求和信息处理和服务需求等,主要用于为通航业务模块和通航管理模块的功能实现提供支撑。
(4)其他系统运行模块
该类模块是指数字化的系统在运行过程中,为保障系统正常有序运行而设的模块,如用户管理、日志记录等,为系统通用模块。
三峡调度系统采用微服务架构,各模块之间基本相互独立,松耦合,各模块、系统之间的数据都通过数据交换平台进行数据交换,除像申报、到锚等直接关联内外网的业务处理可以进行模块间通信外,其余业务都通过数据平台进行数据中转。三峡通航智能调度系统整体框架如图1所示。
图1 三峡通航智能调度系统框架图
3 三峡通航智能调度系统的整体设计
三峡通航智能调度系统通过对船舶过闸全过程的梳理,理顺过程中各环节的逻辑关系,围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更简单,通过将应用和服务分解成更小的、松散耦合的组件,使其更容易升级和扩展,并采用成熟的三层应用架构,实现业务数据、业务逻辑、用户展示相分离,利于系统横向纵向扩展,实现系统性能动态提升、资源动态扩展等。基于微服务架构的三峡通航智能调度系统的三层应用具体如下。
(1)展示层
根据不同业务特性选择不同的技术路线,对于一线操作人员,提供基于江图可视化的人机交互操作界面和数据集中展示的表格化UI界面;对于管理者,提供自定义的二维统计途径,获取多维度数据信息;对于指挥中心集中监测数据内容,则采用业界常用的BI可视化工具,实现数据一站式大屏展示[3]。
(2)业务逻辑层
基于微服务架构的理念,三峡通航智能调度系统在进行整体设计时对核心业务逻辑进行拆分,将原来大而全的单进程架构按照业务模块拆分成可独立部署的应用程序,以达到平滑系统更新、升级,方便负载扩展的目的。
考虑到三峡通航智能调度全流程自动运行,实现现有区域联动控制计划、安检计划、过坝计划“三合一”,形成“一根主线”+“多个业务分支”的模式。“一根主线”即过闸滚动计划,“多个业务分支”即滚动预计划、安检计划、锚地指泊、过闸安检、过坝计划、调度发航及闸次运行。因此,根据各业务流程环节的特性,采用多任务调度中心的形式,拆分核心业务层,通过消息队列组件确保各环节能自动衔接流转。主要包括一个任务控制中心和多个业务处理中心,即多任务调度控制中心和业务服务处理中心、调度规则中心、调度数据中心、数据服务中心、数据分析中心、监控告警中心等多个业务处理中心。业务逻辑层的任务控制中心和业务处理中心架构如图2所示。
图2 三峡通航智能调度系统业务逻辑层架构图
采用dubbo微服务架构,还支持服务治理、负载均衡等功能。这样不仅可提高系统的可用性,还能动态提升系统应用层的性能。如业务处理中心的自动计划编排入库业务非常繁忙,占用较多的CPU和内存资源,可另外加一台机器,单独再部署一个自动计划编排服务,使得整个系统有自动计划编排服务在同时工作,平衡负载[4]。
根据该系统构架,业务逻辑层通过调度数据中心接收各项船舶及调度相关信息,结合其他方式采集的相关信息,通过调度规则中心和业务处理中心进行处理,通过科学的计划编制算法来实现“三合一”滚动计划的编制工作。
(3)数据层
随着调度业务的不断变化,单纯的结构化数据已不能满足业务需求,随着非结构化数据的引入,数据层需要考虑数据库瓶颈。大量复杂的数据查询表连接逻辑充斥整个系统,数据库垂直拆分成功的关键就是如何重新设计系统数据层各模块相互耦合的问题。
4 三峡通航智能调度系统的整体表现
基于微服务架构的智能调度系统的具体表现包括:
(1)计划编制全智能:系统根据通航环境、建筑物运行状态和各项管理规则的应用,自动编制闸次框架,并将待闸船舶纳入框架内,形成完整的计划内容,涵盖联动控制预计划、安检计划、过坝计划等方面,并根据实时运行情况智能滚动。
(2)调度监管全智能:通过智能发布调度(航行)指令实现智能指挥(进出闸指挥、通行信号揭示)、智能发航、智能锚泊等服务,并跟踪各项进程中的船舶航行情况,实现助航、监管等服务。
(3)通航调度范围全线条:实现船舶过坝申报水域范围无限延伸,取消区域限制。
(4)联动控制和安全管控全链条:实现“船舶从港口出港申报→联动控制沿途海事管控→过闸安检→调度发航→过闸指挥”的全程联动,有效衔接。
(5)通航环境和通航建筑物运行信息全感知:通过图像识别、传感器应用和对接其他管理部门信息实现水文气象、外围港口数据、船流动态、船闸工况、航道通航、应急救援等信息的全方位感知。
(6)通航数据管理及统计全覆盖:建立调度数据分中心,实现通航管理集中采集,生成的所有动、静态数据统一管理。
(7)通航动态管理全适时:通过数据分析中心,适时研判通航要素,集中展示辖区运行态势。
5 结语
三峡通航智能调度系统开发在满足计划编制全智能、调度监管全智能、通航调度范围全线条、联动控制和安全管控全链条、通航环境和通航建筑物运行信息全感知、通航数据管理及统计全覆盖、通航动态管理全适时等智能化功能需求的基础上,从系统开发角度考虑,新开发设计的调度系统要不断适应通航形势的变化和用户的需求变化,保证有更新升级空间。本文研究采用微服务架构进行三峡通航智能调度系统的总体设计,实现各功能模块在整个系统结构中可以“插拔”,功能模块间除必要业务联系和逻辑关系外,基本处于一种松耦合状态,系统内数据交换集中在调度数据分中心内,对外数据交换统一由调度数据分中心执行,适应当前通航管理部门对智能调度系统的开发需求。