基于RMI分布式的LMD系统性能优化与实现

2020-04-04 13:00邓永祁邓国知
铁路通信信号工程技术 2020年3期
关键词:车地调用机车

杨 将,邓永祁,邓国知

(湖南中车时代通信信号有限公司,长沙 410005)

随着科学技术不断发展与创新,铁路的信息化已逐渐走向成熟,在此背景下,综合型、企业级系统应用进一步深化。在中国国家铁路集团有限公司发布的《铁路信息化总体规划》及《铁路“十三五”发展规划》中提到,到2020 年,将在全路建成具有中国特色的铁路运输信息系统,铁路建设的加快已然导致铁路信息化建设的加快。目前LKJ 设备运行监测管理系统(LMD 系统)已完成车地数据传输、采集、分析和应用于一体,具备海量数据的获取能力。为进一步深化服务能力,建立集监测、控制和管理决策为一体的智能化信息系统。LMD 系统在保持LAIS 系统基本结构、应用功能和技术体系完整性的基础上,通过对既有LAIS 车载设备改造或采用TSC2 设备,建立互联网环境中云数据中心的数据接收、处理、分发机制等,实现LKJ 设备运行状态和数据版本运用状态的实时监测和管理,并为铁路运输及相关作业提供管理信息支持,确保LKJ 系统设备的稳定运行和安全风险的有效管控。

LMD 系统通过远程无线传输装置实现实时监测机车运行状态、车载设备质量、LKJ 数据版本、数据换装、机车检测与检修状态。系统地面服务器与车载终端进行实时海量的数据交互,随着铁路局机车数量、系统功能与交互数据量不断增加,数据库访问操作频率上升,导致数据库与系统性能出现瓶颈,车地数据交互队列堵塞与系统访问卡顿。因此,本文设计基于RMI 分布式技术的LMD 系统性能优化与实现,应用RMI 分布式技术,提升系统数据交互操作性能、访问体验。

1 系统结构

1.1 LMD系统技术架构

LMD 系统技术结构共分为6 层,可视层、控制层、业务层、支撑层、数据层以及基础设施层。如图1 所示,可视层主要采用BootStrap 前端框架、Html5、Javascript 和css3 技术,在Web 端实现数据渲染。控制层通过拦截分发器转发前端发送的请求,并把业务层处理完的响应返回到前端,其通过数据适配插件适配表现层与业务层的差异。业务层Spring 为后台提供事务与Bean 管理接口,通过IOC 的注解方式实现Bean 的解析和管理。在支撑层部署分布式RMI 服务,为业务层与数据层之间的高并发数据交互与访问提供高效服务。同时,借助Spring 的优势,系统降低了业务对象替换的复杂性,提高了组件之间的解耦。基于Hibernate 框架的支撑层通过水平和垂直分库支持大数据量处理。

图1 LMD系统技术架构图Fig.1 Technological architecture diagram of LMD system

1.2 基于RMI的系统分布式服务部署结构

远程方法调用(Remote Method Invocation,RMI)是J2EE 中一项非常重要的技术,能够实现远程过程调用 (Remote Procedure Call,RPC),便于Java 分布式应用程序开发,高吞吐业务功能解耦与分布式部署。

它使得Java 程序之间能够实现灵活的、可扩展的分布式通信。RMI 允许对象存在于多个指定地址空间,分布在不同的Java 虚拟机上。每个指定地址空间可以在同一计算机上或网上的不同计算机上。RMI 为Java 对象的分布式计算提供了一个简单而直接的模型,可以把代理和业务逻辑迁移到最具有存在意义的网络节点上。

如图2 所示,为提升系统数据交互操作性能、访问体验,以RMI 分布式技术部署车地数据交互服务、机车运行数据服务、机车定位纠偏服务、车载设备监测服务。车地数据交互服务作为地面通信软件的载体不断接收大量机车运行数据、车载设备运行数据和向车载无线传输装置转发系统指令,涉及海量数据计算、数据处理以及与数据持久层频繁读写操作。机车运行数据服务通过与机车定位纠偏服务交互完成机车定位,车载设备监测服务对车载设备运行状态实时监测,对车载设备故障与隐患进行报警。

