SVN下地铁综合监控系统文件管理方法

SVN下地铁综合监控系统文件管理方法

地铁综合监控系统是多专业子系统的集成与互联。在系统实施过程中面临复杂的、多专业多文件数据需要协同共享、统一管理的难点,包括各文件数据的传递、自动更新和共享、文件变化版本的记录和存档,以及不同用户对文件的权限访问。基于SVN(subversion)文件版本管理技术,介绍了综合监控系统文件管理的整体架构、文件管理功能设计及其应用实现。随着我国城市轨道交通工程建设的快速发展,为了提升调度管理水平和运营效率,确保行车安全,各城市大都要求建设出智能化、信息化、网络化的现代城市轨道交通运维管控系统,其中就有综合监控系统(ISCS)。综合监控系统是多系统子专业的集成与互联,协同部署和调试中央级综合监控系统和车站级综合监控系统,会面临复杂的、多专业多文件数据的协同共享、统一管理的难点问题。比如对系统程序文件、配置文件、画面图形文件、接口点表、报表、电子图纸等综合监控系统主文件数据的传递、自动更新和共享、文件变化版本的记录和存档,以及不同用户对文件的权限访问,对文件的新增、修改、提交、删除、更新等反复操作纳管。鉴于此,需要构建一套文件管理系统实现如下功能:将本地文件提交到一个集中统一的版本仓库中进行管理,实现文件的传递更新和协同共享。能对文件的变化历史溯源,完成记录和存档,以便查询、追踪溯源。具备画面图形文件修改后自动提交和更新。对文件具有权限管理。SVN(Subversion)版本管理软件,作为一款主流、开源的文件版本管理控制工具,应用于多个分支共同开发同一个项目,达到文件数据资源共享。其核心工作是使历史行业曲线linkindustryAppraisementDOI:10.3969/j.issn.1001-8972.2022.09.024可替代度影响力可实现度行业关联度真实度文件数据版本的管理协同,在中心一台服务器上,创建中心服务版本库端,其中可存储多个项目的文件数据资源,并且SVN可利用URL定位于版本库中各需要的文件数据资源。这样,同项目类各成员即可通过SVN协议或http协议访问位于中心服务版本库端中的各文件数据资源。同时分支成员需要在工作站客户端创建版本库副本的工作目录,并把服务端版本库里的文件数据资源检出到本地,形成本地的工作副本目录。然后接着就可以在分支成员的工作站本地工作副本拷贝中进行操作,如修改、删除等,再提交到中心SVN版本库服务器端。SVN会把每次提交的文件数据版本与原版本信息进行比较,若有修改,则更新一次文件的版本号并记录下修改的信息,否则就会提交不成功,同时SVN也提供了不同版本之间比较的功能。由此基于SVN软件的版本控制技术,以其独特的易操作性和便利性,为地铁综合监控系统复杂繁多的文件管理,提供了一种崭新的方法与应用。本文研究SVNC/S(client/sever)架构模式,新增、提交和获取的文件协同共享框架原理,利用SVN软件对文件版本原子事务操作,如创建、修改提交、更新等措施,来保证综合监控系统文件版本管理的准确性和稳定性,通过在版本配置文件xml中添加文件目录结构以及特定的API,实现对多种不同文件结构管理。同时修改和配置SVN的用户权限管理,实现不同目录下文件的只读或可读可写权限,构建基于SVN的综合监控文件管理系统。

1.ISCS文件管理整体架构

面向ISCS全生命周期,从厂内生产测试到现场部署联调,再到投入运营和维护,从技术层面,必须要实现协同共享全过程中对综合监控系统主文件的版本控制管理。本文提出基于SVN版本控制管理框架上,构建文件管理方法与应用。

1.1文件版本协同共享

SVN版本控制,创建于一个统一集中SVN服务器仓库(Repository),存储和管理着所有的目录文件。同时版本库还可以对文件的更改做记录,能溯源其历史版本,保证了不丢失原有的记录文件。允许权限客户端工作副本连接版本仓库服务器,能从中检出或拷贝目录到本地,形成客户端工作副本。客户端工作副本目录中存在一个.SVN的隐藏文件夹,它用来识别文件是否有了修改、是否因他人的修改导致过期而需要更新。SVN版本库控制原理示意图如图1所示。版本库在客户端本地工作副本创建后,在中心统一SVN服务器仓库管理下,达到各处的工作副本文件协同共享的目的。

1.2系统整体架构

SVN具有比较完善的版本控制功能,满足综合监控系统文件管理的功能要求,基于SVN设计的综合监控文件管理的整体架构如图2所示。以SVN软件安装部署,创建版本库服务端和客户端,实现版本控制功能,并在此基础上进行二次开发,实现文件自动更新功能。权限管理模块中,用户和权限信息彼此分开独立,其中,权限管理功能通过修改SVN服务端权限配置文件,达到对用户权限的控制。

2.文件管理功能模块设计

2.1版本库控制功能

