張明凱 白鴻鈞 楊清祥
摘? ?要:介紹了一種在對(duì)LKJ系統(tǒng)自動(dòng)化測(cè)試過程中獲取到遠(yuǎn)端自動(dòng)測(cè)試臺(tái)設(shè)備運(yùn)行的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)。通過Thrift遠(yuǎn)程調(diào)用接口方式將監(jiān)測(cè)數(shù)據(jù)傳輸給Web服務(wù)器,同時(shí)將部分需記錄的數(shù)據(jù)進(jìn)行保存操作,在瀏覽器頁(yè)面通過訪問Web服務(wù)器進(jìn)行動(dòng)態(tài)展示測(cè)試過程變化情況以及相關(guān)監(jiān)測(cè)指標(biāo)數(shù)據(jù)的變化等的技術(shù)架構(gòu)。通過本技術(shù)架構(gòu)解決了web瀏覽器實(shí)時(shí)展示測(cè)試過程中產(chǎn)生的監(jiān)測(cè)圖像和其他指標(biāo)數(shù)據(jù)的問題。本軟件技術(shù)架構(gòu)能夠很好的解決實(shí)時(shí)數(shù)據(jù)傳輸和監(jiān)控,傳感器數(shù)據(jù)監(jiān)測(cè)等問題,具有很好的應(yīng)用前景。
關(guān)鍵詞:自動(dòng)測(cè)試;實(shí)時(shí);數(shù)據(jù)監(jiān)測(cè);遠(yuǎn)程調(diào)用
中圖分類號(hào):TP319? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
Technical Research on Real-time Data Dynamic Display
of LKJ Automated Test System
ZHANG Ming-kai?覮,BAI Hong-jun,YANG Qing-xiang
(Henan Thinking Rail Transit Technology Research Institute Co.,Ltd.,Zhengzhou,Henan 450001,China)
Abstract:This paper introduces a real-time monitoring data obtained by remote test station equipment in the process of automatic testing of LKJ system. The monitoring data is transmitted to the Web server through Thrift remote call interface,and some data to be recorded is also carried out. The save operation,in the browser page,by accessing the web server to dynamically display the technical process of the change of the test process and the change of the relevant monitoring indicator data. Through the technical architecture,the problem that the web browser displays the monitoring image and other indicator data generated during the test in real time is solved. The software technology architecture can solve real-time data transmission and monitoring,sensor data monitoring and other issues,and has a good application prospect.
Key words:automated testing;real-time;data monitoring;remote call
LKJ系統(tǒng)是我國(guó)國(guó)家鐵路和地方鐵路廣泛運(yùn)用的列控系統(tǒng),在保障列車運(yùn)行安全方面有著極為重要的作用。為了保證LKJ系統(tǒng)相關(guān)軟件的準(zhǔn)確無(wú)誤,提出了LKJ軟件自動(dòng)化仿真測(cè)試的研究,這個(gè)問題的解決將很大的提高相關(guān)軟硬件測(cè)試的效率和準(zhǔn)確性,為L(zhǎng)KJ系統(tǒng)的安全保駕護(hù)航[1]。在我們研究關(guān)于LKJ軟件自動(dòng)測(cè)試的過程中,遇到了如何將自動(dòng)測(cè)試過程中產(chǎn)生的運(yùn)行記錄數(shù)據(jù)以及監(jiān)測(cè)數(shù)據(jù)等實(shí)時(shí)反應(yīng)到客戶端供用戶查看的問題。文章將會(huì)通過介紹LKJ自動(dòng)化仿真測(cè)試系統(tǒng)的基本組成架構(gòu)和web端實(shí)時(shí)數(shù)據(jù)獲取方案等,提出一項(xiàng)通用的基本B/S架構(gòu)設(shè)計(jì)的實(shí)時(shí)數(shù)據(jù)展現(xiàn)技術(shù)。
1? ?仿真測(cè)試系統(tǒng)組成
以往的大部分自動(dòng)化測(cè)試程序都是CS架構(gòu)設(shè)計(jì)[2-7],由于CS技術(shù)架構(gòu)存在客戶端分散,不易升級(jí)管理等一系列問題,故本方案設(shè)計(jì)使用BS架構(gòu)開展,各個(gè)客戶端用戶可以通過瀏覽器方式訪問使用本系統(tǒng)。
仿真測(cè)試系統(tǒng)主要由兩部分組成,一是仿真測(cè)試平臺(tái);二是軟件仿真測(cè)試系統(tǒng)軟件,如圖1所示。
軟件仿真平臺(tái)主要由LKJ15S主機(jī)單元、擴(kuò)展單元、DMI單元、交換機(jī)單元、信號(hào)采集單元、信號(hào)發(fā)生單元、軟件仿真單元、控制單元、機(jī)械單元等組成。軟件仿真測(cè)試軟件系統(tǒng)主要由測(cè)試控制軟件和BS仿真測(cè)試軟件兩部分組成[3-6]。
圖1? ?仿真測(cè)試系統(tǒng)組成圖
測(cè)試控制軟件通過CPCI總線與仿真平臺(tái)各單元通信[8-9],通過以太網(wǎng)與LKJ-15S通信,提供LKJ-15S輸入信號(hào)控制、數(shù)據(jù)采集、測(cè)試序列解釋執(zhí)行等功能。采用C++語(yǔ)言開發(fā),其中的各模塊分裝成單獨(dú)的庫(kù)文件,動(dòng)態(tài)調(diào)用。
測(cè)試控制軟件提供thrift服務(wù)接口供應(yīng)用服務(wù)器軟件調(diào)用,接收應(yīng)用服務(wù)器軟件發(fā)送的啟動(dòng)測(cè)試命令、測(cè)試序列、LKJ數(shù)據(jù)等。測(cè)試控制軟件通過數(shù)據(jù)庫(kù)與應(yīng)用服務(wù)器軟件進(jìn)行大批量數(shù)據(jù)交換,發(fā)送測(cè)試進(jìn)度、測(cè)試結(jié)果以及測(cè)試過程中執(zhí)行的操作、采集的LKJ實(shí)時(shí)數(shù)據(jù)等。
BS仿真測(cè)試系統(tǒng)采用JAVA和HTML5等前端技術(shù)實(shí)現(xiàn),主要實(shí)現(xiàn)系統(tǒng)設(shè)置,用例圖形化編輯,用例腳本轉(zhuǎn)化,仿真測(cè)試,數(shù)據(jù)版本管理等功能,頁(yè)面采用WebSocket方式提供實(shí)時(shí)數(shù)據(jù)通信能力,滿足手動(dòng)測(cè)試、軟件仿真時(shí)DMI界面動(dòng)態(tài)顯示、LKJ數(shù)據(jù)實(shí)時(shí)顯示需要。
1.1? ?測(cè)控軟件設(shè)計(jì)
測(cè)試控制軟件是根據(jù)服務(wù)器發(fā)送的自動(dòng)測(cè)試、手工測(cè)試、軟件仿真等指令,進(jìn)行測(cè)試仿真。解析服務(wù)器發(fā)送的測(cè)試序列腳本文件,調(diào)用相關(guān)模塊產(chǎn)生所需信號(hào),采集各物理通道的反饋數(shù)據(jù),在檢查點(diǎn)比對(duì)反饋結(jié)果。軟件模塊劃分如圖2,其中信號(hào)發(fā)生模塊通過接收到web服務(wù)端等發(fā)送的信號(hào)生成指令,對(duì)指令進(jìn)行解析并發(fā)送到對(duì)應(yīng)的接口和設(shè)備以達(dá)到產(chǎn)生信號(hào)的目的。測(cè)試控制模塊主要針對(duì)自動(dòng)測(cè)試過程中的腳本解析,腳本執(zhí)行,自動(dòng)測(cè)試結(jié)果判斷,測(cè)試結(jié)果報(bào)錯(cuò)過程記錄等功能進(jìn)行實(shí)現(xiàn)。數(shù)據(jù)采集模塊針對(duì)當(dāng)前鏈接設(shè)備提供各個(gè)設(shè)備信號(hào)的實(shí)時(shí)獲取功能,供自動(dòng)測(cè)試過程以及其他需要當(dāng)前設(shè)備信號(hào)展示的地方進(jìn)行調(diào)用。管理模塊主要是針對(duì)當(dāng)前硬件環(huán)境的一些配置信息,如實(shí)現(xiàn)設(shè)備ID管理,IP分配管理,加密策略管理,測(cè)控軟件根據(jù)服務(wù)器最新版本自動(dòng)升級(jí)等功能。測(cè)控軟件主要作為web服務(wù)的一些底層服務(wù)支持使用,并且主要通過Thrift接口進(jìn)行數(shù)據(jù)通信,控制等,部分通過數(shù)據(jù)庫(kù)共享機(jī)制實(shí)現(xiàn)數(shù)據(jù)一致性的共享。
圖2? ?測(cè)控軟件組成圖
2.2? ?BS仿真測(cè)試軟件
BS仿真測(cè)試軟件主要結(jié)構(gòu)如圖3所示。客戶端與服務(wù)端通信采用WebSocket和AJAX技術(shù)實(shí)現(xiàn)。WebSocket是HTML5提供的一種瀏覽器與服務(wù)器間進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù),依靠這種技術(shù)可以實(shí)現(xiàn)客戶端和服務(wù)器端的長(zhǎng)連接、雙向?qū)崟r(shí)通信。AJAX 是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。通過在后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。這樣可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。傳統(tǒng)的網(wǎng)頁(yè)(不使用 AJAX)如果需要更新內(nèi)容,必需重載整個(gè)網(wǎng)頁(yè)面。根據(jù)兩種技術(shù)特點(diǎn),當(dāng)需要滿足實(shí)時(shí)通信時(shí)選擇使用WebSocket技術(shù)解決[10-13],否則使用AJAX技術(shù)進(jìn)行前后端通信。Web服務(wù)器作為測(cè)控軟件的上一層應(yīng)用主要通過Thrift接口進(jìn)行相關(guān)通信。
圖3? ?BS仿真測(cè)試軟件結(jié)構(gòu)圖
主要業(yè)務(wù)模塊劃分為系統(tǒng)設(shè)置、測(cè)試用例管理、仿真測(cè)試、查詢統(tǒng)計(jì),軟件版本管理模塊。系統(tǒng)設(shè)置功能模塊主要完成軟件系統(tǒng)的基本管理功能如人員組織機(jī)構(gòu)管理,權(quán)限管理,數(shù)據(jù)字典管理,仿真平臺(tái)管理,客戶端管理。仿真平臺(tái)管理是對(duì)當(dāng)前接入系統(tǒng)的平臺(tái)信息進(jìn)行認(rèn)證注冊(cè),只有通過注冊(cè)的平臺(tái)才會(huì)在系統(tǒng)中供客戶使用,客戶端管理是針對(duì)訪問系統(tǒng)的PC,手機(jī)端設(shè)備進(jìn)行認(rèn)證的過程,通過管理員審核相關(guān)設(shè)備信息進(jìn)行系統(tǒng)內(nèi)注冊(cè),注冊(cè)通過的設(shè)備可以訪問本系統(tǒng),支持加入黑名單功能禁止部分設(shè)備訪問本系統(tǒng)。測(cè)試用例管理功能是針對(duì)用戶編寫測(cè)試用例比較困難的問題提供了一種圖形化編輯測(cè)試用例的功能,能更加直觀的完成用例編寫工作,提高了用例編寫效率。仿真測(cè)試功能主要包括手動(dòng)測(cè)試、自動(dòng)測(cè)試、仿真調(diào)試三個(gè)功能,手動(dòng)測(cè)試是根據(jù)頁(yè)面提供的各個(gè)設(shè)備模擬發(fā)生裝置發(fā)送相應(yīng)的信號(hào)給測(cè)控軟件,測(cè)控軟件發(fā)送給相應(yīng)的設(shè)備,再通過回采相應(yīng)設(shè)備的信號(hào)情況進(jìn)行顯示的過程。自動(dòng)測(cè)試是用戶指定測(cè)試平臺(tái),選擇需要測(cè)試的測(cè)試序列建立自動(dòng)測(cè)試任務(wù),通過遠(yuǎn)程數(shù)據(jù)環(huán)境換裝并執(zhí)行測(cè)試腳本信息,讓程序自動(dòng)的發(fā)送信號(hào),判斷執(zhí)行邏輯并得出測(cè)試結(jié)論的一個(gè)過程。仿真調(diào)試是通過加載仿真調(diào)試器將需要仿真的軟件進(jìn)行加載測(cè)試的過程,仿真調(diào)試支持多人在線調(diào)試,一人為主調(diào)試人,其他人通過輸入口令可遠(yuǎn)程觀看調(diào)試過程,并給出相關(guān)建議。軟件版本管理功能主要是針對(duì)項(xiàng)目設(shè)計(jì)的各個(gè)軟件數(shù)據(jù)進(jìn)行了集中分類按版本進(jìn)行管理的功能,其中測(cè)控軟件的自動(dòng)升級(jí)功能就是通過對(duì)比此處最新版本軟件實(shí)現(xiàn)的自動(dòng)換裝,并且可通過此模塊功能實(shí)現(xiàn)遠(yuǎn)程換裝操作[11]。
2? ?擴(kuò)展應(yīng)用
通過LKJ自動(dòng)化測(cè)試系統(tǒng)的應(yīng)用以及相關(guān)技術(shù)經(jīng)過實(shí)踐的檢驗(yàn),我們可以提出以下通用架構(gòu)設(shè)計(jì),如圖4所示。
接下來針對(duì)圖4中各部分做簡(jiǎn)要說明,其中①通道為各個(gè)遠(yuǎn)端客戶機(jī)或者手機(jī)等移動(dòng)終端連接Web服務(wù)器的通道,通過此通道獲取到相應(yīng)的數(shù)據(jù)以及相關(guān)應(yīng)用的界面展示效果。此通道可以通過多種形式進(jìn)行數(shù)據(jù)交互連接,實(shí)時(shí)性要求高的數(shù)據(jù)可通過WebSocket的方式獲取,同樣出于安全考慮可以設(shè)置相關(guān)連接終端的用戶白名單機(jī)制,并可以通過Web應(yīng)用程序詳細(xì)控制各個(gè)服務(wù)接口的權(quán)限訪問情況做到更加精細(xì)化的管理。Web應(yīng)用服務(wù)器部分為自身系統(tǒng)主體,可根據(jù)自身業(yè)務(wù)需求進(jìn)行功能完善。通道②主要連接數(shù)據(jù)庫(kù)服務(wù)器和文件服務(wù)器部分,讓W(xué)eb服務(wù)通過通道②獲取持久化后的數(shù)據(jù)或者對(duì)相關(guān)數(shù)據(jù)進(jìn)行持久化。數(shù)據(jù)存儲(chǔ)主要分為文件服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,他們分別存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù),可以通過Web服務(wù)實(shí)現(xiàn)對(duì)相關(guān)數(shù)據(jù)的統(tǒng)計(jì)和數(shù)據(jù)挖掘分析工作,為相關(guān)管理人員提供決策的數(shù)據(jù)支撐,使決策更加科學(xué)合理化。監(jiān)測(cè)控制服務(wù)器左側(cè)通過通道③與web服務(wù)器通信,右側(cè)通過通道④與外圍設(shè)備進(jìn)行通信,同樣的可以通過通道⑤像web服務(wù)器一樣對(duì)數(shù)據(jù)存儲(chǔ)做相應(yīng)的處理。通道③設(shè)計(jì)通過Thrift接口實(shí)現(xiàn),主要基于Thrift框架自身優(yōu)點(diǎn)比如開源相關(guān)技術(shù)案例社區(qū)比較多,同時(shí)是最好的多語(yǔ)言支撐的遠(yuǎn)程服務(wù)框架,web應(yīng)用服務(wù)通過Java實(shí)現(xiàn),但是與硬件通信以及相關(guān)開發(fā)設(shè)計(jì)主要通過C++或者python實(shí)現(xiàn),選擇Thrift就是盡量減少設(shè)備相關(guān)開發(fā)的變動(dòng)情況。監(jiān)測(cè)控制服務(wù)器主要完成各個(gè)外圍設(shè)備的接入工作,數(shù)據(jù)采集工作,控制指令解析發(fā)送工作等。通道④兼顧設(shè)備認(rèn)證功能,根據(jù)設(shè)備信息從系統(tǒng)內(nèi)校驗(yàn)此設(shè)備是否是我們注冊(cè)的合法設(shè)備,返回各個(gè)設(shè)備監(jiān)測(cè)信息等。通道⑤監(jiān)測(cè)服務(wù)器將需要保存的數(shù)據(jù)進(jìn)行記錄保存到數(shù)據(jù)庫(kù)或文件系統(tǒng)中。此架構(gòu)設(shè)計(jì)普遍適用于遠(yuǎn)程控制和實(shí)時(shí)監(jiān)測(cè)等領(lǐng)域,可以作為今后物聯(lián)網(wǎng)領(lǐng)域的原子框架模型,將各個(gè)設(shè)備接入互聯(lián)網(wǎng)中進(jìn)行集中管控,接下來將對(duì)本架構(gòu)的應(yīng)用進(jìn)一步的探索。
圖4? ?監(jiān)測(cè)實(shí)時(shí)數(shù)據(jù)軟件架構(gòu)圖
3? ?結(jié) 論
技術(shù)架構(gòu)經(jīng)過LKJ自動(dòng)化測(cè)試系統(tǒng)的應(yīng)用,證明相關(guān)技術(shù)應(yīng)用可靠,并根據(jù)應(yīng)用情況提取出基本軟件模型,此模型應(yīng)用場(chǎng)景廣闊,技術(shù)可行,數(shù)據(jù)傳輸效率高,安全可靠[14]。此軟件架構(gòu)模型可以廣泛應(yīng)用于今后的物聯(lián)網(wǎng)平臺(tái)研發(fā)等領(lǐng)域,必將成為今后實(shí)時(shí)監(jiān)控領(lǐng)域的主流技術(shù)。
參考資料
[1]? ? 白鴻鈞,楊清祥,李冠軍,等.LKJ自動(dòng)化測(cè)試系統(tǒng)圖形化技術(shù)研究[J].鐵道通信信號(hào),2018,54(01):8—11.
[2]? ? 蘇白燕,許強(qiáng),黃健,等.基于動(dòng)態(tài)數(shù)據(jù)驅(qū)動(dòng)的地質(zhì)災(zāi)害監(jiān)測(cè)預(yù)警系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].成都理工大學(xué)學(xué)報(bào):自然科學(xué)版,2018,45(5):615—627.
[3]? ? 郭壯壯,武夢(mèng)龍.基于虛擬儀器的自動(dòng)測(cè)試系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2018,26(12):30—33.
[4]? ? 羅飛豹,李一楠.CTCS-2級(jí)列控車載設(shè)備自動(dòng)仿真測(cè)試平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J]鐵 道 通 信 信 號(hào),2018,54(4):75—79.
[5]? ? 李斌斌.基于WebSocket協(xié)議的車聯(lián)網(wǎng)監(jiān)控系統(tǒng)[D].西安:長(zhǎng)安大學(xué)車輛工程,2018.
[6]? ? 曹文彬,譚新明,劉 備,等.基于事件驅(qū)動(dòng)的高性能 WebSocket 服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(01):21—27.
[7]? ? JIA M H,CHEN Y,CHEN Q,et al. A web service framework for astronomical remote observation in Antarctica by using satellite link[J].Elsevier Journal,2018(4):17—24.
[8]? ? 張文,牟艷,高振興,等.WebSocket 技術(shù)在工業(yè)設(shè)備數(shù)據(jù)實(shí)時(shí)監(jiān)測(cè)中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2017(11):111—115.
[9]? ? 楊帆,孔維萍,蔣曉肖,等.基于THRIFT的RPC中間件在航天信息系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制,2017,25(12):279—306.
[10]? LIU Zi-wei,LI Shao-bin,LI Yan,et al. Remote ATS simulation system based on WebSocket communication protocol[C].International Conference on Intelligent Computation Technology and Automation,2017(10):327—330.
[11]? 李道霞,張長(zhǎng)生,郎向偉,等. 基于 WebSocke和ArcGIS Server的高鐵基礎(chǔ)設(shè)施在線監(jiān)測(cè)系統(tǒng)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2016,25(2):38—44.
[12]? 陳麗楓,鄭力新,王佳斌.基于HTML5 WebSocket的Web實(shí)時(shí)通信機(jī)制的研究與實(shí)現(xiàn)[J]. 微型機(jī)與應(yīng)用,2016,35(10):88—91.
[13]? ZHANG Tong-guang,ZHAO Shuai,WU Bu-dan,et al.Light weight SOA-based twin-engine architecture for enterprise systems in fixed and mobile environments[J].China Communications,2016,(9):183—194.
[14]? 陳淏,高守瑋,岳金冬.基于WebSocket 實(shí)時(shí)物聯(lián)網(wǎng)數(shù)據(jù)傳輸關(guān)鍵技術(shù)的研究[J].工業(yè)控制計(jì)算機(jī),2016,29(11):33—36.