第十六届中国智能交通年会科技论文集
上QQ阅读APP看书,第一时间看更新

PART Ⅰ
一、城市交通领域

基于微服务的地铁综合资讯发布管理系统

赵伟慧,汪晓臣,黄志威

中国铁道科学研究院集团有限公司电子计算技术研究所,北京 100081

【摘要】针对各城市地铁综合资讯的运营需求和管理现状,本文基于微服务架构设计了一套可实现地铁服务信息便捷定制与扩展的综合资讯发布管理系统,重点解决了地铁综合资讯发布管理系统软件总体架构以及媒体资源管理、版式编辑发布、播放监控等各模块的功能拆分设计及实现。系统软硬件成套产品在苏州地铁5号线试点应用,解决了车站周边信息、运营时刻、线网图、运行图、沿线地标等定制化信息的灵活编辑与动态发布。

【关键词】乘客服务;综合资讯;微服务;信息定制;动态发布

Metro Integrated Information Release Management System Based on Micro Service Architecture

Zhao Weihui, Wang Xiaochen, Huang Zhiwei

Institute of Computing TechnologyChina Academy of Railway Sciences Corporation LimitedBeijing 100081

Abstract: Combined with the operation requirements and management status of metros in various cities, an integrated information release management system is designed based on micro service archi tecture, which can realize convenient customization and expansion of metro service information. Based on the overall framework of system software, the function split design and implementation of the media resource management, layout editing and release, broadcast monitoring and other modules are introduced in detail. The system solves the flexible editing and dynamic release of customized infor mation such as station surrounding information, operation time, line network diagram, operation diagram and landmark along the line and it has been applied in Suzhou Metro Line 5.

Key words:passenger service;integrated information;micro service;information Customizing;dynamic release

1 引言

地铁综合资讯发布管理系统依托多媒体网络技术,以车站触摸显示屏终端为媒介向乘客提供信息服务,作为城市轨道交通对外宣传、提升自身的整体形象、为进入轨道交通内部的乘客提供服务指南的重要窗口。随着建设智慧地铁的发展背景,乘客信息服务方式和内容需要更为智能,当前乘客信息的播放终端发布信息版式固定,发布模式不灵活,内容单一,缺少智能化的信息发布和便捷查询,且基于传统分布式架构的服务资源耦合度高,应用系统规模和复杂度及代码规模不断增长,应用容错性和扩展性差,难以维护和更新。本文针对地铁智慧车站建设需求,基于微服务架构设计了综合资讯发布管理系统软硬件架构,具备终端播放版式和各类服务信息的定制发布及乘客自主查询功能,实现发布业务信息、发布商业广告、提供车站周边环境及车站周边地图、线网地图信息及各项附加服务的查询功能,为轨道交通的信息沟通提供了重要手段。

2 需求分析

2.1 资讯服务和运营管理

地铁常规运营模式下资讯业务一般包含提供商业广告和运营信息查询、车站周边信息查询、列车时刻表查询、出行查询、公交换乘信息查询、线网查询、运营与导示信息交替显示、网管功能等实时动态的多媒体信息。车站配置LCD触摸屏为站内乘客交互终端,可配合网管平台实现远程开关机、定时开关机、智能分屏功能、对接广告运营商的视频信号、实现运营信息的展示与交互等功能,并通过计算机网络系统实现终端远程监控,使设备安装、系统管理、系统升级、系统维护等实现更加方便、快捷、准确。车站配置LCD触摸屏显示终端的主要业务为以下方面:

1)周边信息,包括车站附近公交车站名称和可换乘路线,附近道路和地标信息等。

2)线网信息,包括地铁线网地图展示及换乘查询。

3)导航信息,包括车站平面图、线路运行图、服务设施位置等导航指引。

4)运营信息,包括本站首末班车时刻,车站发布的运营通告、失物招领、紧急消息等。

5)媒体信息,包括线路运营宣传、公益广告、文化旅游等图片及视频播放信息。

随着智慧地铁建设发展,资讯服务信息不再局限为简单的运营信息,而是需要及时灵活地发布车站和列车客流密度、环境感知因素、客流疏导情况,提供信息定制和乘客自主查询功能,需要将多系统的采集数据融合发布显示,多系统间接口的固定交互和业务逻辑高耦合问题在当前资讯服务应用中较为突出,影响了当前资讯服务新业务按需扩展,因此需要解耦固定端口,实现灵活扩展。

2.2 Spring框架发展现状

Spring是一个开放源代码的轻量级应用程序框架,地铁综合资讯发布管理系统基于Java语言开发,随着J2EE应用程序框架的不断发展,软件产品也不断升级重构。在Spring框架初始应用时,所有的配置都需要通过XML实现,随着项目的扩大,需要频繁地在Java和XML之间切换,在Spring之后的迭代版本开始逐步采用Java配置替换XML配置。随着动态语言的发展,Java配置方式的应用开发明显过于烦琐,配置复杂、开发效率低等问题日益凸显,同时与第三方集成的繁杂也严重影响了框架的可用性和高效性。

