信号设备自动编译产品的研究与实现
2022-03-26刘鎏
刘 鎏
(1.北京全路通信信号研究设计院集团有限公司,北京 100070;2.北京市高速铁路运行控制系统工程技术研究中心,北京 100070)
1 概述
随着企业产品升级和业务不断拓展,对产品集成质量和效率的要求也越来越高。尽管部分产品有编译工具软件可用,但这些软件的研发和使用存在如下问题:工具零散,界面布局多样化,不成体系,数据无法统一管理,编译环境不统一,自动化程度不高,无法跟踪、追踪编译结果等。随着时间的累积,工具软件、数据的维护和管理工作也会越来越困难。上述因素使得当前各产品的集成工作存在基础软件数据修改频繁、编译任务重复、工作量大、准确性低和一致性差等方面的问题。因此,通过统一的工具软件实现信号设备编译的高质量和高自动化,以及数据有效管理和维护,是解决这些问题的必要手段,也是衡量产品集成质量和集成效率水平的重要因素之一。国内外同行业公司因产品的编译方式不同,其编译工具的技术实现、自动化程度以及功能都有较大的差别。总的来说,面向产品提供可定制化和高自动化的编译生成工具是企业集成智能化、自动化发展的方向。
综上所述,需在充分梳理各产品编译需求和既有工作存在问题的基础上,研究并开发统一的信号设备自动编译产品,实现编译环境统一、数据管理和编译流程自动化、平台化、网络化。提高编译结果自动化生成效率、统一输出和完善校验,对产品基础软件进行有效的归集和复用,对编译结果进行统一存储管理,并与既有的工程文件服务器进行无缝对接,为集成配置过程提供一站式服务,大幅提高产品数据安全和集成效率。
2 产品概述
GCP平台主要包括TCC、CBI、TSRS、RBC等产品的编译功能实现,整体功能如图1所示。
图1 GCP总体功能概述Fig.1 Overview of GCP overall functions
GCP为B/S架构服务程序,软件编译人员通过浏览器登录GCP,在GCP完成编译任务的维护管理。各项编译任务配置完成后,由服务器完成软件的自动编译,并按要求完成校验及打包上传。
B/S架构为浏览器/服务器架构,软件布置在服务器端。终端用户通过浏览器窗口进行任务配置,然后发送到服务器端进行该任务的自动编译。系统部署如图2所示。
图2 系统基本部署Fig.2 Basic deployment of the system
3 GCP平台总体设计
3.1 设计原则
GCP平台设计主要遵循以下3点设计原则。
1)采用结构化及面向对象方法对系统进行设计及模块划分。各模块功能相对独立,各对象设计满足高内聚、低耦合要求,提高软件的可靠性、可用性及可维护性。
2)区分软件的通用功能和特定功能。二者独立实现,相互之间静态类或对象实例化进行方法调用,提高软件的可维护性和开发的独立性。
3)软件结构设计中考虑后续功能的扩展性。包括所编译设备型号的扩展支持、同一型号软件不同版本的快速扩展、服务器编译环境的扩展以及软件数据修改规则的扩展。
3.2 软件架构设计
GCP平台为B/S架构服务程序,采用SpringMVC服务端框架,JqGrid可视化界面,通过HTTP、SSH、FTP协议完成客户端与平台服务端服务器、服务端服务器与产品库服务器、编译服务器之间的数据交互,如图3所示。软件编译人员仅需点击界面“自动编译”按钮,即可完成编译任务数据自动下载、整合、传输、编译、打包发布等整个编译流程操作。
图3 系统软件架构Fig.3 System software architecture
3.3 软件工作原理
GCP软件主要分为编译文件下载、自动编译和目标程序输出3个部分。
编译文件下载:编译文件下载前,需要软件编译人员对产品编译任务进行设置。GCP平台根据软件编译人员配置的编译源数据SVN路径,将源数据下载到软件指定的待编译目录,并完成自动化整合。
自动编译:如图4所示,自动编译服务器集群是包括Win98、Win7、Linux等系统的服务器集群,GCP主要负责编译任务管理、编译虚拟机管理以及编译调度控制。编译过程中,GCP平台将处理好的编译源数据传输至产品对应编译服务器集群中进行编译,并通过相互协议向编译发送编译指令进行自动编译、自动生成日志(包括编译日志、PVI日志)。编译服务器编译结束后,平台自动取回编译结果并进行相关验证,产生的追溯文件用于后续追踪和校验。
图4 系统工作原理Fig.4 System Working Principle Diagram
目标程序输出:将自动编译后的结果文件在校验通过后自动上传到指定的企业云产品库服务器。
4 应用与实现
GCP可实现对国铁、城轨、海外各信号控制设备(诸如TCC、CBI、TSRS及RBC的应用软件)进行平台化、自动化编译、校验、打包以及上传至产品库。以GCP平台在DS6-60 CBI产品中的应用为例进行说明。
4.1 GCP平台DS6-60 CBI编译功能需求
DS6-60 CBI产品的自动编译主要实现对基础代码、配置数据、平台系统库文件、控显软件、监测软件的自动化编译、校验、打包以及上传。主体功能流程如图5所示。其中蓝色部分为用户操作功能流程,绿色部分为系统内部数据处理及存储方式。
图5 GCP平台DS6-60 CBI自动编译功能实现流程Fig.5 Implementation flow chart of GCP platform DS6-60 CBI automatic compilation function
DS6-60 CBI自动编译的具体流程如下:
1)源文件配置;
2)添加任务;
3)从SVN下载编译所需源文件;
4)按规则修改源文件;
5)把源文件上传到Win 98虚拟机的共享目录;
6)发送命令给虚拟机执行编译;
7)取回编译结果(编译分D和R版,两者步骤相同);
8)按控显、模拟程序、监测规则修改源文件;
9)按S版规则修改源文件;
10)调用批处理文件,在服务器端执行S版的编译;
11)CRC校验;
12)分别打包编译结果和PVI相关内容日志文件,并生成编译回溯文件;
13)人工校验编译时的修改内容;
14)编译过程日志查看;
15)下载查看编译结果和日志文件;
16)编译结果打包上传到SVN;
17)更新日志文件,添加发布SVN信息。
4.2 GCP平台界面实现
GCP平台中DS6-60 CBI产品自动编译提供对基础代码、平台系统库文件、控显检测以及配置数据的更新和修改,提供用户新增编译任务以及编译回溯、查看操作日志的功能。DS6-60 CBI产品页面如图6所示。
图6 GCP平台前端界面实现Fig.6 Front-end interface implementation of GCP platform
5 效果分析与结论
5.1 产品应用效果分析
目前, GCP已投入使用并成为实际生产中不可或缺的一部分,满足对LKD2-T2 TCC、DS6-K5B CBI、TSRS-TH TSRS、RBC-TH RBC、自主化TSRS和RBC等产品的自动编译需求。如LKD2-T2 TCC、DS6-K5B CBI能够实现对 PC 模拟测试软件(S版)、实验室测试平台软件(R版)以及现场使用版本(D版)的编译工作。
本文基于已上线的几种产品编译功能进行统计和分析,并在GCP平台编译的同时进行同等次数的人工编译用于试验对照数据。
共收集试编译626次,测试结果显示人工编译失误总次数为76次,平台编译失误总次数0次,统计数据如表1所示。GCP平台将人工编译所产生的失误率降低到0,显著提高了编译质量。
表1 人工编译与GCP平台编译失误率统计Tab.1 Error rate statistics for manual compilation and GCP platform compilation
对626次编译的平均时长进行分析对照,统计结果显示,人工编译LKD2-T2 TCC产品平均时长约为 2 200 s,K5B CBI产品平均时长约为 4 100 s,RBC-TH RBC 平均时长约为 5 600 s,TSR-TH TSRS平均时长约为1 800 s。采用自动编译后,4个产品的平均时长均降到1 000 s以下,如图7所示,工作效率提升90%,极大降低了时间成本。
图7 人工编译与GCP平台编译平均时长统计Fig.7 Statistics of average compilation time between manual compilation and GCP platform compilation
5.2 结论
GCP是具有自主知识产权的地面信号安全设备自动编译平台,是支撑国铁、城轨各信号控制设备的软件自动编译平台。具有统一的编译环境,自动化、平台化、网络化的软件编译流程和数据管理,能够降低编译流程出错率,提高数据利用率和工作效率,对产品数据安全性、质量的提升起到尤为关键的作用,间接的提升了产品的竞争力,对企业的战略性发展起到支撑作用,值得推广和研究。