刘文韬,牛青坡,宋 阳
(中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)
目前,铁路运营条件(简称:运条)信息管理以人工方式为主、单机版系统简单查询为辅的模式,其信息管理并不具备广泛的智能化关联性,基础线路、车站信息更新仅限于单条线路的独立变更,在整个线路网络中的变化并不能自动联动,其信息管理方式仍需要更多的人工处理。随着信息技术的快速发展,运输市场结构不断变革,数据分析成为铁路企业提质增效的重要决策依据[1]。传统的管理模式与高速铁路大规模、大运量、高密度特征及信息化技术的发展不相适应[2],为进一步提升运条信息管理的信息化水平,基于铁路路网信息的业务特点,采用图形化方式,综合运用建模、动画、图形图像处理等方法对数据进行多维度表达[3],研究便捷的可视化展示技术,对整个路网中的“站”“线”进行关联,改变线站分散管理的弊端,辅助业务人员对数据进行分析及决策,为用户提供直观、生动的视觉展示效果,进一步提升铁路服务效率,实现铁路运条管理的全面创新。
运条信息管理系统的用户为中国国家铁路集团有限公司(简称:国铁集团)和铁路局集团公司两级,设计采用两级管理的B/S模式,通过该体系架构使得系统具有更好的可扩展性及实用性,为不同业务部门提供管理服务,系统体系架构,如图1所示。
图1 系统体系架构
运条信息管理应用总体上分为客户端、服务层、数据存储层3部分,通过浏览器模式提供的服务将更有利于系统开发及维护。
(1)客户端主要是面向业务用户,不同级别用户将拥有不同类型的业务权限,便于业务功能适应组织管理方式的需要。
(2)服务层接收客票专网环境下的客户端请求,完成运条信息管理相关业务,在客票专网条件下通过与既有客票系统之间的服务接口传输路网基础数据信息,实现客票系统信息与运条系统信息的一致性管理。可视化是服务层的主要业务服务,是对运条信息的图形化展示及管理,基于各车站模拟坐标所处的路网位置展现运条线路及车站情况,实现将独立的线站直观化管理。
(3)数据存储层主要是全面整合服务器、网络、数据等资源,为业务服务提供基础保障支撑及存储服务,运条信息管理应用设计统一部署于国铁集团,确保数据管理的完整性、一致性。
运条基础线站信息与客票系统路网信息密切相关,运条信息为基础,客票系统应用运条信息规范的线站信息,在业务流程上具有上下工序关系,运条信息为客票基础信息的数据源,在数据存储层设计需要考虑运条信息与既有客票系统数据的便捷互通,综合分析运条信息的业务特点。
(1)运条信息中包含线路、车站、里程、所属区域等表达规范的业务信息,此类信息设计采用与客票系统基础数据管理业务相同的关系型数据库方式存储。
(2)运条信息中的接续线、客运价格执行说明、线附注等信息具有包含大量文本信息的特点,选择具有高性能、易部署、易使用的文档类数据库MongoDB作为辅数据库,采用MongoDB方式描述,可以充分利用其可扩展特性,当出现运条信息项增加时,只需要增加key-value对即可,适合运条信息日常业务存在不定期新增附录的特点。
运条信息样列,如表1所示;数据库设计,如图2所示。
表1 运条信息结构化与非结构化数据样例
图2 数据库设计
基于运条信息包含大量动态非结构化业务信息的特点,选择MongoDB作为特定文本信息存储数据库。
(1)MongoDB是一个基于分布式、文件存储的NoSql数据库,与传统关系型数据库采用数据表形式存储的最大差异是以文档形式保存数据,存储内容具有按需扩展属性[4]。
(2)MongoDB具有面向集合、数据分组存储于集合、模式自由等特性[5],MongoDB利用keyvalue方式描述数据,并支持复杂数据类型、自动分片、自动故障转移等功能[6],为运条基础信息一致性管理提供保障。
(3)为扩展MongoDB的数据可用性,使用副本集(Replica Sets)方案提供数据冗余,当主服务器出现故障依然可以保证应用程序的正常运行和数据安全。MongoDB Replica Sets的机制通过多个节点构建形成具备自动容错、自动恢复的高可用性方案,实现故障自动转移。主节点(Primary)接收和处理写相关操作,两个备份节点通过复制(Repication)主节点实现同步备份,副本集通过心跳检测实现自动故障转移机制,确保高可用。
可视化管理流程,如图3所示。
图3 可视化管理流程示意
流程说明:
(1)加载路网样式模板信息:主要包括背景色、车站节点样式、线路样式等信息。
(2)加载运条车站属性信息:主要包含车站名称、车站等级、车站虚拟坐标等信息。
(3)初始化操作事件:主要包括鼠标缩放层级显示车站事件、右击修改车站虚拟坐标等相关交互事件。
(4)渲染运条线路轨迹信息:依据请求反馈线站数据,渲染线路轨迹。
(5)是否缩放:根据鼠标缩放事件触发获取不同等级车站信息。
(6)是否修改:若需要触发修改事件,则允许调整车站虚拟坐标,重新加载车站属性信息,页面重新渲染刷新展示;不需要修改,维护流程结束。
运条系统支撑基础线站可视化展示,需要满足运行稳定、绘制速度快、显示精准高和占用内存小等需求,经过综合比选分析Highcharts、D3、Echarts等技术特点及应用场景,最终选择应用Echarts技术。ECharts是通过多种不同类型图表实现数据可视化的图表库并具有支撑各类基本图表、特殊图表、组合图表和自定义图表等能力[7]。ECharts兼容大部分浏览器,提供直观、生动、可交互的数据可视化图表,符合系统设计的B/S架构模式,综合分析运条信息显示需求,主要为体现线路、车站的相对位置关系,因此选择ECharts实现数据可视化。运用可视化技术之前,运条信息通过单机系统进行简单记录或者通过Excel表格方式进行归纳管理,不能反映出线路、车站的在路网中的接续关系,不利于进行统筹管理。为提升线站信息管理效率,从大量的线路车站表格中提取有价值的信息,采用图形化手段将路网线站数据映射成路网图,实现便捷管理目标。
实现运条信息可视化展示通过改变ECharts配置项,由业务数据驱动ECharts组件库。通过DOM容器准备、ECharts文件引入、静态路网图资源引入、原始路径加载等步骤,完成初始化处理。通过参数option完成图示个性化数据配置,通过geo组件,自定义地区的名称映射,设置响应和触发鼠标事件,开启鼠标缩放和平移漫游,设置最小的滚轮缩放值。经过前端Ajax技术的支持将业务数据传递至后端Java程序,实现动态数据刷新。采用预设车站模拟坐标方式,将需展示线站信息设计为Json格式反馈至客户端,由ECharts接口实现站间线路可视化渲染,以“总览为先,缩放过滤按需查看细节”的可视化交互为基础,满足线站缩放显示需求。为增强线路信息在路网可视化模式下维护的便利性,通过扩展鼠标点击事件与车站等级结合,根据参数确定路网图中显示车站,实现ECharts绘制线路范围的灵活性,符合业务管理需求。
运条系统中涉及对全路线路、车站的关联计算,需要以线站的基础属性信息为基础,通常这类信息变化频率低,为提升数据访问效率,选择应用Redis实现铁路路网数据缓存。Redis具有高性能、动态可扩展、高可用、读取速度快等特点,是一个基于keyvalue的缓存与存储系统,通过多种键值数据类型适应不同场景下的缓存与存储要求[8]。Redis数据库中数据存于内存,基于内存的读写优势明显高于硬盘,并且可支持包括String、Hash、List、Set等数据类型,具有原子性操作等特性[9],可以支持运条系统中多种数据类型的存储。分析Redis的优势,适用于本研究对运条线站可视化展示中信息缓存的要求,通过基于Redis的分布式缓存技术,提升效率的同时确保数据的完整性。
分布式实现思想是通过key做一致性哈希,实现key对应Redis结点的分布。一致性哈希算法思想概念,如图4所示。
初始化运条系统服务器节点列表和虚拟节点集合,将真实的运条系统服务器节点列表加入链表中,按照真实服务器节点需要虚拟节点的个数、约定的虚拟方式,计算虚拟节点,根据哈希算法计算虚拟节点在哈希环上的位置,并将虚拟节点加入哈希环,实现节点分布均匀。
针对全路运条线站展示的基础数据复杂、效率要求高的特点,采用基于分布式的Redis集群可有效避免单点问题,实现不同Redis节点数据共享,对服务请求方提供可靠的数据服务[10]。
图4 一致性哈希算法思想概念
运条信息管理系统具体功能包括基础路网信息配置和基础路网信息展示。
线站信息可视化展示需要铁路网渲染视图做支撑,按车站等级分类配置。车站基础支撑信息主要包括车站名称、车站模拟坐标、车站等级等。
(1)运条信息管理系统运用车站名称作为路网视图展示名称。
(2)车站模拟坐标用于标记车站在路网图中所处的相对位置,是路网图位置展示的核心信息,模拟坐标数值的改变,需要实时通过路网图展示效果映射。
(3)车站等级用于控制车站加载范围,为提升车站展示视图的清晰度,通常小站以节点方式展示,大站以节点附加站名方式展示。
为实现将线站信息以路网图方式展现,基于信息展示效率及可靠性等因素,选择ECharts做支撑,提供直观、可交互的管理模式。运条信息中路网可视化展示的内容为线路及车站信息,车站位置根据模拟坐标数值与路网图关联,通过站间线路绘制,组成全路路网结构,如图5所示。
通过可视化展示方式可以直观查看不同线路之间的相对位置、运行区间、接续站等情况,并通过缩放功能聚焦关注的线路及车站。为提升信息管理的准确性,设计支持对单条线路视图的管理,便于业务人员进行编辑操作。
图5 路网线站信息局部示意
本文研究以客票系统建设的整体要求为基础,围绕铁路路网信息的业务特点,综合利用既有客票系统的基础数据及便捷的路网可视化展示相关技术,对整个路网中的“站”“线”进行关联,设计路网模型,为实现全路车站营业办理限制情况、旅客票价及行李、包裹运价里程的科学化、智能化管理系统构建奠定技术基础。基于可视化的运条信息管理为业务管理人员提供了一种全新的数据维护及分析方法,丰富了路网线站的展现方式,提升运条业务管理效率,在后续的研究中,会将本文研究成果应用于生产系统的构建,探索运条业务管理模式,提升铁路客运业务管理的信息化水平。