一种高速铁路设备软件版本监控方法及系统
技术领域
本发明属于轨道交通信息技术领域,特别涉及一种高速铁路设备软件版本监控方法及系统。
背景技术
铁路线路复杂、线路上车站数量众多,在信息化迅速发展的趋势下,每一车站设备都部署了相关的车站设备软件以提升铁路行业信息化建设及智能化管理。然而,为对这些车站设备软件进行全生命周期监控管理,包括软件版本控制管理,需要付出大量的人力成本及时间成本。高速铁路车站设备软件升级、更新通常涉及大量车站的大量设备软件更新,如上千个设备软件的更新。因此,对高速铁路设备的版本监控数据量大,并且安全要求高,监控工作量大,成本高。
现有的软件版本控制通常采用SVN系统,SVN(Subversion)是用于多个人共同开发同一个项目,实现共享资源和版本监控。在铁路行业背景下,现有铁路车站内众多设备软件的复杂繁多,对软件版本信息的管理采用独立、人工参与管理。通常利用现有的SVN服务器监控软件版本更新,仅能够直接查看软件的SVN版本信息,并且多个设备的版本信息管理相互独立,需要各自的负责人员分别查看独立的SVN服务器。而高速铁路业务中,软件升级的同时还伴随着配置数据,如信号设备、通信接口等信息的相应升级,现有的版本监控模式,需要监控人员获取到软件本身的版本更新信息后,查找指定配置文件,人工核对配置数据是否同步更新了,SVN服务器并不能监控到记录在文件内部的数据版本信息。在这种情况下,版本监控的效率低,无法监控车站设备软件全生命周期,不利于铁路业务系统,如列控、联锁等的信息化、智能化发展。同时,人工管理也极易导致车站设备数据版本更新的滞后、准确性低、实时性差,而数据版本监控的滞后很容易造成铁路运营安全隐患。
因此,如何提供一种高效、准确、自动化的高速铁路设备软件版本监控方案是铁路行业信息化发展中亟待解决的问题。
发明内容
针对上述问题,本发明提供了一种高速铁路设备软件版本监控方法,包括:
设置多个车站的基本信息与相应的设备软件SVN地址;
根据所述SVN地址自动获取所述多个设备软件SVN消息日志数据流;
解析所述SVN消息日志数据流,获取设备软件的软件版本信息和SVN版本信息;
根据所述SVN版本信息自动获取所述设备软件的数据版本信息,所述数据版本信息存储在指定配置文件中;
基于所述车站的基本信息、所述软件版本信息和所述数据版本信息确定车站的设备软件版本更新的状态。
进一步地,方法还包括:
周期性获取多个车站的设备软件版本更新信息,所述版本更新信息包括所述软件版本信息和所述数据版本信息;
将多次获取的设备软件版本更新信息保存在数据库中;
分析保存的软件版本更新信息,生成版本控制报告,所述版本控制报告包括以下信息中的一种或多种:设备软件的升级次数、升级频率和数据版本变更信息。
进一步地,所述自动获取所述多个设备软件的SVN消息日志数据流包括:
通过SVNKit命令接口,获取SVN消息日志数据流。
进一步地,根据所述SVN版本信息自动获取所述设备软件的数据版本信息包括:
获取SVN版本信息相关的文件更新记录;
根据所述文件更新记录确定所述指定配置文件是否更新,若所述指定配置文件发生更新,则:
获取所述更新的指定配置文件;
解析所述指定配置文件,根据指定标识字段获取所述数据版本信息。
进一步地,方法还包括:
设置所述指定配置文件的车站配置数据SVN地址,所述车站配置数据SVN地址与车站的基本信息相对应;
所述车站配置数据SVN地址用于获取所述指定配置文件。
进一步地,基于所述车站的基本信息、软件版本信息和所述数据版本信息确定车站的设备软件版本更新的状态包括:
判断所述车站的设备软件是否在一次更新中同步更新了软件版本与数据版本,若没有同步更新,则输出软件版本更新异常信息。
进一步地,通过设置车站所在线路标识和线路数据配置信息,批量获取所述线路相关的所述车站基本信息及车站数据配置信息,所述车站数据配置信息包括车站配置数据SVN地址和设备软件SVN地址。
进一步地,方法包括:
所述软件版本信息用于反映所述车站设备软件的软件逻辑变更;
所述数据版本信息用于反映所述车站设备软件相应的信号设备变更和/或通信端口变更和/或接口协议变更。
进一步地,方法包括:
对相关的多个设备的软件更新状态进行综合监控,判断是否满足同步关联更新要求,对不满足更新要求的情况输出报警信息。
本发明还提供一种高速铁路设备软件版本监控系统,包括:
车站设置模块,用于设置多个车站的基本信息与相应的设备软件SVN地址;
日志获取模块,用于根据所述SVN地址自动获取所述多个设备软件SVN消息日志数据流;
日志解析模块,用于解析所述SVN消息日志数据流,获取设备软件的软件版本信息和SVN版本信息;根据所述SVN版本信息自动获取所述设备软件的数据版本信息,所述数据版本信息存储在指定配置文件中;
更新判断模块,用于基于所述车站的基本信息、所述软件版本信息和所述数据版本信息确定车站的设备软件版本更新的状态。
本发明的高速铁路设备软件版本监控方法及系统,能够实现多个车站设备软件项目信息的批量自动获取全面的版本更新信息,并确定设备软件版本更新状态,方便及时发现软件版本和数据版本更新问题,有利于管理者进行专业化、信息化高效管理,提高了信息处理效率,相比于现有的管理方式,避免了信息滞后、处理时间周期长、信息记录不准确等缺陷。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的一种高速铁路设备软件版本监控方法流程图;
图2示出了根据本发明实施例的获取数据版本信息的步骤流程图;
图3示出了根据本发明实施例的高速铁路设备软件版本监控系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种高速铁路设备软件版本监控方法,实现铁路业务中多车站设备的系统软件更新过程中的版本信息综合自动监控。本发明实施例以车站台账管理系统为例,对高速铁路设备软件版本监控方法进行说明。如图1所示,方法包括:
步骤1:设置多个车站的基本信息与相应的设备软件SVN地址;
步骤2:根据所述SVN地址自动获取所述多个设备软件SVN消息日志数据流;
步骤3:解析所述SVN消息日志数据流,获取设备软件的软件版本信息和SVN版本信息;
步骤4:根据所述SVN版本信息自动获取所述设备软件的数据版本信息,所述数据版本信息存储在指定配置文件中;
步骤5:基于所述车站的基本信息、所述软件版本信息和所述数据版本信息确定车站的设备软件版本更新的状态。其中,软件版本信息用于反映所述车站设备软件的软件逻辑变更,数据版本信息用于反映所述车站设备软件相应的信号设备变更、通信端口变更、接口协议变更等。本发明实施例中,将车站的信号设备信息、通信端口信息、接口协议信息存储为车站配置数据文件,并通过在指定配置文件中设置指定标识字段来标记配置数据文件的版本。通常软件项目升级更新过程也伴随着车站的上述信息的变更,为了保障车站数据的同步更新,要求每次软件升级更新必须更新并提交保存指定配置文件,监控过程中识别到软件更新时自动获取指定配置文件的指定标识字段。
在自动获取设备软件更新信息之前,通过步骤1配置车站数据的基本信息和车站数据配置信息,车站基本信息包括:车站所在线路标识、车站名称、车站类型(普通车站或中继站)基本信息,其中线路标识为线路名称,车站数据配置信息包括:车站相应的设备软件SVN地址和车站配置数据SVN地址。具体地,将待监控的车站标识添加到系统中,设置车站名称、线路名称等基本信息和相关的车站数据配置信息、设备软件SVN地址和车站配置数据SVN地址。由于同属于一个线路的多个车站的基本信息和项目信息具有相似性和关联性。一个SVN地址与一个版本控制服务器上的文件目录相对应。将一个SVN地址目录作为与指定线路对应的父文件夹,将所述线路下的各个车站软件项目存放在与车站对应各个子文件下,所述各个车站的子文件夹放在所述父文件夹下。
如上所述,本发明实施例中,将同一个线路下的各个车站的软件项目相关文件按照指定规则统一放置在同一个SVN目录下,进而通过设置车站所在线路标识和线路数据配置信息,能够批量获取所述线路相关的所述车站基本信息及车站的数据配置信息,其中软件项目相关文件为软件配置数据文件和软件项目工程文件。软件设备SVN地址指示软件项目工程文件位置,通过车站配置数据SVN地址指示软件配置数据文件位置,车站配置数据SVN地址和软件设备SVN地址均与车站的基本信息相对应。本发明实施例中,车站配置数据SVN地址用于获取存储设备软件数据版本信息的指定配置文件。具体地,通过添加车站所在线路名称、线路配置数据SVN地址及线路软件SVN地址获取该线路内所有车站信息,包括各个车站的车站配置数据SVN地址和设备软件SVN地址。不失一般性地,所述指定规则为所述车站的软件项目文件夹与车站名称一致。例如,线路“杭黄客专”的配置数据SVN地址为“https://172.168.0.1/svn/配置数据/杭黄客专”,在版本控制服务器中,对应相应的目录文件夹“杭黄客专”,该目录下保存有杭黄客专线路下多个车站的配置数据,如“富阳”、“桐庐”、“中继站01”等,则根据线路数据的配置数据SVN地址,可以批量获取各个车站配置数据SVN地址,如富阳车站配置数据SVN地址为“https://172.168.0.1/svn/配置数据/杭黄客专/富阳”。相应地,设备软件SVN地址(与上述项目工程文件对应)的批量获取方式相同,线路“杭黄客专”的软件SVN地址为“https://172.168.0.1/svn/软件/杭黄客专”,线路下的桐庐车站的软件SVN地址为“https://172.168.0.1/svn/软件/杭黄客专/桐庐”。线路下的所有车站名称也可以通过配置文件统一设置,如线路“杭黄客专”下的各个车站与该线路的关系可以通过线路配置文件设置。
本发明实施例中,所述车站文件夹名称可以与用户设置的车站名称相同或者与用户设置的车站名称及车站类型的组合相应。根据轨道交通业务的特点,将同一线路的车站的软件配置信息进行统一管理。用户通过设置线路的SVN地址即可实现线路的车站的软件SVN地址的批量配置。进而用户在管理各个车站的软件信息时降低了出错的概率,提高了效率。
本发明实施例中,车站台账管理系统基于java语言开发环境,将有关铁路车站所有设备信息、软件代码等在SVN集中管理,将SVNKit作为SVN客户端定时自动获取车站设备软件相关文件信息,利用MySql数据库实现车站台账管理系统与SVN数据信息同步存储,结合B/S架构实现WEB浏览器界面信息显示。
各个车站设备软件系统的项目(包含一系列代码及目录组织等)部署在相应的项目管理服务上,项目由开发人员持续集成,从而基于新的代码进行软件系统的升级更新。对持续集成的软件项目进行版本控制是提高项目安全性,快速定位问题,查看历史问题的必要手段。本发明实施例中,各个系统的项目分别通过相应的SVN服务管理,及每个项目对应有软件版本控制服务地址,通过该地址进行项目代码的上传、下载更新等。
SVNKit是基于java的SVN客户端库,以jar包的形式在各类操作系统上便于java工程的引入,是访问SVN版本控制系统的编程解决方案,利用SVNKit提供的API可进行了SVN代码仓库的创建、仓库路径下文件夹的查询。SVNKit支持通过HTTP(S),SVN和FILE文件协议访问SVN资源库、支持Windows和Linux等操作系统、SVNKit还提供由Java实现的SVN命令行客户端工具。本发明实施例中,台账系统采用Java开发环境,能够直接利用SVNKit工具调用SVN命令,获取服务中的项目信息。
通过台账管理系统可将多条线路中的大量车站的软件系统进行统一管理和监控,自动获取其软件项目的版本更新信息。在台账管理系统中预先设置的管理对象,即多个车站设备的软件,系统在指定周期自动获取管理对象,指定周期示例性地为1小时。本发明实施例中,周期性获取多个纳入管理的车站的设备软件版本更新信息,版本更新信息包括所述软件版本信息和所述数据版本信息;将多次获取的设备软件版本更新信息保存在数据库中;分析保存的软件版本更新信息,即历史数据,生成版本控制报告,所述版本控制报告包括以下信息:设备软件的升级次数、升级频率和数据版本变更信息。将各个车站的设备的版本信息进行汇总后综合管理,有利于对整体升级流程周期进行卡控,即版本控制。同时有利于基于总体分析进行风险控制,及时发现未按照要求关联升级的设备软件和数据版本。
综合管理还包括将多个车站的信息进行统一显示。用于显示的用户终端优选的为浏览器。示例性地,以列表记录形式批量显示一系列车站的信息,每条记录包括车站基本信息中的车站名称、车站设备软件名称、车站设备软件的软件版本信息、驱动版本信息、数据版本信息以及更新的状态,如是否同步更新了数据版本信息等。示例性地,可以将未与软件版本同步更新的数据版本信息显示为特殊标记。车站台账管理系统采用浏览器/数据库服务器的B/S架构,基于web页面为管理者对车站设备信息进行管理提供了便捷、易于操作的友好界面,提升了列控及联锁系统管理的信息化、智能化、系统化,进而提高了管理效率,且系统维护、升级和共享简单。数据库优选地采用MySQL数据库,MySQL数据库体积小、总体拥有成本低。B/S架构采用通用浏览器的web页面实现了客户端模式的统一,将用户操作的web界面与处理核心业务的服务端及MySql数据库分离开来,增强了系统事务处理能力,MYSQL提升对车站信息访问速度及灵活性。
下面对获取数据版本信息的过程做详细说明。如图2所示,获取数据版本信息过程包括:
(1)获取SVN版本信息:通过SVNKit命令接口,获取SVN消息日志数据流,解析所述SVN消息日志数据流,获取设备软件的软件版本信息和SVN版本信息;SVNKit命令接口获取软件项目的版本控制操作日志为数据流的形式,通过解析数据流获取软件版本控制的操作记录。本发明实施例中,采用增量获取SVN消息日志数据流的方式进行版本监控,仅根据上一次获取并处理SVN消息日志数据流的时间记录,获取新的日志数据。
(2)获取与SVN版本信息相关的文件更新记录。
(3)根据所述文件更新记录确定所述指定配置文件是否更新,若所述指定配置文件发生更新,则:获取所述更新的指定配置文件;否则,认为版本更新异常。
(4)解析所述指定配置文件,根据指定标识字段获取所述数据版本信息。
系统执行自动获取时,解析与车站基本信息对应的车站数据配置信息,获取设备软件SVN地址,即软件版本控制服务地址。然后调用SVNKit命令接口,从设备软件SVN地址获取软件的SVN消息日志数据流。具体地,通过Java代码调用SVNKit命令接口(API),获取用户通过SVN客户端,如TortoiseSVN,更新项目的操作日志记录。然后通过解析SVN消息日志数据流获取软件版本信息。
具体地,系统解析SVN消息日志数据流获取版本更新记录。版本控制操作包括下载、更新等多种操作,本申请中从解析SVN消息日志数据流中提取与软件项目更新相关的版本更新记录。然后解析所述版本更新记录,提取软件项目的软件版本信息,即基础版本信息和驱动版本信息。其中,基础版本信息是软件当前开发所基于的前一阶段的发布版本或稳定版本。驱动版本信息是当前软件系统运行所依赖的驱动软件的版本信息。
下面对获取软件版本信息和数据版本信息的过程做示例性说明:自动获取SVN车站信息处理流程的时间周期为1小时。系统每隔1小时系统通过调用SVNKit命令接口获取SVN操作日志,并提取SVN上车站设备软件日志中的关键信息,即版本更新记录。示例性地,通过log命令接口获取更新记录如:
2018-09-25 11:26:52 V1.0.74 SrcCode:V1.10.3(SVN:177) Data:V2.4.3(SVN:1520) Driver:V1.0.4(SVN:54)。
系统通过SVNKit命令接口周期性获取SVN操作多条日志,如在1小时周期内所有新增操作日志。通过模糊匹配和正则表达式,识别日志记录中的关键信息,提取出这30条日志信息中的“SrcCode”、“Data”、“Driver”,提取指定的更新记录。
解析版本更新记录,提取从而得到车站设备及其配套软件项目的软件版本信息(SrcCode)、驱动版本(Driver)信息。Data字段对应的工程提交版本为本发明实施例所述的SVN地址版本信息,通过该SVN版本信息进一步获取数据版本信息。首先,比较该SVN版本号相比于MySql数据库中存储的SVN版本号是否发生变动,若无变动则说明车站设备软件的配置数据没有更新,按照每次软件版本更新必须更新配置数据版本的要求,在这种情况下应认为版本更新异常,输出异常信息;若该SVN版本号发生变动,则证明项目信息已被修改,从指定配置文件-zpw_cfg.h文件中获取修改后的数据部版本信息。示例性地,获取软件版本信息的步骤如下:
(1)在版本操作日志中获取SVN版本信息。基于上述SVN更新记录识别关键字能够获取到当前配置数据更新操作的SVN提交号“SVN:1520”。
(2)获取所述SVN版本信息对应的详细提交记录,在所述详细提交记录中获取指定配置文件修改记录。根据1520提交号获取此次修改所涉及的项目文件,一条SVN更新记录可能涉及过个文件的修改,如代码文件、配置文件等,示例性地,可以通过log命令的name选项获取修改文件清单。指定配置文件存放在车站配置数据SVN地址下,实际提交项目修改时,开发人员根据需要修改指定配置文件中的指定标识字段,用以标识当前车站配置数据的数据版本信息。当开发人员修改该指定配置文件并提交时,能够通过详细提交记录获取到该文件被修改的信息。
当所述软件设备配置文件被修改时,执行后续步骤:
(3)解析软件设备配置文件,获取指定的指定标识字段,如“LOC_TCC_NAME”,进而获取修改后的字段值:LOC_TCC_NAME=1.0.4,即新的数据版本信息。当指定配置文件本身存在更新,但指定标识字段并没有变更时,获取并反馈未更新的数据版本信息,即当前指定标识字段值。
实际应用中,一次修改提交记录中可能对指定配置文件并没有修改,或并没有修改其中的数据版本信息,则可以在台账系统页面展示时对进行标注,用来提醒用户。即,判断所述车站的设备软件是否在一次更新中同步更新了软件版本与数据版本,若没有同步更新,则输出软件版本更新异常信息在软件修改的过程中该配置数据版本没有升级到最新。并且能够对大量设备软件的更新状态生成报告,集中反馈软件升级过程中未同步更新的车站设备的数据版本信息。
系统还通过命令提取更新的更新信息,包括更新时间、更新人员等。
获取的软件项目信息保存在数据库中,更新到MySql数据库中相应字段处,车站台账管理系统通过web服务为用户主要展示了当前车站信息,包括:
车站基本信息:展示了车站所在线路名称、车站名称、车站类型(普通车站或中继站)基本信息;
车站数据配置信息:目录列表下展示了车站配置数据SVN地址及设备软件SVN地址;
车站设备软件项目信息:车站设备及其配套软件软件版本信息、驱动版本信息、数据版本信息、更新状态,每隔1个小时都需要根据车站基本信息及车站数据配置信息从SVN上获取;
其他信息:展示了从SVN自动获取车站设备软件项目信息的更新时间。
通过在制定周期内获取更新记录和相关信息,能够高效清晰地记录软件版本更新过程,方便在软件对应的车站设备系统故障时指导问题定位。通过将各个线路、车站的软件系统的基础版本、驱动版本、数据版本综合监测,在不同系统出现共性问题时,能更快地分析其相关性。
本发明实施例中,所述方法还包括对相关的多个设备的软件更新状态进行综合监控,判断是否满足同步关联更新要求,对不满足更新要求的情况输出报警信息。其中,相关的多个设备包括同一车站中执行不同业务设备,如联锁设备和列控设备;相关的多个设备也可以是多个相关车站中多个设备,如同一线路上的各个车站的联锁设备。由于高速铁路设备数量多,且各站设备间的接口配置及接口内容都有一定的关联关系,因此当一个站设备的版本升级后,如果相关设备没有及时升级那就会造成事故隐患。例如,高速铁路列控设备数据配置中区段1DG的次序由1变成2时,如果联锁设备数据配置没有及时变更升级,即区段1DG的次序还是1的话,那么相关的高铁信号软件在对区段1DG进行数据解析时,区段1DG解析后状态本应是占用,但是由于配置未及时升级,可能会将区段1DG的状态解析为空闲,由此发生高速铁路列车安全事故。本发明实施例中,根据指定规则判断相关的多个设备的软件是否同步更新,极大提高了自动监测的效率、实时性和铁路运营的安全性。
基于相同的发明构思,本申请还提供了一种高速铁路设备软件版本监控系统,如图3所示,系统包括:
车站设置模块,用于设置多个车站的基本信息与相应的设备软件SVN地址,还用于设置指定配置文件的车站配置数据SVN地址,所述车站配置数据SVN地址与车站的基本信息相对应,所述车站配置数据SVN地址用于获取所述指定配置文件;
日志获取模块,用于根据所述SVN地址自动获取所述多个设备软件SVN消息日志数据流,具体地,通过SVNKit命令接口,获取SVN消息日志数据流;
日志解析模块,用于解析所述SVN消息日志数据流,获取设备软件的软件版本信息和SVN版本信息;根据所述SVN版本信息自动获取所述设备软件的数据版本信息,所述数据版本信息存储在指定配置文件中。通过日志获取模块获取SVN版本信息相关的文件更新记录,日志解析模块根据所述文件更新记录确定所述指定配置文件是否更新,若所述指定配置文件发生更新,则:获取所述更新的指定配置文件;解析所述指定配置文件,根据指定标识字段获取所述数据版本信息。
更新判断模块,用于基于所述车站的基本信息、所述软件版本信息和所述数据版本信息确定车站的设备软件版本更新的状态。更新判断模块还用于判断所述车站的设备软件是否在一次更新中同步更新了软件版本与数据版本,若没有同步更新,则输出软件版本更新异常信息。更新判断模块还用于对相关的多个设备的软件更新状态进行综合监控,判断是否满足同步关联更新要求,对不满足更新要求的情况输出报警信息。
本发明实施例中,日志获取模块周期性获取多个车站的SVN消息日志数据流;日志解析模块解析日志数据流得到设备软件版本更新信息,所述版本更新信息包括所述软件版本信息和所述数据版本信息,将多次获取的设备软件版本更新信息保存在数据库中;更新判断模块分析保存的软件版本更新信息,生成版本控制报告,所述版本控制报告包括以下信息中的一种或多种:设备软件的升级次数、升级频率和数据版本变更信息。
本发明实施例的方法和系统,将车站软件项目的SVN地址作为车站配置信息,根据该配置信息能够自动获取软件的多角度版本更新信息,从而对部署在车站中的软件项目变更进行统一自动监控,为铁路企业车站内设备提供了信息化、系统化的高效管理,避免了人工监控数据版本信息的滞后性和安全隐患。车站台账管理系统以铁路线路上的车站设备及其配套的计算机软件作为基本管理对象,定时自动获取SVN中车站设备所发布软件的基础版本信息、工程实施过程中的工程版本信息及驱动版本信息,并将获取到的信息记录到MySql数据库中,以实现与SVN中车站信息的同步,从而达到监控车站设备软件全生命周期的目的。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。