劉 鎏
(1.北京全路通信信號(hào)研究設(shè)計(jì)院集團(tuán)有限公司,北京 100070;2.北京市高速鐵路運(yùn)行控制系統(tǒng)工程技術(shù)研究中心,北京 100070)
隨著企業(yè)產(chǎn)品升級(jí)和業(yè)務(wù)不斷拓展,對(duì)產(chǎn)品集成質(zhì)量和效率的要求也越來越高。盡管部分產(chǎn)品有編譯工具軟件可用,但這些軟件的研發(fā)和使用存在如下問題:工具零散,界面布局多樣化,不成體系,數(shù)據(jù)無法統(tǒng)一管理,編譯環(huán)境不統(tǒng)一,自動(dòng)化程度不高,無法跟蹤、追蹤編譯結(jié)果等。隨著時(shí)間的累積,工具軟件、數(shù)據(jù)的維護(hù)和管理工作也會(huì)越來越困難。上述因素使得當(dāng)前各產(chǎn)品的集成工作存在基礎(chǔ)軟件數(shù)據(jù)修改頻繁、編譯任務(wù)重復(fù)、工作量大、準(zhǔn)確性低和一致性差等方面的問題。因此,通過統(tǒng)一的工具軟件實(shí)現(xiàn)信號(hào)設(shè)備編譯的高質(zhì)量和高自動(dòng)化,以及數(shù)據(jù)有效管理和維護(hù),是解決這些問題的必要手段,也是衡量產(chǎn)品集成質(zhì)量和集成效率水平的重要因素之一。國(guó)內(nèi)外同行業(yè)公司因產(chǎn)品的編譯方式不同,其編譯工具的技術(shù)實(shí)現(xiàn)、自動(dòng)化程度以及功能都有較大的差別??偟膩碚f,面向產(chǎn)品提供可定制化和高自動(dòng)化的編譯生成工具是企業(yè)集成智能化、自動(dòng)化發(fā)展的方向。
綜上所述,需在充分梳理各產(chǎn)品編譯需求和既有工作存在問題的基礎(chǔ)上,研究并開發(fā)統(tǒng)一的信號(hào)設(shè)備自動(dòng)編譯產(chǎn)品,實(shí)現(xiàn)編譯環(huán)境統(tǒng)一、數(shù)據(jù)管理和編譯流程自動(dòng)化、平臺(tái)化、網(wǎng)絡(luò)化。提高編譯結(jié)果自動(dòng)化生成效率、統(tǒng)一輸出和完善校驗(yàn),對(duì)產(chǎn)品基礎(chǔ)軟件進(jìn)行有效的歸集和復(fù)用,對(duì)編譯結(jié)果進(jìn)行統(tǒng)一存儲(chǔ)管理,并與既有的工程文件服務(wù)器進(jìn)行無縫對(duì)接,為集成配置過程提供一站式服務(wù),大幅提高產(chǎn)品數(shù)據(jù)安全和集成效率。
GCP平臺(tái)主要包括TCC、CBI、TSRS、RBC等產(chǎn)品的編譯功能實(shí)現(xiàn),整體功能如圖1所示。
圖1 GCP總體功能概述Fig.1 Overview of GCP overall functions
GCP為B/S架構(gòu)服務(wù)程序,軟件編譯人員通過瀏覽器登錄GCP,在GCP完成編譯任務(wù)的維護(hù)管理。各項(xiàng)編譯任務(wù)配置完成后,由服務(wù)器完成軟件的自動(dòng)編譯,并按要求完成校驗(yàn)及打包上傳。
B/S架構(gòu)為瀏覽器/服務(wù)器架構(gòu),軟件布置在服務(wù)器端。終端用戶通過瀏覽器窗口進(jìn)行任務(wù)配置,然后發(fā)送到服務(wù)器端進(jìn)行該任務(wù)的自動(dòng)編譯。系統(tǒng)部署如圖2所示。
圖2 系統(tǒng)基本部署Fig.2 Basic deployment of the system
GCP平臺(tái)設(shè)計(jì)主要遵循以下3點(diǎn)設(shè)計(jì)原則。
1)采用結(jié)構(gòu)化及面向?qū)ο蠓椒▽?duì)系統(tǒng)進(jìn)行設(shè)計(jì)及模塊劃分。各模塊功能相對(duì)獨(dú)立,各對(duì)象設(shè)計(jì)滿足高內(nèi)聚、低耦合要求,提高軟件的可靠性、可用性及可維護(hù)性。
2)區(qū)分軟件的通用功能和特定功能。二者獨(dú)立實(shí)現(xiàn),相互之間靜態(tài)類或?qū)ο髮?shí)例化進(jìn)行方法調(diào)用,提高軟件的可維護(hù)性和開發(fā)的獨(dú)立性。
3)軟件結(jié)構(gòu)設(shè)計(jì)中考慮后續(xù)功能的擴(kuò)展性。包括所編譯設(shè)備型號(hào)的擴(kuò)展支持、同一型號(hào)軟件不同版本的快速擴(kuò)展、服務(wù)器編譯環(huán)境的擴(kuò)展以及軟件數(shù)據(jù)修改規(guī)則的擴(kuò)展。
GCP平臺(tái)為B/S架構(gòu)服務(wù)程序,采用SpringMVC服務(wù)端框架,JqGrid可視化界面,通過HTTP、SSH、FTP協(xié)議完成客戶端與平臺(tái)服務(wù)端服務(wù)器、服務(wù)端服務(wù)器與產(chǎn)品庫服務(wù)器、編譯服務(wù)器之間的數(shù)據(jù)交互,如圖3所示。軟件編譯人員僅需點(diǎn)擊界面“自動(dòng)編譯”按鈕,即可完成編譯任務(wù)數(shù)據(jù)自動(dòng)下載、整合、傳輸、編譯、打包發(fā)布等整個(gè)編譯流程操作。
圖3 系統(tǒng)軟件架構(gòu)Fig.3 System software architecture
GCP軟件主要分為編譯文件下載、自動(dòng)編譯和目標(biāo)程序輸出3個(gè)部分。
編譯文件下載:編譯文件下載前,需要軟件編譯人員對(duì)產(chǎn)品編譯任務(wù)進(jìn)行設(shè)置。GCP平臺(tái)根據(jù)軟件編譯人員配置的編譯源數(shù)據(jù)SVN路徑,將源數(shù)據(jù)下載到軟件指定的待編譯目錄,并完成自動(dòng)化整合。
自動(dòng)編譯:如圖4所示,自動(dòng)編譯服務(wù)器集群是包括Win98、Win7、Linux等系統(tǒng)的服務(wù)器集群,GCP主要負(fù)責(zé)編譯任務(wù)管理、編譯虛擬機(jī)管理以及編譯調(diào)度控制。編譯過程中,GCP平臺(tái)將處理好的編譯源數(shù)據(jù)傳輸至產(chǎn)品對(duì)應(yīng)編譯服務(wù)器集群中進(jìn)行編譯,并通過相互協(xié)議向編譯發(fā)送編譯指令進(jìn)行自動(dòng)編譯、自動(dòng)生成日志(包括編譯日志、PVI日志)。編譯服務(wù)器編譯結(jié)束后,平臺(tái)自動(dòng)取回編譯結(jié)果并進(jìn)行相關(guān)驗(yàn)證,產(chǎn)生的追溯文件用于后續(xù)追蹤和校驗(yàn)。
圖4 系統(tǒng)工作原理Fig.4 System Working Principle Diagram
目標(biāo)程序輸出:將自動(dòng)編譯后的結(jié)果文件在校驗(yàn)通過后自動(dòng)上傳到指定的企業(yè)云產(chǎn)品庫服務(wù)器。
GCP可實(shí)現(xiàn)對(duì)國(guó)鐵、城軌、海外各信號(hào)控制設(shè)備(諸如TCC、CBI、TSRS及RBC的應(yīng)用軟件)進(jìn)行平臺(tái)化、自動(dòng)化編譯、校驗(yàn)、打包以及上傳至產(chǎn)品庫。以GCP平臺(tái)在DS6-60 CBI產(chǎn)品中的應(yīng)用為例進(jìn)行說明。
DS6-60 CBI產(chǎn)品的自動(dòng)編譯主要實(shí)現(xiàn)對(duì)基礎(chǔ)代碼、配置數(shù)據(jù)、平臺(tái)系統(tǒng)庫文件、控顯軟件、監(jiān)測(cè)軟件的自動(dòng)化編譯、校驗(yàn)、打包以及上傳。主體功能流程如圖5所示。其中藍(lán)色部分為用戶操作功能流程,綠色部分為系統(tǒng)內(nèi)部數(shù)據(jù)處理及存儲(chǔ)方式。
圖5 GCP平臺(tái)DS6-60 CBI自動(dòng)編譯功能實(shí)現(xiàn)流程Fig.5 Implementation flow chart of GCP platform DS6-60 CBI automatic compilation function
DS6-60 CBI自動(dòng)編譯的具體流程如下:
1)源文件配置;
2)添加任務(wù);
3)從SVN下載編譯所需源文件;
4)按規(guī)則修改源文件;
5)把源文件上傳到Win 98虛擬機(jī)的共享目錄;
6)發(fā)送命令給虛擬機(jī)執(zhí)行編譯;
7)取回編譯結(jié)果(編譯分D和R版,兩者步驟相同);
8)按控顯、模擬程序、監(jiān)測(cè)規(guī)則修改源文件;
9)按S版規(guī)則修改源文件;
10)調(diào)用批處理文件,在服務(wù)器端執(zhí)行S版的編譯;
11)CRC校驗(yàn);
12)分別打包編譯結(jié)果和PVI相關(guān)內(nèi)容日志文件,并生成編譯回溯文件;
13)人工校驗(yàn)編譯時(shí)的修改內(nèi)容;
14)編譯過程日志查看;
15)下載查看編譯結(jié)果和日志文件;
16)編譯結(jié)果打包上傳到SVN;
17)更新日志文件,添加發(fā)布SVN信息。
GCP平臺(tái)中DS6-60 CBI產(chǎn)品自動(dòng)編譯提供對(duì)基礎(chǔ)代碼、平臺(tái)系統(tǒng)庫文件、控顯檢測(cè)以及配置數(shù)據(jù)的更新和修改,提供用戶新增編譯任務(wù)以及編譯回溯、查看操作日志的功能。DS6-60 CBI產(chǎn)品頁面如圖6所示。
圖6 GCP平臺(tái)前端界面實(shí)現(xiàn)Fig.6 Front-end interface implementation of GCP platform
目前, GCP已投入使用并成為實(shí)際生產(chǎn)中不可或缺的一部分,滿足對(duì)LKD2-T2 TCC、DS6-K5B CBI、TSRS-TH TSRS、RBC-TH RBC、自主化TSRS和RBC等產(chǎn)品的自動(dòng)編譯需求。如LKD2-T2 TCC、DS6-K5B CBI能夠?qū)崿F(xiàn)對(duì) PC 模擬測(cè)試軟件(S版)、實(shí)驗(yàn)室測(cè)試平臺(tái)軟件(R版)以及現(xiàn)場(chǎng)使用版本(D版)的編譯工作。
本文基于已上線的幾種產(chǎn)品編譯功能進(jìn)行統(tǒng)計(jì)和分析,并在GCP平臺(tái)編譯的同時(shí)進(jìn)行同等次數(shù)的人工編譯用于試驗(yàn)對(duì)照數(shù)據(jù)。
共收集試編譯626次,測(cè)試結(jié)果顯示人工編譯失誤總次數(shù)為76次,平臺(tái)編譯失誤總次數(shù)0次,統(tǒng)計(jì)數(shù)據(jù)如表1所示。GCP平臺(tái)將人工編譯所產(chǎn)生的失誤率降低到0,顯著提高了編譯質(zhì)量。
表1 人工編譯與GCP平臺(tái)編譯失誤率統(tǒng)計(jì)Tab.1 Error rate statistics for manual compilation and GCP platform compilation
對(duì)626次編譯的平均時(shí)長(zhǎng)進(jìn)行分析對(duì)照,統(tǒng)計(jì)結(jié)果顯示,人工編譯LKD2-T2 TCC產(chǎn)品平均時(shí)長(zhǎng)約為 2 200 s,K5B CBI產(chǎn)品平均時(shí)長(zhǎng)約為 4 100 s,RBC-TH RBC 平均時(shí)長(zhǎng)約為 5 600 s,TSR-TH TSRS平均時(shí)長(zhǎng)約為1 800 s。采用自動(dòng)編譯后,4個(gè)產(chǎn)品的平均時(shí)長(zhǎng)均降到1 000 s以下,如圖7所示,工作效率提升90%,極大降低了時(shí)間成本。
圖7 人工編譯與GCP平臺(tái)編譯平均時(shí)長(zhǎng)統(tǒng)計(jì)Fig.7 Statistics of average compilation time between manual compilation and GCP platform compilation
GCP是具有自主知識(shí)產(chǎn)權(quán)的地面信號(hào)安全設(shè)備自動(dòng)編譯平臺(tái),是支撐國(guó)鐵、城軌各信號(hào)控制設(shè)備的軟件自動(dòng)編譯平臺(tái)。具有統(tǒng)一的編譯環(huán)境,自動(dòng)化、平臺(tái)化、網(wǎng)絡(luò)化的軟件編譯流程和數(shù)據(jù)管理,能夠降低編譯流程出錯(cuò)率,提高數(shù)據(jù)利用率和工作效率,對(duì)產(chǎn)品數(shù)據(jù)安全性、質(zhì)量的提升起到尤為關(guān)鍵的作用,間接的提升了產(chǎn)品的競(jìng)爭(zhēng)力,對(duì)企業(yè)的戰(zhàn)略性發(fā)展起到支撐作用,值得推廣和研究。