为解决上述问题,在核心Spring框架的基础上出现了全新Spring Boot框架,该框架核心思想是约定大于配置,使用特定方式进行配置,使开发人员不再需要定义样板化的配置,可实现通过少量代码创建一个基于Spring的独立的、产品级别的应用,主要优点如下:

1)集中配置和注解,简化开发流程,开箱即用,更快、更方便地与第三方组件及应用整合,比如消息队列、缓存等在企业级开发中常用的组件,可以快速构建和运行Spring应用。

2)提供Spring各个插件的基于Maven的pom模板配置。

3)提供丰富的企业级非业务功能开发特性,包括系统监控、故障诊断、权限控制、安全和健康检查等。

4)部署和运行便捷,内嵌Tomcat和Jetty容器,无须生成JAVA WAR文件及烦琐的Web配置。

通过升级Spring Boot框架,产品实现了系统前后端分离,使得后端服务相对独立,不受前端界面渲染的影响,形成服务化初始模型。

3 系统架构和关键技术

3.1 系统总体架构

地铁综合资讯发布管理系统以综合资讯发布管理服务为处理中心,各车站服务为子处理端,通过标准数据接口及数据格式,实现车站展示终端配套管理、参数配置、数据更新、接口定义、权限控制等功能,系统总体架构如图1所示。

图1 系统总体架构

地铁综合资讯发布管理系统依托地铁线路中心工业云平台实现,在线路中心云平台部署业务服务应用和与外部的接口服务程序,采用中台提供的MQ消息总线服务和MySQL数据库服务服务,并由云平台实现微服务治理,实现系统的数据采集、数据缓存、持久化、数据发布和数据共享,通过各服务接口向车站终端提供综合资讯信息。

车站终端主要分布于车站站厅和站台,站台设备分为上行站台设备和下行站台设备,各设备按照所属区域及位置从中心发布管理系统服务获取版式渲染需要的展示数据,主要包括版式、播放计划、媒体资源的获取以及各设备对应的周边、车站图、运营信息等定制化服务内容的获取。

3.2 基于微服务的软件架构研究

(1)微服务架构优势

微服务的核心思路是将庞大的单体应用进行划分,将高耦合度的交互业务转变为若干个小服务的组合,每个服务功能相对单一,每个服务根据业务需求和行业技术发展变化选择适合的技术类型进行开发维护,将业务封装后对外提供服务,通过使用容器做高可用部署,提高应用服务的可用性和稳定性。通过构建各个不同的独立服务实现系统业务功能,可以分型进行模块化开发,可以快速封装,具备松耦合、技术多元、可独立部署等应用开发优势。

微服务架构是去中心化的软件组织架构,解决了应用微服务化之后的服务治理问题。独立的各个服务之间通过轻量级通信网络协议实现调用和数据交互,通过依赖构建一套自动化运行机制实现集中式服务管理。微服务架构模式下各个服务有独立的运行进程,每个服务都可以独立进行部署,当业务发生变更时只需修改对应微服务重新部署,无需重新编译、部署整个应用,可以大幅缩短升级周期。

(2)Spring Cloud框架

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,利用Spring Boot的开发优点简化了分布式系统的搭建,是完整的微服务解决方案,其框架如图2所示。Spring Cloud提供服务注册(Eureka Server)、服务网关(Zuul)、断路器(Hystrix)、客户端负载均衡器(Ribbon)、声明式服务调用(Feign)等组件,基本包含了微服务架构各方面的需求,封装了成套的轻量级组件,节约了开发成本。Spring Cloud Eureka定义了服务注册,服务消费者通过Ribbon实现以合适节点访问获取服务生产者的信息,且Hystrix可以防止对某一故障服务持续进行访问,避免系统因任务积压导致瘫痪。

图2 Spring Cloud框架

3.3 基于RESTful的数据接口定义

传统远程过程调用(RPC)基于原生TCP,需要在客户端和服务器之间建立通信连接,数据报文格式自定义、速度快、效率高,用于多系统之间的内部调用。HTTP是一种网络传输协议,规定了数据传输的格式,在实际应用中更加灵活。RESTful通过定义指定路径实现对服务的访问和数据交互,通常包含POST、DELETE、PUT和GET四种请求方式分别实现操作对象的增、删、改、查功能。RESTful数据结构可读性和可扩展性强,且调用和测试更加便捷明了。基于微服务设计模式,各个业务被拆分为独立对外提供的服务,通信机制采用RESTful更加合适,因此地铁综合资讯发布管理系统的核心业务数据通过统一的RESTful风格的JSON API通信,数据处理流程如图3所示,主要包含系统前后端之间的交互和终端与中心服务之间的交互。

图3 数据处理流程