图2 系统分布式部署结构图Fig.2 Distributed deployment structure diagram of LMD system

2 基于RMI分布式的LMD系统

随着LMD 系统在全路全面推广运用,同时车载TSC2 设备运用数量急剧增加,LMD 系统的车地数据交互、机车运行数据计算、车载设备监测等功能的性能急剧下降。为解决系统性能瓶颈,本文旨在设计基于RMI 分布式的LMD 系统性能优化与实现,采用RMI 技术分布式车地数据交互服务、机车运行数据服务、机车定位纠偏服务和车载设备监测服务到不同的服务器,并分别在各服务器采用缓存技术实现车地通信交互数据、机车运行数据、车载设备监测数据的缓存,从而解决LMD 系统原有架构设计弊端,避免数据持久层不断大量读写和单服务器性能受限的问题,提高LMD 系统的整体性能。

2.1 RMI分布式设计

如图3 所示,系统采用3 层结构模式实现RMI。在整个体系结构中,客户端通过本地Java虚拟机环境下的桩对象远程调用服务端的对象方法。

图3 RMI模型Fig.3 RMI model

1)远程调用过程

a.客户端查询服务端的注册表并获取远程对象引用。客户端通过调用本地JAVA虚拟机环境的桩对象,传递远程对象方法的序列化参数到本地远程引用层。

b.桩对象与远程对象保持完全一致的接口,客户端通过调用相应的桩对象完成远程对象方法调用。远程引用层在将桩对象的本地引用转换为服务端的远程对象的远程引用之后,将调用过程传递给传输层,由传输层通过TCP 协议发送调用。

图4 车地数据交互流程图Fig.4 Vehicle-ground data interaction flowchart

c.服务端传输层监听入站连接,接收客户端远程调用,转发调用至服务端远程引用层。

d.远程引用层转换客户端远程引用为本地Java 虚拟机的引用,并转发到服务端骨架。

e.骨架读取并传递引用的参数,服务端接收参数,调用实际对象方法。

2)结果返回过程

a.如果远程方法调用后有返回值,则服务端将方法执行结果沿“骨架”“传输层”向下传递。

b.客户端的传输层接收到返回值后,沿“传输层”“桩”向上传递,桩对象反序列化返回值,传递至客户端程序。

2.2 LMD系统分布式服务设计

LMD 系统分布式服务主要由车地数据交互服务、机车运行数据服务、机车定位纠偏服务和车载设备监测服务,如图2 所示,取缔系统功能模块集中式部署,不同服务之间通过RMI 远程调用访问资源。与此同时,各服务采用缓存技术,经过计算和处理的数据均缓存在内存中,不同业务的服务数据计算和数据交互效率高。

2.2.1 车地数据交互

车地交互数据主要包括机车运行数据、车载设备运行数据、LKJ 运行文件。车载无线传输装置TSC 不断向车地数据交互服务的地面ICS 通信程序发送机车运行数据、车载设备运行数据,数据处理程序DPS 接收、实时计算和处理ICS 通信转发的数据,并缓存运算结果与数据。与此同时,TSC 与ICS 通过3 次握手协议传输车载LKJ 运行文件。

如图4 所示,车地数据交互流程设计如下:

Step1:TSC 向地面ICS 发送机车运行数据、车载设备运行数据,转Step2。否则转Step4;

Step2:地面ICS 转发机车运行数据、车载设备运行数据给DPS,转Step3;

Step3:DPS 计算处理车载数据并缓存;

Step4:TSC 通知地面ICS 产生新LKJ 运行文件,转Step5;

Step5:ICS 转发新文件标志给DPS,转Step6;

Step6:DPS 通过ICS 发送下载目录文件命令,转Step7;

Step7:TSC 收到下载命令,下载目录文件,转Step8;

Step8:DPS 更新目录文件对应记录的下载状态,并传输目录文件到地面,转Step9;

Step9:解析目录文件后,DPS 通过ICS 向TSC 请求未下载的新LKJ 文件,转Step10;

Step10:TSC 向 地 面 传 输LKJ 文 件, 转Step11;