在服务器端创建版本库,所有文件数据都以一定的数据格式存储。文件的版本控制功能主要体现在版本库客户端,服务端根据需求响应。在客户端具有相应权限的用户登录后,系统的SVNkit接口提供人机交互响应,达到对文件数据的检出、新增/修改提交、更新、删除、还原、锁定和解锁等版本控制功能操作的目的。例如以下主要功能的介绍:提交(Commit):调用SVNkitdoCommit()函数接口,人为把修改从工作副本提交到统一版本仓库Repository。更新(Update):调用SVNkidoUpdate()函数接口,实现从统一版本仓库Repository中把最新文件传递到本地工作副本中。若是首次创建的本地工作副本,则是调用doCheckOut()函数接口,从中检出到本地。还原/放弃(Revert):调用SVNkitdoRevert()函数接口,对本地工作副本某文件的修改进行还原或放弃修改,以便达到对本次的错误修改还原或放弃,也可对本地修改出现冲突进行处理,避免发生文件版本的冲突。锁定(Lock)/解锁(Unlock):即可实现对本地工作副本中的目录或者某指定文件进行加锁或解锁,以此达到加锁后某目录或文件不能直接修改而需要相应的权限解锁后才能修改。此功能可以有效的避免工作副本有可能出现同时被修改产生文件冲突。

2.2自动更新功能设计

SVN自动更新是建立在中心版本库服务器及客户端工作副本基础上,配置自动更新程序接口,兼容中心与车站两级的服务端和客户端的自动更新程序,其架构图如图3所示。客户端侧是以一个动态库程序插件形式嵌入人机界面(HMI)中,负责提交特定生成或修改的文件数据。而服务侧则是一个后台程序,服务在每一个客户端的版本库工作进程上,用于从版本库服务器上检出、更新出最新的更改,整个综合监控系统主文件数据的最新版本都存放于中心的版本库服务器中,文件数据的版本号也是随着系统文件变化而变化。2.3权限管理功能设计综合监控系统文件管理是建立于一个稳定可靠而灵活运用的SVN系统环境下,通过修改SVN服务器模块配置文件SVNuser和SVNaccess的方式,其中SVNuser用于用户认证,SVNaccess用于用户组别以及访问用户权的设置,满足SVN自身的用户权限。可以为综合监控系统文件管理用户模块设置访问账户,账号分配如下:系统管理员:负责创建和维护用户配置,负责创建版本库服务端和客户端工作目录副本。安全员(测试/调试员):负责分配哪个用户能够访问版本库及其分支的读写。依据此修改配置文件的方式,达到满足文件权限实现的功能,既有效利用了SVN权限模块,同时又保证了文件系统权限管理功能的正确性和有效性。

3.应用实现

在系统实施过程中面临复杂的、多专业多文件数据需要协同共享、统一管理的难点,包括各文件数据的传递、自动更新和共享、文件变化版本的记录和存档,以及不同用户对文件的权限访问。而目前大多数综合监控系统的文件管理更多应用于对系统开发程序的版本控制管理,而忽略了综合监控系统工程化应用过程中其他文件的管理,比如系统配置、接口、点表、图纸、测试、调试等文件的管理,以及相关文件权限的访问控制。单从综合监控系统本身技术层面来看,其主文件构成基本为系统程序文件、配置文件、画面图形文件、接口文件、点表文件、图纸文件、调试文件、报表统计和测试等文档文件,如图4所示。在SVN服务器端,建立版本库的函数实现综合监控系统主文件库的创建,将综合监控系统主文件数据添加到版本库中。添加的主文件模型数据需要根据综合监控系统功能需求分配预先建立,实现版本库模型数据的统一分支纳管。与此同时,按照文件管理应用分配用户权限访问,设定应用某用户只能访问某特定的文件类。在SVN客户端,建立版本库工作副本,并从SVN服务器端迁出或更新文件数据到本地副本目录中。工作副本客户端也可利用SVN功能模块函数开发,还原或放弃修改以及使用等功能,对本地文件对应的分支目录文件数据进行修改提交操作。尤其是每个客户端根据不同用户权限进行文件数据内容修改时,通过使用锁定功能完成版本库中响应存储单元文件数据的锁定,防止文件版本下载后,其他客户端再重复下载文件造成数据的同时修改而发生冲突现象。客户端更新模板文件是自动更新服务程序按需更新的主要依据,为XML格式的方式存储。更新模板文件中包含的信息包括需要更新的目录名称、目录对应的版本库服务器地址、版本库用户名、密码及目录更新周期等。关于自动更新的功能更多应用于画面图形文件的反复调试修改,使得HMI能够在无人为干预下实现实时更新展示。

4.结语

基于SVN灵活的版本控制管理,通过赋予新的功能设计,如自动更新、权限分配等功能,使得综合监控系统文件的统一管理具有新的活力,提出的文件管理功能方法及其应用实现,能有效解决综合监控系统复杂、多文件协同共享、统一管理的难题,具有一定的参考和借鉴意义。

作者:宋树胜 单位:南瑞集团(国网电力科学研究院)有限公司 国电南瑞科技股份有限公司