面向全路的货车车流径路公共技术服务平台研究与设计

2022-11-22 06:31邓桂星
铁道货运 2022年11期
关键词:径路车流路网

邓桂星

(中国铁路兰州局集团有限公司 信息技术所,甘肃 兰州 730000)

0 引言

车流径路是铁路货物运输组织的基础,是编制货物列车编组计划和运行图的前提,是组织货运生产与经营的基本依据,也是提升路网效率和效益的重要手段[1]。近年来随着国家产业结构和生产力布局的调整,高速铁路成网后主要干线货运能力释放,兰渝(兰州东—渭沱)、唐包(曹妃甸北—包头东)、浩吉(浩勒报吉南—吉安)等货运新通道形成,西合(新丰镇—合肥东)、阳安(阳平关—安康东)、渝怀(团结村—怀化西)等既有线扩能,新丰镇、兴隆场、襄阳北等编组站能力补强[2],铁路客户对运输价格变化日益关注。为适应铁路货物运输高质量发展,车流径路调整频率正逐步加快。而在车流径路日常调整后,如何通过先进技术手段为全路货运、调度、运输、统计和财务业务人员提供复杂路网条件下的可视化径路分析,以及如何利用网络通道为全路技术计划、货运计划、中国铁路95306 网(以下简称“95306 网”)、车流推算、运到时限、18 点统计、承运清算等应用提供实时径路数据支撑,是当前我国铁路运输高质量发展亟待突破的技术难点。

目前,面向全路的车流径路查询软件是传统的单机界面程序,只能以文本方式查询单条OD 车流径路结果,此种模式不直观、作业效率低,不利于业务人员对车流径路的全面理解与分析。车流径路查询软件界面如图1 所示。车流径路为全路技术计划和货运计划等信息系统以DLL(C++动态链接库)方式提供离线数据支撑,此种模式本地计算效率高,但依赖业务人员对车流径路新版本数据的手工下载,如数据更新不及时,则会造成信息系统和实际运输组织的不统一。货车车流径路公共技术服务平台是为解决上述问题而进行设计研究,实现网页端车流径路可视化分析与海量高并发访问的实时数据传输是该平台的构建目标。

图1 车流径路查询软件界面Fig.1 Train flow route query software

1 车流径路公共技术服务平台设计

车流径路公共技术服务平台主要围绕直观性、高效性、稳定性和安全性进行设计,在此基础上满足不同专业的车流径路分析需求,满足不同应用的车流径路定制化需求。

1.1 平台目标

车流径路公共技术服务平台的设计主要包括B/S 可视化平台[3]、Socket服务和可视化服务的设计[4],分别面向业务人员和应用系统提供技术支撑。B/S 可视化平台面向货运、调度、运输、统计和财务等专业用户,满足全路车流径路优化、计费径路制定、编组计划调整、迂回径路判定、违流径路检测、生产经营决策等业务需求;Socket 服务面向全路相关应用系统提供稳定、高效、安全、可定制的车流径路数据服务,满足95306 网货运全程追踪、违流监测和运到时限等应用的海量高并发访问需求[5];可视化服务面向全路应用系统提供可视化路网和车流径路支撑,满足二次开发需求,兼容谷歌内核浏览器。

1.2 技术架构

B/S 可视化平台以数据驱动文档(D3)实现路网的矢量化展示,以Spring Boot 微服务架构处理业务数据请求,以MySql 为数据库进行基础数据存储。套接字(Socket)服务以Docker 为服务容器,以Nginx 为负载均衡,以Socket 为通信技术。可视化服务以Js 方式提供可视化调用接口。车流径路公共技术服务平台技术架构如图2所示。

图2 车流径路公共技术服务平台技术架构Fig.2 Technical architecture of train flow route public technical service platform

1.3 平台功能设计

车流径路公共技术服务平台的功能主要包括路网展示、数据检索、车流径路、车流分析、Socket 服务、可视化服务和系统管理7部分。

(1)路网展示功能主要分铁路局集团公司、省份、线路、合资地方铁路、单复线和本线到发展示等6个场景,实现全路货运接算站示意图的可视化矢量展示,用不同颜色区分线路各种属性。用户可与全路货运接算站示意图中的各元素进行交互,查看线路和车站属性,为用户详细掌握路网基础数据提供可视化的便捷操作。

(2)数据检索功能实现车站、线路的快速定位及展示。用户通过首字母、电报码和汉字3 种输入方式在复杂路网中对车站进行快速查询和高亮定位,通过首字母和汉字2 种输入方式在复杂路网中对线路进行快速查找和高亮定位,有效提高用户对基础数据的检索速度和日常作业效率。