Step11:DPS 更新下载文件状态,转Step12;Step12:DPS 缓存文件与下载结果。

2.2.2 机车运行数据处理

图5 机车运行数据处理流程图Fig.5 Locomotive operation data processing flowchart

机车运行数据服务从车地数据交互服务接收机车数据进行处理。如图5 所示,系统通过将接收数据与缓存数据遍历,对比判断机车信息是否已缓存。未缓存的机车运行数据通过计算处理与定位纠偏后缓存到内存,已缓存的机车运行数据经过比对与处理后缓存到内存。

如图5 所示,机车运行数据处理流程设计如下:

Step1:接收车地交互数据,转Step2;

Step2:缓存中存在机车数据,转Step3。否则转Step9;

Step3:从缓存读取机车信息,转Step4;

Step4:交互机车经纬度大于0 且缓存中存在该机车,转Step5。否则转Step7;

Step5:取出缓存机车信息,若缓存机车时间等于交互机车时间转Step6。否则转Step8;

Step6:加入机车运行数据缓存队列;

Step7:若经纬度大于0 或机车非出入库状态时,线路号和公里标均大于0,转Step8。否则转Step6;

Step8:调用机车定位纠偏服务对机车定位进行纠偏,转Step6;

Step9:访问数据库获取机车信息, 转Step10;

Step10:若经纬度大于0 或机车非出入库状态时,线路号和公里标均大于0,转Step11。否则转Step12;

Step11:调用机车定位纠偏服务对机车定位进行纠偏,转Step12;

Step12:加入机车运行数据缓存队列。

2.2.3 机车定位纠偏

在机车运行数据处理的过程中,需要对机车GPS 定位进行纠偏,机车运行数据服务通过RMI远程调用机车定位纠偏服务的对象方法,查找sqlite 数据库的铁路数据(线路号、信号机、前方距离、上下行和里程),计算纠正经纬度。

如图6 所示,机车定位纠偏流程设计如下:

图6 机车地理位置纠偏流程图Fig.6 Locomotive location correction flowchart

Step1:机车经纬度为0 转Step2。否则转Step3;

Step2:查找sqlite 数据库铁路数据中距离机车经纬度最近的点集合,转Step4;

Step3:根据机车线路号、上下行和里程查找线路数据最近的点集合,转Step4:

Step4:根据数学模型计算距离最近的最佳点。

2.2.4 车载设备监测

如图7 所示,车载设备监测服务通过不断接收和实时分析车地交互的车载设备运行数据(工况、信号机、前方距离、公里标等),将存在运行故障和隐患的设备数据形成报警缓存在内存中,并向Web服务及系统使用者推送报警数据,提升车载设备运用质量、减少机车行车安全问题。

图7 车载设备监测流程图Fig.7 Onboard equipment monitoring flowchart

3 结束语

基于RMI 分布式的LMD 系统性能优化与实现,在现有LMD 系统架构下,通过采用RMI 分布式技术,实现LMD 系统整体性能的提高。通过按照设计的RMI 分布式系统结构重新部署LMD 系统,系统的车地数据交互、机车运行数据计算处理、车载设备监测性能瓶颈得到解决,实现车地数据高效交互、机车运行数据和车载设备运行数据快速实时处理。目前,经过优化的LMD 系统已在南昌、沈阳、兰州、济南等铁路局部署运行,运用效果良好。基于RMI 分布式的系统设计为其他应用系统扩展业务功能提供了接口,且基于RMI 分布式设计方法为今后铁路信息化开发领域提供了新的设计思路。

猜你喜欢
车地调用机车
基于TD-LTE制式的北京市轨道交通车地宽带无线通信系统工程建设规范化研究
深圳地铁1号线车地无线通信系统改造方案探讨
核电项目物项调用管理的应用研究
系统虚拟化环境下客户机系统调用信息捕获与分析①
轨道交通车地无线通信技术应用情况分析
“周恩来号”机车连续40年投入春运
DF8BI内燃机车整车称重调簧工艺适用条件研究
地铁CBTC车地无线通信系统中防WiFi干扰的措施
机车英雄
机车“神医”育人忙