摘要:為實現(xiàn)網(wǎng)絡(luò)化測試系統(tǒng)下非結(jié)構(gòu)化海量網(wǎng)絡(luò)數(shù)據(jù)的快速分析處理,在關(guān)鍵的算法和系統(tǒng)化集成處理方面提出解決方法。采用內(nèi)存映射文件方式快速讀取海量數(shù)據(jù),并設(shè)計了時間矩陣算法,用以快速進行同步分析處理;應(yīng)用分布式中間件方式實現(xiàn)海量數(shù)據(jù)的并發(fā)處理和數(shù)據(jù)分發(fā),對飛行試驗采集的網(wǎng)絡(luò)數(shù)據(jù)進行了分析處理,使用這些算法的數(shù)據(jù)處理軟件,可以使處理效率滿足飛行試驗海量網(wǎng)絡(luò)數(shù)據(jù)處理的需求。這些都為新一代機載采集系統(tǒng)應(yīng)用于飛行試驗提供了技術(shù)保障。
關(guān)鍵詞:IENA;XNET/INET;PCAP;飛行試驗
飛行試驗數(shù)據(jù)處理是飛行試驗工程中非常重要的一個環(huán)節(jié),是對各類試飛數(shù)據(jù)信息進行細致、充分和全面的分析與處理,數(shù)據(jù)處理結(jié)果是飛行試驗鑒定結(jié)論的核心依據(jù)。隨著計算機網(wǎng)絡(luò)技術(shù)在飛行試驗測試領(lǐng)域的深入應(yīng)用,網(wǎng)絡(luò)化測試技術(shù)逐漸成為飛行試驗測試技術(shù)發(fā)展的另一個核心。同時隨著現(xiàn)代飛機設(shè)計技術(shù)的發(fā)展,飛機系統(tǒng)越來越復雜,飛行試驗科目、測試參數(shù)、測試數(shù)據(jù)種類以及測試數(shù)據(jù)總量越來越多。對飛行試驗數(shù)據(jù)處理從質(zhì)量、速度以及數(shù)據(jù)安全性、可靠性等方面提出了更高的要求。機載網(wǎng)絡(luò)化測試系統(tǒng)架構(gòu)技術(shù)應(yīng)用于最新的飛機測試系統(tǒng)上,該系統(tǒng)采集記錄的網(wǎng)絡(luò)數(shù)據(jù)記錄了飛機一個飛行試驗起落的各類測試數(shù)據(jù)信息,新一代飛機測試參數(shù)總量激增,數(shù)據(jù)總量達到上百個GB。為縮短單架次飛行試驗周期,如何高效快捷地對這些非結(jié)構(gòu)化的海量網(wǎng)絡(luò)數(shù)據(jù)包進行同步分析處理,方便科研人員的應(yīng)用,就成為必須解決的實際問題。
1 網(wǎng)絡(luò)化機載測試系統(tǒng)飛行試驗數(shù)據(jù)的特點
在網(wǎng)絡(luò)化機載測試系統(tǒng)Kam4000中,網(wǎng)絡(luò)數(shù)據(jù)包從采集器通過二級交換機到記錄器。第一級交換機可以有多個,二級交換機作為系統(tǒng)的時鐘接入點、遙測數(shù)據(jù)和記錄器的接入點、系統(tǒng)配置文件的加載點,結(jié)構(gòu)如圖1所示。網(wǎng)絡(luò)數(shù)據(jù)包被記錄器完整的記錄下來,在此需要分析的是記錄器記錄的完整的網(wǎng)絡(luò)數(shù)據(jù)。該網(wǎng)絡(luò)數(shù)據(jù)是有一個個網(wǎng)絡(luò)數(shù)據(jù)包組成,每個網(wǎng)絡(luò)數(shù)據(jù)包的格式根據(jù)采集器的不同可以是不同的。
1.1 與Kam500采集系統(tǒng)的差別
現(xiàn)在大量應(yīng)用于飛行試驗的Kam500機載測試系統(tǒng),采集記錄的飛行試驗數(shù)據(jù)格式為標準的PCM數(shù)據(jù)。PCM數(shù)據(jù)由重復出現(xiàn)的長幀組成,每個長幀的長度是固定的,每個長幀包含若干個短幀。網(wǎng)絡(luò)化機載測試系統(tǒng)Kam4000中,采集記錄的飛行試驗數(shù)據(jù)為網(wǎng)絡(luò)數(shù)據(jù)包格式。每個網(wǎng)絡(luò)數(shù)據(jù)包的大小都可以不同,并且每個網(wǎng)絡(luò)數(shù)據(jù)包中的參數(shù)個數(shù)也可以不同。
1.2 海量網(wǎng)絡(luò)數(shù)據(jù)包的格式
網(wǎng)絡(luò)化測試系統(tǒng)采用ARCA公司的最新采集器,采集記錄的數(shù)據(jù)格式根據(jù)采集器的不同可以是IENA,或XNET/INET網(wǎng)絡(luò)數(shù)據(jù)包格式。采用BCU105(IENA Ethernet Controller)支持的是IENA包結(jié)構(gòu)。而采用BCU140(XNET Ethernet Controller)支持XNET/INET的同時,也支持IEN-A。在網(wǎng)絡(luò)化測試系統(tǒng)中IENA和XNET/INET網(wǎng)絡(luò)數(shù)據(jù)包以EthernetⅡ協(xié)議廣播。根據(jù)記錄器的不同,記錄的網(wǎng)絡(luò)數(shù)據(jù)包結(jié)構(gòu)可以是PCAP格式或者IRIG106-10格式記錄。
PCAP基本格式:
文件頭 數(shù)據(jù)包頭 數(shù)據(jù)包 數(shù)據(jù)包頭 數(shù)據(jù)包 …
IRIG106-10基本格式:
文件頭 特殊字頭 數(shù)據(jù)包 特殊字頭 數(shù)據(jù)包 …
根據(jù)飛行試驗的測試特性,參照以往的模擬量在飛行實驗中記錄數(shù)據(jù)的大小,如果參數(shù)量為5 000個,一定的飛行時間內(nèi)記錄的飛行試驗數(shù)據(jù)為12 GB左右。隨著飛機系統(tǒng)的復雜性的增加,應(yīng)用于飛行實驗的網(wǎng)絡(luò)化測試系統(tǒng)需測試的飛行試驗參數(shù)也越來越多,單架次的飛行試驗記錄的模擬量數(shù)據(jù)將是現(xiàn)在的4倍、5倍甚至更多。
1.3 網(wǎng)絡(luò)數(shù)據(jù)包個數(shù)多
為提高發(fā)包效率,使發(fā)包延遲時間盡可能小,將數(shù)據(jù)包在采集后快速的發(fā)送出去,ARCA公司的采集器規(guī)定每個數(shù)據(jù)包的大小在設(shè)計上不允許超過1 500 B。同時,現(xiàn)在的測試參數(shù)都是高采樣率,在這樣的測試系統(tǒng)條件下,一個網(wǎng)絡(luò)數(shù)據(jù)包可記錄的參數(shù)量非常有限,必然會產(chǎn)生惟一標示的單個網(wǎng)絡(luò)數(shù)據(jù)包的個數(shù)激增。
1.4 網(wǎng)絡(luò)數(shù)據(jù)包非結(jié)構(gòu)化
網(wǎng)絡(luò)數(shù)據(jù)包具有典型的非結(jié)構(gòu)化。在采集器端,按照測試系統(tǒng)的配置采集參數(shù),并形成網(wǎng)絡(luò)數(shù)據(jù)包。對于交換機而言,單個網(wǎng)絡(luò)數(shù)據(jù)包的到來和發(fā)送沒有完整的規(guī)則。在記錄器上記錄的原始網(wǎng)絡(luò)數(shù)據(jù)包數(shù)據(jù),在數(shù)據(jù)包的排列順序上是無序的,數(shù)據(jù)包的周期是不確定的。不能準確預測到下一個網(wǎng)絡(luò)數(shù)據(jù)包到來的順序和時間。
2 網(wǎng)絡(luò)數(shù)據(jù)處理方法
針對以上網(wǎng)絡(luò)數(shù)據(jù)包的特點:最新的網(wǎng)絡(luò)數(shù)據(jù)包格式和記錄格式,海量的原始數(shù)據(jù),數(shù)目龐大的測試參數(shù),典型的非結(jié)構(gòu)化,以及上千萬、上億的單個網(wǎng)絡(luò)數(shù)據(jù)包。根據(jù)飛行試驗的特點,必須在盡可能短的時間內(nèi)給出飛行試驗的數(shù)據(jù)分析結(jié)果,以便試飛工程師安排接下來的飛行試驗。
2.1 內(nèi)存映射文件
內(nèi)存映射文件,是由一個文件到一塊內(nèi)存的映射。WIN32提供了允許應(yīng)用程序把文件映射到一個進程的函數(shù)(CreateFileMapping)。使用內(nèi)存映射文件處理存儲于磁盤上的文件時,將不必再對文件執(zhí)行I/O操作,使得內(nèi)存映射文件在處理大數(shù)據(jù)量的文件時能起到相當重要的作用。在處理飛行試驗海量網(wǎng)絡(luò)數(shù)據(jù)時,需不斷地提取數(shù)據(jù)的,進行判斷、跳過等文件操作。如果按照以往的文件指針模式去提取網(wǎng)絡(luò)數(shù)據(jù),在數(shù)據(jù)處理效率上有可能不能滿足飛行試驗海量網(wǎng)絡(luò)數(shù)據(jù)處理的需求。針對快速讀取海量原始網(wǎng)絡(luò)數(shù)據(jù),內(nèi)存映射文件模式提供了解決方法。
2.2 時間矩陣同步分析算法
針對飛行試驗原始網(wǎng)絡(luò)數(shù)據(jù),每個單獨的網(wǎng)絡(luò)數(shù)據(jù)包總是有時間標識的。這些時間標識在整個原始文件中又是無序存放的。飛行試驗的科目所需要的數(shù)據(jù)往往存在于多個網(wǎng)絡(luò)數(shù)據(jù)包中,這些網(wǎng)絡(luò)數(shù)據(jù)包中的數(shù)據(jù)往往不會是同一時刻采集的,也就是說網(wǎng)絡(luò)數(shù)據(jù)包的時間標識不會是同時刻的。針對網(wǎng)絡(luò)數(shù)據(jù)包的這些特性,為快速進行網(wǎng)絡(luò)數(shù)據(jù)包的時統(tǒng)分析,設(shè)計了時間矩陣同步分析算法。
如圖2網(wǎng)絡(luò)數(shù)據(jù)包時間順序所示,原始網(wǎng)絡(luò)數(shù)據(jù)包的時間在順序上是無序的。
時間矩陣同步分析算法是一種高效的同步分析算法,是最快最逼近真實數(shù)據(jù)的一種的算法。將原始數(shù)據(jù)時間以1 s為單位,以實際需要的每秒采樣率PerCyc為等分值,即將時間軸分PerCyc等分,如圖3所示。
假設(shè)PerCyc為6,則在1 s內(nèi),平均提取6個時間點。以第二個時間點10為例,從圖中可以看到,某個實際的網(wǎng)絡(luò)數(shù)據(jù)包時間在10附近有08 s,09 s,12 s三點,那么在提取該網(wǎng)絡(luò)數(shù)據(jù)包的時候,比較后選擇09 s點數(shù)值為同步分析的結(jié)果數(shù)值。以此類推,對需要提取的網(wǎng)絡(luò)數(shù)據(jù)包在10 s點的數(shù)值都可以比較逼近獲得。
2.3 分布式應(yīng)用中間件網(wǎng)絡(luò)數(shù)據(jù)處理
以中間件形式(Active控件等)將網(wǎng)絡(luò)數(shù)據(jù)包接口軟件發(fā)布在分布式網(wǎng)絡(luò)數(shù)據(jù)處理系統(tǒng)中。該系統(tǒng)在數(shù)據(jù)管理、海量數(shù)據(jù)并發(fā)處理和數(shù)據(jù)分發(fā)等方面滿足海量飛行試驗數(shù)據(jù)處理需求,通過基于Web的飛行試驗數(shù)據(jù)處理子系統(tǒng)實現(xiàn)對所需數(shù)據(jù)信息的訪問。如圖4所示。
(1)客戶端ActiveX根據(jù)調(diào)度服務(wù)器列表中的IP及端口號循環(huán)嘗試建立Socket通信,發(fā)出計算請求;
(2)客戶端ActiveX與調(diào)度服務(wù)器建立連接后,調(diào)度服務(wù)器經(jīng)過負載均衡計算,返回給客戶端ActiveX一個計算服務(wù)器的IP及端口號;
(3)客戶端ActiveX與計算服務(wù)器建立Socket連接;
(4)客戶端ActiveX發(fā)出執(zhí)行計算命令;
(5)計算服務(wù)器接收到計算命令后,啟動確定的分布式中間件執(zhí)行分布式計算任務(wù),并將狀態(tài)信息輸出到控制臺,計算服務(wù)器中的狀態(tài)監(jiān)控程序用管道技術(shù)將分布式中間件的輸出作為自己的輸入,并通過Socket方式返回給客戶端ActiveX;
(6)客戶端ActiveX接收任務(wù)執(zhí)行的狀態(tài)信息,顯示給用戶;
(7)當分布式中間件執(zhí)行完畢,計算服務(wù)器中的狀態(tài)監(jiān)控程序?qū)⒆詈蟮慕Y(jié)果文件通過Socket傳給客戶端ActiveX;
(8)客戶端ActiveX控件將文件保存至客戶端,分布式計算結(jié)束。
3 結(jié)語
本文由面及點地對網(wǎng)絡(luò)化測試系統(tǒng)中采集記錄的網(wǎng)絡(luò)數(shù)據(jù)進行了深層次的理解和多視角的剖析。同時為實現(xiàn)對非結(jié)構(gòu)化海量網(wǎng)絡(luò)數(shù)據(jù)進行快速分析處理,對數(shù)據(jù)處理算法和數(shù)據(jù)處理軟件集成進行了研究,從接口軟件關(guān)鍵算法設(shè)計到數(shù)據(jù)系統(tǒng)集成提出了解決方法。并且這些方法已經(jīng)在飛行試驗海量網(wǎng)絡(luò)數(shù)據(jù)處理軟件的設(shè)計過程中應(yīng)用,通過對飛行試驗中采集的網(wǎng)絡(luò)數(shù)據(jù)進行分析處理,使用這些算法的飛行試驗海量網(wǎng)絡(luò)數(shù)據(jù)處理軟件的處理效率滿足飛行試驗海量網(wǎng)絡(luò)數(shù)據(jù)處理需求,解決了在飛行試驗中的非結(jié)構(gòu)海量網(wǎng)絡(luò)數(shù)據(jù)快速分析處理問題,為新一代機載網(wǎng)絡(luò)化測試系統(tǒng)應(yīng)用于飛行試驗提供了技術(shù)保障。國外許多航空公司已經(jīng)在飛行試驗中應(yīng)用網(wǎng)絡(luò)化測試系統(tǒng),對非結(jié)構(gòu)海量網(wǎng)絡(luò)數(shù)據(jù)分析處理技術(shù)也在進行研究。