連彥澤 何信華 白健
【摘 要】提出一種面向航天領(lǐng)域的實(shí)時(shí)數(shù)據(jù)處理框架,采用插件式框架設(shè)計(jì)方法,實(shí)現(xiàn)行業(yè)數(shù)據(jù)的高效實(shí)時(shí)處理。
【Abstract】In this paper, a real-time data processing framework for aerospace field is proposed. The plug-in framework design method is used to realize the efficient and real-time processing of industry data.
【關(guān)鍵詞】實(shí)時(shí);數(shù)據(jù)處理;框架
【Keywords】real-time; data processing; frame
【中圖分類(lèi)號(hào)】G15 【文獻(xiàn)標(biāo)志碼】A 【文章編號(hào)】1673-1069(2017)05-0154-02
1 引言
信息與通信技術(shù)的飛速發(fā)展,已深刻影響到航空、航天、能源、鋼鐵、電力等工業(yè)領(lǐng)域的生產(chǎn)模式與流程,促使行業(yè)生產(chǎn)模式由傳統(tǒng)的粗放式的以人工為主向精確化、自動(dòng)化、智能化方向轉(zhuǎn)變。通過(guò)信息系統(tǒng)對(duì)工業(yè)生產(chǎn)過(guò)程中產(chǎn)生的大量數(shù)據(jù)進(jìn)行實(shí)時(shí)處理分析,實(shí)時(shí)監(jiān)控,為生產(chǎn)決策提供自動(dòng)化智能化的數(shù)據(jù)支撐。
航天領(lǐng)域的實(shí)時(shí)數(shù)據(jù)處理一般以實(shí)時(shí)傳感與實(shí)時(shí)采集的數(shù)據(jù)為數(shù)據(jù)源,包括各類(lèi)傳感器采集的數(shù)據(jù)、現(xiàn)場(chǎng)各類(lèi)控制終端的數(shù)據(jù)等,數(shù)據(jù)量大,數(shù)據(jù)采集的頻率高。特別是隨著物聯(lián)網(wǎng)概念的出現(xiàn)與技術(shù)的應(yīng)用,航天領(lǐng)域?qū)崟r(shí)產(chǎn)生的數(shù)據(jù)量在成倍增加。隨著云計(jì)算與大數(shù)據(jù)等IT技術(shù)的出現(xiàn)與發(fā)展, 互聯(lián)網(wǎng)領(lǐng)域中產(chǎn)生了諸多數(shù)據(jù)處理框架,如Hadoop、Spark等,此類(lèi)框架采用批處理方式的MapReduce技術(shù),實(shí)現(xiàn)海量數(shù)據(jù)的實(shí)時(shí)處理,數(shù)據(jù)處理的延時(shí)一般為秒級(jí),能夠滿足互聯(lián)網(wǎng)領(lǐng)域大部分?jǐn)?shù)據(jù)實(shí)時(shí)處理需求。但在工業(yè)領(lǐng)域,由于監(jiān)測(cè)與控制的精度更高,一般要求在毫秒級(jí)完成數(shù)據(jù)的實(shí)時(shí)處理,現(xiàn)有批處理方式的MapReduce大規(guī)模數(shù)據(jù)處理技術(shù)難以滿足此類(lèi)計(jì)算需求。本文提出一種面向行業(yè)應(yīng)用的實(shí)時(shí)數(shù)據(jù)處理框架,實(shí)現(xiàn)滿足多種數(shù)據(jù)源、多種數(shù)據(jù)類(lèi)型的實(shí)時(shí)數(shù)據(jù)處理。
2 數(shù)據(jù)處理方法
在航天領(lǐng)域中,測(cè)量系統(tǒng)作為飛行器、航天測(cè)控系統(tǒng)中的重要組成部分,用于獲取飛行器內(nèi)部各系統(tǒng)的工作狀態(tài)參數(shù)和環(huán)境數(shù)據(jù),為評(píng)定飛行器的性能和故障分析提供依據(jù)[1]。而數(shù)據(jù)處理是測(cè)量過(guò)程中的一個(gè)重要環(huán)節(jié),其任務(wù)是將接收到的原始信息,經(jīng)過(guò)挑路、拼接和運(yùn)算,完成各類(lèi)參數(shù)的處理,處理結(jié)果以時(shí)間函數(shù)值表或時(shí)間函數(shù)曲線提供[1]。數(shù)據(jù)處理包括從數(shù)據(jù)塊中提取數(shù)據(jù)幀、對(duì)數(shù)據(jù)幀進(jìn)行后處理、處理數(shù)據(jù)幀中的參數(shù)、輸出處理結(jié)果。
3 實(shí)時(shí)處理框架設(shè)計(jì)
3.1 軟件框架的概念
軟件框架是整個(gè)系統(tǒng)或系統(tǒng)的一部分的可重用性設(shè)計(jì),由一組抽象出來(lái)的類(lèi)及其實(shí)例間的相互作用方式組成??蚣馨岩粋€(gè)系統(tǒng)有機(jī)地分解成一組相對(duì)獨(dú)立的構(gòu)件,并定義了各個(gè)構(gòu)件間的接口和作用關(guān)系,符合軟件工程中設(shè)計(jì)的模塊化、獨(dú)立化和信息隱藏等特征。框架提供了一個(gè)大粒度的重用技術(shù),即不僅支持源代碼級(jí)的重用,而且支持分析和設(shè)計(jì)以及體系結(jié)構(gòu)的重用,因而被認(rèn)為是一種最有前途的面向?qū)ο蠹夹g(shù)。
框架必須是健壯的、可擴(kuò)展的、靈活的,它要求基于開(kāi)放或共享標(biāo)準(zhǔn)??蚣艿脑O(shè)計(jì)要力求做到完備性、靈活性、可擴(kuò)展性、可理解性,同時(shí)抽象能用于不同的場(chǎng)合;用戶(hù)能輕松地添加和修改功能,定制框架;用戶(hù)和框架的交互清晰,文檔齊全??蚣茉O(shè)計(jì)的一個(gè)核心問(wèn)題就是發(fā)現(xiàn)可重用的設(shè)計(jì)和“熱點(diǎn)”,以保證框架具備充分的靈活性,使用戶(hù)能在已有構(gòu)件的基礎(chǔ)上生成應(yīng)用程序,實(shí)現(xiàn)“零代碼編寫(xiě)”的理想目標(biāo)。
3.2 實(shí)時(shí)處理框架設(shè)計(jì)原則
實(shí)時(shí)處理框架設(shè)計(jì)采用框架與插件相結(jié)合的設(shè)計(jì)方式,把數(shù)據(jù)處理各功能從框架中剝離出來(lái),降低框架的復(fù)雜度,讓框架更容易實(shí)現(xiàn)。數(shù)據(jù)處理功能與框架以一種很松的方式耦合,兩者在保持接口不變的情況下,可以獨(dú)立變化和發(fā)布。采用該設(shè)計(jì)原則,具有以下好處:
①無(wú)需更改或編譯程序就可以擴(kuò)展程序的功能;
②可以在不需要源代碼的環(huán)境下擴(kuò)展程序的功能;
③在一個(gè)程序的業(yè)務(wù)邏輯在不斷發(fā)生變化仍能靈活適應(yīng)。
4 實(shí)時(shí)處理框架實(shí)現(xiàn)
4.1 框架接口
框架對(duì)各插件進(jìn)行統(tǒng)一管理,軟件啟動(dòng)時(shí),自動(dòng)識(shí)別并加載指定目錄下的所有插件??蚣芄渤橄蟪鰯?shù)據(jù)提取器、幀提取器、數(shù)據(jù)處理器、輸出器共4類(lèi)插件接口,各類(lèi)插件需要實(shí)現(xiàn)相應(yīng)類(lèi)型的插件接口,才能被框架正確的調(diào)用??蚣芘c插件之間的關(guān)系如下圖所示。
4.2 框架實(shí)現(xiàn)
程序框架包括主程序模塊、數(shù)據(jù)源模塊、緩沖區(qū)管理模塊、數(shù)據(jù)處理模塊、狀態(tài)管理模塊、配置管理模塊、插件管理模塊與日志管理模塊共8個(gè)模塊。主程序模塊負(fù)責(zé)管理各模塊中的對(duì)象,并完成各對(duì)象的創(chuàng)建與初始化工作。通過(guò)調(diào)用數(shù)據(jù)源與數(shù)據(jù)處理模塊的啟動(dòng)與停止接口實(shí)現(xiàn)對(duì)兩個(gè)模塊的控制。數(shù)據(jù)源模塊通過(guò)調(diào)用緩沖區(qū)管理模塊的寫(xiě)入數(shù)據(jù)接口向緩沖區(qū)中寫(xiě)入數(shù)據(jù),數(shù)據(jù)處理模塊調(diào)用緩沖區(qū)管理模塊的讀取數(shù)據(jù)接口從緩沖區(qū)中讀取數(shù)據(jù)進(jìn)行數(shù)據(jù)處理。各模塊均可調(diào)用日志記錄模塊的記錄日志接口寫(xiě)操作日志或錯(cuò)誤信息。
主框架模塊類(lèi)關(guān)系如下圖所示,main函數(shù)是整個(gè)軟件的入口函數(shù),調(diào)用日志記錄模塊中的相應(yīng)接口完成日志初始化工作,并將命令行參數(shù)傳遞給CMainApp類(lèi),調(diào)用CMainApp類(lèi)的Execute接口啟動(dòng)軟件。
CMainApp類(lèi)通過(guò)ProgramOption對(duì)象解析命令行參數(shù),獲得命令行中設(shè)置的各個(gè)選項(xiàng),創(chuàng)建插件管理模塊中的CPluginManager對(duì)象,完成所有插件的加載工作,并將CPluginManager對(duì)象傳遞給CMultiAddrDataSource類(lèi),調(diào)用CProgressTimer類(lèi)的對(duì)象實(shí)現(xiàn)程序計(jì)時(shí)工作。
4.3 插件實(shí)現(xiàn)
數(shù)據(jù)處理軟件總體框架采用插件式架構(gòu),抽象出數(shù)據(jù)提取器、幀提取器、數(shù)據(jù)處理器、輸出共4類(lèi)插件接口,插件采用統(tǒng)一接口設(shè)計(jì),每一個(gè)插件均是實(shí)現(xiàn)了標(biāo)準(zhǔn)接口的動(dòng)態(tài)鏈接庫(kù)(Windows平臺(tái)為.dll文件、Linux平臺(tái)位.so文件),由插件管理器進(jìn)行統(tǒng)一管理,實(shí)現(xiàn)自動(dòng)識(shí)別與加載。實(shí)時(shí)處理框架根據(jù)系統(tǒng)配置創(chuàng)建若干個(gè)數(shù)據(jù)處理線程,根據(jù)配置中插件的類(lèi)別,數(shù)據(jù)處理線程對(duì)象向插件管理器請(qǐng)求創(chuàng)建插件服務(wù),生成所需的各插件,各插件相互協(xié)作,完成數(shù)據(jù)處理與輸出的功能。
5 結(jié)論
本文提出了一種面向航天領(lǐng)域的實(shí)時(shí)數(shù)據(jù)處理框架,采用插件式框架的設(shè)計(jì)原則,實(shí)現(xiàn)了一套具備真正的跨平臺(tái)、強(qiáng)擴(kuò)展性、強(qiáng)復(fù)用性等優(yōu)勢(shì)的數(shù)據(jù)處理平臺(tái)。
【參考文獻(xiàn)】
【1】李邦復(fù),郝建民.遙測(cè)系統(tǒng)[M].北京:宇航出版社,1991.