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