一方面,中心综合资讯发布管理系统前端与后端服务通过RESTful API进行服务访问和数据交互,实现业务处理。数据服务端完成内外部数据的采集和处理,按照业务需求形成统一通用的接口数据协议,以网络访问形式对外提供服务数据给客户端使用。例如,周边环境等信息可以通过客户端录入信息数据,将html、excel、图片、文本、视频等资源上传,由数据服务端解析为Json格式进行前后端数据调用及展示。

另一方面,车站LCD触摸屏终端播放控制器与中心服务之间的物理接口为千兆以太网端口,也通过RESTful API方式实现服务访问和资源获取。例如,列车时刻表查询,把中心相关接口提供的列车时刻表信息通过网管平台统一获取中转后以文字形式下发到LCD触摸屏终端展现给乘客。

4 功能设计与实现

4.1 后端管理业务拆分设计

地铁综合咨询发布管理系统涵盖了地铁各类运营服务信息的上传、编辑、审核、发布等内容,基于微服务设计理念,按照用户业务类别和操作流程将系统功能划分为媒体资源管理、车站定制信息管理、版式自定义发布和终端播放管理四个子系统,各子系统的服务模块设计如图4所示。

(1)媒体资源管理 媒体资源管理模块实现客户端本地图片、视频及自定义文件资源上传到中心媒体服务器,供播放终端依据播放计划按需下载播出,并提供媒体属性获取、生成媒体缩略图、媒体预览、媒体下载、媒体删除等管理功能。

图4 地铁综合资讯发布管理系统服务设计

(2)车站定制信息管理 车站定制信息是针对车站运营信息、导向信息、换乘信息等非图片和视频类的服务信息,提供的按车站、按区域灵活配置功能。车站终端播放设备通过中心发布管理系统的定制化接口获取上述服务信息,用于版式对应模块的数据渲染,主要包括周边公交、道路、建筑、线网图、线路图、车站图、首末班车、运营消息及沿线地标等。

(3)版式自定义发布 版式是一个完整的可以在播放器上进行播放的内容整体,规定了在播放器屏幕的哪个位置播放哪个播放列表的内容,即终端播放画面分区设置,包括播放画面显示比例、屏幕大小以及各播放列表的大小、位置信息编辑、播放频道中逻辑变量管理。

(4)终端播放管理 按照线路-车站-设备模式,将各节点的监控功能整合到一个设备树结构,为车站媒体播放终端配置播放版式,将播放计划下发播放;同时,管理系统可以通过画面截屏和实时监看对各播放终端的输出画面进行监控,实现在线开关机等设备控制。

4.2 终端信息获取及显示

终端触摸播放设备运行包括初始化、媒体下载、播放、退出模块,业务流程如图5所示,主要包括初始化、资源下载、播放、退出四个部分。

1)初始化:初始化配置文件、授权文件、主框架基本参数,启动相关线程。

2)资源下载:根据下发的版式定义和播放计划文件,从中心服务端获取播放资源。

3)播放:将主框架上组件按最新播放计划将各区域数据及媒体显示到屏幕上。

4)退出:释放资源,退出播放。

触摸查询终端与综合资讯管理服务之间通过RESTful API接口获取播放内容,包括设备开关机控制、音量调节、心跳报活、计划获取、媒体获取、周边及车站定制信息、运营信息等。触摸查询终端控制软件将整个程序作为一个容器,按照服务端定义的播放版式及计划描述文件的定义,对画面的各个分区进行渲染绘制,包括视频播放组件、图片播放组件、交互查询播放组件、文本播放组件、定制组件等,根据版式中播放列表的类型选择相应播放组件进行播放和相应功能的查询操作。

图5 终端触摸播放设备业务流程

5 结语

基于微服务架构组件化设计思路,将地铁综合资讯发布管理系统核心业务划分为独立的微服务,对传统媒体资源及定制化信息发布管理业务重新设计,采用前后端分离的模式,运用Spring Cloud框架实现业务服务。结果表明重构后的发布管理系统服务调用响应速度得到提高,并发处理终端数量提高一倍,且扩展应用和新需求实现更为便利。基于微服务的地铁综合资讯发布管理系统解决了传统单体架构代码臃肿、业务逻辑耦合、资源无法隔离、扩展困难等问题,但同时也需要更高水平的项目管理,使开发人员、测试人员和维护人员更加便捷地协调工作,特别是在业务粒度划分、接口一致性、数据模板定义、测试运维等方面对项目成员的要求更高。

参考文献

[1]洪华军,吴建波,冷文浩.一种基于微服务架构的业务系统设计与实现 [J]. 计算机与数字工程,2018,46(1):149-154.

[2]辛园园,钮俊,谢志军,等.微服务体系结构实现框架综述 [J]. 计算机工程与应用,2018,54(19):10-17.

[3]吴文峻,于鑫,蒲彦均,等.微服务时代的复杂服务软件开发 [J]. 计算机科学,2020,47(12):11-17.

[4]汪峥,王孔明,范琪,等.地铁车辆基地综合自动化管理系统设计 [J]. 城市轨道交通研究,2020,23(10):166-170.