APP下载

电务卡控模式下车站CTC 数据文件一键换装系统的实现

2024-02-10王圣根

铁路计算机应用 2024年1期
关键词:电务一键备份

王圣根

(卡斯柯信号有限公司 运营中心,上海 200071)

铁路调度集中(CTC,Centralized Traffic Control)系统是保证铁路行车安全的重要组成部分,已在各铁路局集团公司逐步推广部署。当前,铁路运营线路CTC 系统改造时,影响面大,天窗点时间短,数据文件(简称:文件)换装多依赖人工远程拷贝文件后再进行文件传输,无法实现重要文件在服务器上的存储和追溯,也可能存在天窗点外作业的情况,电务人员很难对其进行统一管理。文件传输方式有多种,有学者提出了基于文件传输协议(FTP,File Transfer Protocol)的数据服务及文件传输优化方案[1-2],但是,FTP 文件传输不支持批量操作,自动化程度低。目前,我国铁路针对CTC 系统文件管理方面的研究和探索[3-5],只是从管理制度上改进,并没有从技术层面优化。

为更好地提升CTC 文件换装的效率和安全性,本文设计了电务卡控模式下车站CTC 文件一键换装系统(简称:一键换装系统),可对服务器和终端进行批量化操作。

1 系统架构

一键换装系统基于VS2010+Qt 语言研发,其架构包括车站设备和中心设备,如图1 所示。

图1 系统架构

1.1 车站设备层

车站终端、自律机终端和服务器终端可以在施工人员控制台的操作下完成自身数据的一键换装,同时,还能够完成自身数据的备份及比较核对,面向联锁、列车控制等重要的行车系统提供了接口。

1.2 中心设备层

施工人员控制台和电务人员控制台是供用户操作的可视化界面,可以完成车站设备、中心设备的多个调度台终端和中心服务器的数据换装,也可以完成待换装文件与既有文件的更新、比较和备份;前端是控制台,后端则是文件服务器与数据库之间进行数据交互,按用户要求完成数据的存储和提取。

2 系统功能

一键换装系统功能结构如图2 所示。

图2 系统功能结构

2.1 文件更新、比较和备份

在电务安全卡控的模式下完成CTC 文件换装作业。文件更新流程如图3 所示。

图3 文件更新流程

(1)从控制台向各终端发送消息,获取终端指定路径下的文件列表。

(2)判断控制台收到终端反馈的文件路径是否存在,若不存在则直接结束本次文件更新流程,否则判断在电务安全卡控模式下是否允许更新,若允许更新,则由控制台向服务器发送消息,获取服务器指定路径下的文件列表,然后在控制台的控制下将获取到的各终端与服务器指定路径下的文件通过CRC32 校验。

(3)判断终端、服务器指定路径下的文件名称、大小是否相同,如果相同,则设置文件状态为保留,结束本次文件更新流程;如果不相同,将差异文件压缩打包,传输至终端指定路径下。

(4)终端接收到差异文件压缩包后,进行解压并更换本地对应文件;最后在方法流程结束前将文件更新的结果呈现在控制台上。

同理,文件比较是待更新文件与既有文件进行CRC32 校验,校验结果显示在控制台上;文件备份是先获得终端上的文件,并压缩传输至服务器,再将压缩文件解压、备份至服务器。

2.2 通信质量探测

本文所提的通信质量探测主要完成控制台、服务器A/B、CTC 相关系统之间的网络通信质量检测。

控制台程序启动后会自主向服务器发送探测通信网络质量的命令,若通信网络正常,则表明在服务器上操作是有效的;若通信网络异常,则默认存储服务器的相关数据无效。同理,在控制台上进行文件更新、比较和备份等一键操作时,控制台会优先往对应的终端上发送探测通信网络质量的命令,若通信网络异常,则提示本次操作无效。

2.3 数据校验

各CTC 车站设备与中心设备之间采用CRC32 方法,实现传输文件的正确性校验。发送方文件与接收方文件的CRC 校验码值相同,说明传输文件完整、有效,即文件换装作业成功。

2.4 数据管理

