许永宏
(中铁第四勘察设计院集团有限公司信息中心,武汉 430063)
差量传输在铁路设计过程管理中的应用研究
许永宏
(中铁第四勘察设计院集团有限公司信息中心,武汉430063)
【摘要】文章对铁路设计过程管理系统中文件的集中管理问题进行了分析,针对铁路设计过程管理中图形文件频繁传输影响效率的困难,提出了一种根据铁路设计图纸文件动态比较、自动存储文件差异、差量传输的集中管理方案,探讨了其技术实现方法,经实践证明该方案是可行与有效的。
【关键词】铁路勘测设计;过程管理;差量传输
【DOI】 10.16670/j.cnki.cn11-5823/tu.2016.03.21
1引言
铁路设计的成果是各个设计文档及电子文件,铁路设计过程管理的一个重要任务是管理设计过程中文档及其不同版本,以电子化方式在各组织人员之间流转。对设计企业来说,这些中间成果及最终成果的文件极为重要。长期以来,铁路设计院对这些文件的集中管理存在着一些困难:(1)数据量很大。铁路设计的专业多、图纸多,一个项目电子文件总量很大。(2)上传时间较长。由于不少单个电子文件较大,导致上传服务器时间较长。(3)频繁上传下载。作为设计文件,在整个设计流程中,由于外部因素经常出现变化,经过各级审查,经常出现反复修改,导致反复上传下载的情况。
本文提出了在铁路设计过程管理系统中针对铁路设计图形文件特点,应用差量传输电子文件的方案,以解决上述存在的问题。
2差量传输的架构和技术方法
2.1整体方案与架构
由于铁路设计过程中经常性的文件修改,不少文件还附带地图数据,如果每次都整个文件上传,存储空间需求大,时间消耗非常多。差量传输是指每次上传仅传输上一次上传之后发生改变的数据。这样传输的数据量明显减少,所需时间短,对计算机以及集中存储的存储设备资源消耗也相对较小。对于解决提高铁路设计过程中的电子文件上传、流转和归档的效率有着很大的价值。
在铁路过程管理中应用差量传输的方案架构如图1。
图1 差量传输应用方案架构
整个方案主要由铁路设计CAD端程序、传输管理器程序、服务器程序组成。当铁路设计软件CAD端发起保存至服务器的请求后,将请求和相应的文件信息发给本地的传输管理器程序,本地的传输管理器程序将信息保存在本地数据库中,根据文件信息和历史信息将文件划分成块之后,计算文件差异,将差异数据提交给服务器,并保存相关信息。传输管理器程序启动时会检查本地数据库,将未完成的任务放入任务队列,继续执行完文件的差量传输。
铁路设计软件CAD端和WEB端均可能请求下载文件的最新或指定版本。铁路设计CAD端的请求将发给传输管理器程序,计算文件的差异后,将获取的完整文件块合并传输成文件放置在本地。WEB端则根据服务器端的信息,在服务器下载文件流的过程中直接合并传输完整文件块,下载到客户端。
2.2动态计算文件差异的方法
差量传输的核心是计算文件修改之后与原文件之间的差异,比较数据增量的算法可以用完全文件检测技术、RSYNC算法、CDC算法、定长分块算法[1,2],传统的RSYNC[3]算法是Linux 下端对端的单向增量同步算法,但是其单向同步的算法在双工的传输环境下,并不能够完全适用[4]。RSYNC算法或CDC算法多用于数据备份,主要用于计算备份文件与原版本的差异,算法较复杂,分块大小是变化的,但可以找出尤其是中间插入少数数据的最小变化量,采用滑动窗口的方式,按照单字节或固定长字节,反复计算校验值或RAbin指纹,查找相同部分。但是两个算法也有缺点,对于变化差异很大的文件,RSYNC算法效率很低。对于CDC算法,数据块大小的确定比较困难,粒度太细则开销太大,粒度过粗则效果不佳。
与备份文件不同,在铁路设计过程管理系统中,作为生产的设计人员,把客户端文件保存到服务器上,或是恢复、获取指定版本的设计文件,双向传输频繁,且很快就要看成果,为避免影响生产效率,算法的性能更加重要。铁路设计人员常用的CAD软件,经测试,与文本型文档不同,修改变动的部分多在文件后部,而且目前服务器端的存储系统可以自动数据去重。而且,有时还需要很多扩展应用如对每个分块加密,考虑到效率的重要性,因而在铁路过程管理系统的方案中采用了简单、性能高的定长分块算法,以提高客户端快速响应的用户体验。如图2。
图2 定长分块方法
定长分块只是针对每个文件按照固定的大小对文件划分,最后一个文件块大小也并不等于固定值,而且每个文件的固定大小值也并非相等。因而是根据文件类型和初始大小,动态确定一个分割文件块大小,将文件按照该大小将文件分成许多文件块,每个文件块可生成校验码。每次计算文件差异时比较各文件块校验码即可快速比较出发生变化的文件块。
铁路设计院常规的设计文件并不很大,但也有文件很大的情况,如果文件块大小比较小,在通常传输的一个缓冲区大小内,建议直接上传该文件块即可。如果确定的文件块仍然很大,可将新变化的文件块与历史文件块做异或操作,相同部分为“0”,相同部分较多,会产生大量的“0”,通过简单地编码压缩“0”后生成这类较大文件块的文件差异,上传该文件块差异。针对整个文件设计一个索引表,描述该文件最新版本的所有文件块信息,便于快速存取文件。
2.3差量传输的技术实现要点
差量传输方案针对的是铁路设计过程中频繁存取的文件,减少传输量,提高系统性能,其主要功能是通过动态比较、文件差异,动态合并等技术,完成文件上传和文件下载。
(1)文件差量上传
图3 差量上传方法
如上图左边是一个大小为8,875,712 字节(8.46M),占用空间为8,876,032 字节的TEST.DWG文件的二进制字节流图例。在设计人员修改以后,可能变成了中间的模样,传输管理器将其中存在的差异取出来以后,将新的差异文件(图中右边)上传到服务器进行保存,并将其对应关系存储到服务器数据库中。
(2)文件下载的差量合并处理。
如图4在需要下载时,首先获取该文件的各个字节流具体位置信息,然后根据文件信息取得对应文件的具体位置对应长度的字节流数据,拼接到新的文件字节流中,然后将该字节流写到本地新建DWG文件中。
图4 差量合并下载方法
3结束语
如图5,该研究成果已应用于中铁第四勘察设计院集团有限公司生产设计过程管理系统中,在铁路设计过程管理系统中实现设计文件的差量传输,带来了一些程序上的复杂性,服务器上存储的文件不再完整,需要较繁琐的分拆、合并算法,应对各种文件应用的处理,但对于铁路大型设计院设计过程中大量的文件处理,通过传输量的减小,提高处理速度,节省存储空间,差异传输的效果是明显的。
图5 铁路过程管理系统传输管理界面
参考文献
[1]吕瀛,刘杰,马志柔,叶丹.一种云存储服务客户端增量同步算法.计算机系统应用,2014,23(10):152-157.
[2]敖莉,舒继武,李明强.重复数据删除技术.软件学报,2010,21(5):916-929.
[3]Tridgell A,Mackerras P.The Rsync algorithm.Tech.Rep.TR-CS-96-05,Australian National University,1997.
[4]Rasch D,Burns RC.In-place Rsync:File synchronization for mobile and wireless devices.USENIX Annual Technical Conference,FREENIX Track.2003.91-100.
Research and Application of Differential Archiving in Design Process Management System of Railway
Xu Yonghong
(InformationCenteroftheChinaRailwaySiyuanSurveyandDesignGroupCo.,Ltd.,Wuhan430063,China)
Abstract:This article analyzes the problems of centralized management of the design process files in the design process management system of railway.To avoid the influences of frequent graphic files transmission on efficiency in the management process of railway design,this article provides a solution for the centralized management of railway design drawings by dynamic comparison,automatic differential archiving and transmission.It explores the implementation method,which is proven feasible by practices.
Key Words:Design of Railway Exploration;Process Management;Differential Archive Transmission
【作者简介】许永宏(1970-),男,硕士,高级工程师。研究方向为管理信息系统、计算机辅助设计。
【中图分类号】
【文献标识码】A
【文章编号】1674-7461(2016)03-0113-03