(3)车流径路功能为用户提供点点径路、环状径路和支点径路3种径路分析场景。点点径路包含全路任意车站的两点径路和多点径路,以及特定径路、最短径路、品类等条件选项,提高用户对车流径路规章的理解和应用水平;环状径路提供任意车站到全路的环状径路,有效提升用户对车流径路和最短径路分析能力;支点径路为全路任意车站经过支点站所覆盖的到域范围,此功能丰富了车流径路的内涵,特别是要为编组计划制定人员提供编组站组号范围界定的参考依据。

(4)车流分析功能提供全路任意支点间矢量车流的可视化分析手段,用户可通过可视化操作选择经由支点、非经由支点、品类和车种等作为条件,平台利用全路货源数据,可视化展示矢量车流和装卸分布,此功能为车流径路的调整、编组计划的优化、线路和技术站运能与运量的定量分析提供技术支撑。

(5)Socket 服务为全路相关应用系统提供稳定、高效、安全和可定制化的径路数据服务,满足Java,C#,C++等语言的实时动态调用。

(6)可视化服务为相关应用系统提供基础路网和车流径路的可视化服务,满足车辆定位、轨迹铺画等二次开发需求。

(7)系统管理功能主要包含了用户管理、数据下载、版本更新等功能,为平台的基础性功能。

2 车流径路公共技术服务平台的实现

车流径路公共技术服务平台的实现主要分为径路服务、事务处理和平台展示3个模块。

2.1 径路服务模块

径路服务模块是车流径路公共技术服务平台的核心,承担了基础数据处理[6]、车流径路计算[7]、车流流量分析、外部Socket访问等重要运算任务,并满足海量高并发访问下的稳定、高效和安全的需求。该平台采用C++图形化开发框架(Qt)、大批量文件描述符处理(EPOLL)、Socket、负载均衡(Nginx)、应用容器引擎(Docker)等技术,实现了车流径路公共技术服务平台径路服务模块的构建。

在技术选型方面,径路服务模块利用Qt 技术的跨平台机制,实现既有车流径路系统从Windows 平台向Linux 平台的移植,保留了C++语言高速运算的优势;利用EPOLL 模型在海量并发访问的高效处理特性,实现了径路服务的封装与边缘触发的调用[6];采用Socket套接字编程技术,实现了径路数据通过二进制方式的远程传输,并满足Java,C#,C++等多种语言的实时动态调用。

在基本满足稳定、高效和安全前提条件下,为确保95306 网和运到时限等应用的海量高并发访问需求,本研究采用Docker 技术部署径路服务,实现了单台虚拟机径路服务由单进程向多进程的转变,实现了对虚拟机资源的高效利用;同时,应用Nginx 反向代理技术,实现了对多个Docker 容器中径路服务的负载均衡,满足了相关应用海量高并发访问需求。径路服务模块系统架构如图3所示。

图3 径路服务模块系统架构Fig.3 System architecture of train flow route service module

径路服务模块基于Linux平台的EPOLL模型进行设计和编码。EPOLL模型是Linux内核为处理大批量文件描述符而作了改进的POLL,是Linux 下多路复用I/O接口select/poll的增强版本,能显著提高系统在大量并发连接中只有部分活跃的情况下的系统CPU利用率。采用TCP/IP 协议在传输层进行数据通信,极大地提升了数据的传输效率[6]。径路服务利用多线程技术,分工处理客户端请求,以提高服务运算效率,其中监听线程A负责监听车流径路数据版本,监听线程B 负责处理新的客户端连接,主线程采用边缘触发模式处理已经发生的客户端事件、径路计算和数据传输等相关事务。径路服务数据处理流程如图4所示。

图4 径路服务数据处理流程Fig.4 Route service data processing flow chart

2.2 事务处理模块

事务处理模块是车流径路公共技术服务平台的中枢,承担径路服务模块数据的解析、基础功能的处理、平台展示数据的传输等事务。模块架构采用Spring Boot 框架进行设计。 Spring Boot 基于Spring4.0,不仅继承了Spring 框架既有的优秀特性,而且还通过简化配置进一步简化了Spring应用的整个搭建和开发过程。

本研究在继承Spring Boot 框架优势的前提下,利用Socket客户端实现对径路服务模块的访问,应用面向对象的思想对返回的二进制数据进行解析;采用Jpa(Java 持久层API)作为数据持久层,充分利用其简便和高效优势,对平台基础性数据进行操作;采用Restful 方式与平台展示模块进行数据传递。事务处理模块数据架构如图5所示。