数据管理主要包括数据存储、数据查询和施工记录报告打印。双机服务器存储(服务器A 和服务器B)采用2 台高性能服务器完成数据的同步存储,目的是确保数据的完整性和安全性。

2.5 人员管理

人员管理主要是通过管理员身份登录系统,分别创建施工人员和电务人员帐号及密码,只有每次登录系统成功后才允许操作一键换装系统。

3 关键技术

3.1 gSOAP 技术

gSOAP(Genivia Simple Object Access Protocol)是跨平台的Web 服务开发平台[6],使用C++语言编码,支持Windows 和Linux 平台,它以XML 文件形式请求远程服务,再以XML 文件的形式返回执行结果。gSOAP 的解释器及导入器可以使用户不需要分析Web 服务的细节就可以实现一个客户端或服务端程序[7]。

由于gSOAP 具有很好的兼容性,通过gSOAP,一键换装系统应用层可以方便地调用由VS2010 和Qt 等语言开发的SOAP 服务,因此,gSOAP 适用于编译一键换装系统SOAP 客户端程序。

3.2 gSOAP 开发框图

如图4 所示,通过gSOAP 开发的一键换装系统客户端都为远程方法调用服务提供一个存根(Stub),避免了开发人员用手工的方式使用 C/C++编写存根例程,Stub 的作用主要包括参数信息编码,接收本地方法调用,将不同的服务委派给各自的具体实现对象,并将结果中的参数信息进行编码。

图4 gSOAP 开发框图

头文件通过gSOAP 解析,生成Web 服务描述语言(WSDL,Web Services Description Language)文件与框架(Skeleton);WSDL 文件通过WSDL 解析器预处理,生成一个包括服务函数的签名和其他额外的用于数据类型声明的头文件;该头文件经过gSOAP 编译器编译后,可生成供远程调用服务的存根Stub,该存根能链接到服务应用程序的Skeleton服务框架,服务端WsFileServer 与Skeleton 之间存在调用和返回的关系,客户端WsFileClient 与Stub 之间存在调用和返回的关系,控制台(电务和施工)是WsFileClient 和WsFileServer 之间沟通的桥梁,借助gSOAP 服务,实现服务端和客户端之间的数据交换。

3.3 多线程技术

为了提高文件更新、比较和备份的效率,一键换装系统在软件的开发过程中使用了多线程技术[8],在电务人员(或施工人员)控制台界面上能同时对多个车站和服务器等终端进行操作,且各终端并发执行工作任务,互不影响。

如图5 所示,在电务(或施工)控制台上操作对应的终端上的文件更新、比较和备份按钮时就会动态创建线程1 至线程n,执行完成工作任务后,动态申请的线程资源会被释放掉,以备后续使用。

图5 多线程技术示意

3.4 双机文件服务器的存储

数据存储结构如图6 所示。存储区域包含的文件分类包括:待更新数据、待回退数据、待比较数据和待备份数据等,服务器A/B 是互为同步的2 块独立的存储区域。服务器A/B 用户管理文件是为了区分施工人员和电务人员角色而创建的。为了能在作业期间(或作业后)掌握作业的情况,开发了当前正在作业数据查询和历史作业数据查询功能模块,并在数据查询后能进行施工记录报告的打印。

图6 数据存储结构

数据文件分别存储在服务器A/B 上,所有终端配置指向的服务器,可以是其中的任意一台,上传文件成功后,由服务器A/B 之间定时完成数据的同步功能,确保服务器A/B 数据的一致性。本文所提双机文件服务器存储技术具有如下优势:

(1)服务器A/B 的数据存储所依赖的文件服务器程序支持跨平台功能,可以运行在Windows、Linux 等多平台上;

(2)服务器A/B 机互为热备,其中一台机器出现故障,另外一台机器仍然可以正常执行作业任务;

(3)服务器A/B 机存储技术支持针对各终端的批量操作,大幅度提升了数据文件的存储效率。

3.5 CRC32 算法对数据文件进行校验

循环冗余校验(CRC,Cyclic Redundancy Check)是由数据序列和检验码构成的一个特定长度的二进制序列[9]。其中,检验码与数据序列之间存在某种特定关系,若因干扰因素致使数据序列某些位发生错误,这种特定关系就会被破坏,进而反映数据的正确性。

一键换装系统在文件的更新和比较过程中均使用了CRC32 校验。其实现的过程是:当进行CRC 校验时,发送方和接收方按照事先约定的除数,即生成多项式,本系统采用的多项式如下:

发送方要处理的数据除以这个除数而得到的余数就是CRC1 值,这个CRC1 值会附加到发送方要处理的数据后面,打包传送给接收方;接收方接收的数据后,先取出原始数据和CRC1 值,再将原始数据除以事先约定的除数得到新的CRC2 值。若CRC1 等于CRC2,则表示发送数据没损坏,发送成功,若CRC1 不等于CRC2,则表示发送数据损坏,发送不成功。

4 软件处理流程

软件处理流程如图7 所示。

图7 软件处理流程

(1)控制台模块实现了界面化的人机交互功能;

(2)通过在控制台界面上使用鼠标点击任务实体上的更新按钮、比较按钮和备份按钮,程序开始分别触发并执行更新模块、比较模块和备份模块;

(3)更新模块、比较模块和备份模块的程序里面分别编写着响应控制台命令的程序;

(4)响应控制台命令程序的过程,其实就是执行终端Client 和服务器Server 之间的文件互传,达到文件更新、文件对比分析和文件备份的目的;

(5)呈现模块能把更新模块、比较模块和备份模块执行的结果在控制台上显示出来。

在控制台上添加车站任务实体时,支持动态创建文件更新、比较和备份等功能,便于对整个软件资源做合理分配,提升软件操作的流畅性和交互性。软件在处理更新模块、比较模块和备份模块时,采用的是多任务和多线程的模式,支持批量化终端和服务器的操作。

5 试验验证

5.1 验证前提条件

(1)在某铁路局集团公司中心部署2 台服务器用于运行服务器软件,分别作为施工人员文件服务器和电务人员文件服务器;

(2)在某铁路局集团公司中心部署2 台工作站用于运行控制台软件,分别作为作业人员控制台和电务人员控制台;

(3)在某些车站现场部署查询终端;

(4)运行服务器、控制台和终端等各类软件。

5.2 验证文件更新

(1)在作业人员控制台的界面上新增3 个任务实体,例如:车务终端A(stpc A)、车务终端B(stpc B)和占线板(t3term);在作业人员控制台添加的任务实体会自动同步到电务人员控制台的界面上。

(2)分别点击各任务实体IP 地址栏的通信质量探测,确保任务实体与控制台通信正常。

(3)在电务人员控制台上点击“禁止更新”按钮,在作业人员界面上看到的文件更新按钮是红底色,无法进行操作,如图8 所示。

图8 文件禁止更新示意

(4)在电务人员控制台上点击“允许更新”按钮,在作业人员界面上看到的文件更新按钮是绿底色,允许文件换装(更新),如图9 所示。

图9 文件允许更新示意

同理,文件比较和文件备份操作与文件更新操作类似。

综上所述,一键换装系统有效解决了CTC 系统改造作业效率低和耗费人力较多的问题,使用换装系统前、后改造作业效率的对比如表1 所示。

表1 作业效率对比

6 结束语

针对目前铁路运营线路CTC 系统改造时存在的更换数据文件效率较低的问题,开发了一键换装系统。该系统通过一键触发快速完成终端文件更新、比较和备份;同时,控制台软件还支持各终端批量化的数据查询、作业记录报告打印等操作,大幅度提升施工质量和效率;因批量换装终端数据文件时考虑到网络带宽的限制,允许同时操作的最多终端数量定义为10 个,从而减少因网络带宽限制对传输数据产生的影响。目前,该一键换装系统已在多个铁路局集团公司推广应用,取得了良好的应用效果。

猜你喜欢

电务一键备份
“备份”25年:邓清明圆梦
冷轧机一键式升降速轧制的实现
“一键报贫”助力脱贫攻坚
创建vSphere 备份任务
一键观影,一键K歌 菱杰 TRS IW影院系列5.1音响套装
电务施工现场作业控制系统的探讨
电务维修决策支持系统研究
规范电务委外项目管理的思考
一键定制 秋冬彩妆懒人包
提升电务专业管理的思考