图5 事务处理模块数据架构Fig.5 Transaction processing module data architecture

事务处理模块主要包含控制层、业务层、Socket流数据解析和持久层。控制层用于逻辑控制,采用Restful 方式与平台展示模块进行数据交互;业务层负责业务逻辑的实现,是控制层和Socket流数据解析与持久层的交互区域,实现用户权限的判别、系统菜单的分配、径路数据的处理等事务;Socket 流数据解析利用Socket 客户端接收径路服务模块传输的路网、径路和车流数据,按字节进行解析后生成对象实例;持久层采用Jpa 技术实现对关系型数据库的增删查改。

2.3 平台展示模块

平台展示模块是车流径路公共技术服务平台的窗口,承担用户交互、可视化展示、径路分析等重要任务。在技术选型方面,采用Bootstrap 作为前端框架,实现了主界面布局的自适应和元素动态渲染;借鉴JavaScript 原生的面向对象思想,实现了对路网展示、车站定位、径路分析、车流分析等方法的封装,提高了代码的开发效率和可维护性;运用D3矢量图形技术,实现了路网矢量图的拖动和缩放,以及圆、线、路径、字型的快速铺画,满足了全路相关业务部门对路网展示、数据检索、车流径路[8]、环状径路、支点径路和车流分析等功能需求。平台展示模块的车流径路如图6所示,环状径路如图7所示,支点径路如图8所示。

图6 车流径路Fig.6 Train flow route

图7 环状径路Fig.7 Ring path

图8 支点径路Fig.8 Pivot path

3 测试及应用效果

车流径路公共技术服务平台于2021 年部署测试运行,是全路首次以网页方式实现车流径路的可视化分析。目前,全路各专业测试用户已达1 500 余人,同时为95306 网和中铁特货物流股份有限公司(以下简称“中铁特货”)相关应用系统提供了车流径路数据服务。

3.1 可视化平台

车流径路公共技术服务平台的全路测试用户主要涵盖货运、调度、运输、统计、财务和信息等专业,平台各功能一是解决了路网和径路可视化展示问题,二是能够快速定位复杂路网中的车站和线路,三是能够对车流和径路进行深度的可视化分析,提高了业务人员的工作效率。

该平台在2021 年全路《货车车流径路》(铁货[2021]58 号)和《货物列车编组计划》(铁运函[2021]137号)规章的制定和执行工作中发挥了关键作用,最大程度统一了各铁路局集团公司相关专业人员对车流径路的理解和认知,铁路局集团公司编组计划制定人员利用该平台仅需1 d 即可完成编组站组号范围的界定,以往则需数天以上。目前平台运行稳定,日均访问量在5 000次以上。

3.2 Socket服务

车流径路公共技术服务平台为95306 网货运全程追踪和中铁特货机保车走行公里等应用提供了径路数据服务,利用Socket 客户端实现了Java 和C#等语言的实时远程调用,并可根据应用需求返回里程、线路等级里程、内燃电力里程、分界口、经由站等多种数据集,同时在海量高并发访问时保持了稳定与高效,目前日均数据访问量超过50 万次。95306 网货运全程追踪应用如图9所示。

图9 95306网货运全程追踪应用Fig.9 Freight tracking application on 95306 net

3.3 可视化服务

车流径路公共技术服务平台为中铁特货车辆动态追踪应用提供了可视化服务,能够直观反映中铁特货车辆动态分布、停留状态,以及单个载重车辆已经过的轨迹和未来将要经过的线路。车辆动态追踪应用如图10所示。

图10 车辆动态追踪应用Fig.10 Trains dynamic tracking application

4 结束语

车流径路公共技术服务平台较好地解决了车流径路可视化分析和全路数据同步问题。下一步,平台将在可视化展示、径路分析、Socket 服务、可视化服务等方面继续深化技术研究,为全路相关专业人员和应用系统提供更便捷的操作方法、更高效的响应速度、更丰富的功能支撑,为新时期中国铁路运输高质量发展做出新的更大的贡献。

猜你喜欢
径路车流路网
云南智慧高速路网综合运营管控平台建设实践
基于多源异构大数据融合技术的路网运行监测预警平台
宁夏高速公路路网“最强大脑”上线
铁路货物计费径路调整影响探讨
插入性室性早搏揭示房室结双径路Lorenz-RR散点图1例
车流径路辅助决策系统优化与实践
基于车流径路选择偏好的铁路车流运行径路动态预测方法研究
道路躁动
故乡的车流(外一首)
打着“飞的”去上班 城市空中交通路网还有多远