(中國運載火箭技術研究院,北京 100076)
隨著飛行器性能的不斷提高及系統組成的復雜性的不斷增加,各種信息技術和智能技術被廣泛應用其中,使其可靠性、維修性、故障預測與診斷及維修保障等問題日漸突出。一旦裝備發生故障或健康狀態劣化,則會嚴重影響生產效率[1-3]。自主保障壽命管理作為飛行器健康診斷與故障推理的重要部分存在以下需要解決的問題:(1)飛行器產品信息多數以光盤、文件形式存在,分散在不同人員和單位中,且產品信息未能與飛行器布局進行關聯,難以實現產品數據的安全共享和快速查找,影響了數據的有效分析和合理利用,需要對飛行器產品信息進行統一規范化管理。(2)為實現飛行器健康狀態的診斷及預測,需要大量的產品自主保障數據、產品壽命數據、故障維修保障數據、歷史試驗數據等,涉及的數據種類繁多、格式多樣,管理與使用方式各有不同,需要以能夠靈活定制數據模型,建立各類數據模型,提供數據信息的有效管理。(3)壽命信息是監控產品健康狀態的重要參數,通過人工記錄效率低,難度大,且無法為產品壽命預測、狀態監控提供數據支撐,需要結合試驗數據、產品使用狀態自動實時監控產品的壽命數據[4-7]。
本文結合目前自主保障壽命管理的業務需求,對基于B/S的自主保障軟件開發框架和實時分布式數據庫存儲技術進行研究,設計實現了一套面向飛行器的自主保障壽命管理軟件,對軟件的組成架構、各功能模塊以及關鍵技術的實現進行了描述。
該軟件以項目研制中對飛行器自主保障與健康管理的需求為牽引,形成一套具有自主知識產權的面向飛行器的自主保障壽命管理軟件,為項目研制服務。
面向飛行器的自主保障壽命管理軟件組成架構如圖1所示,包含三個層次:系統服務層、系統功能層和系統管理層。

圖1 自主保障壽命管理軟件總體架構圖
系統服務層主要負責對系統的數據服務。數據采用分庫存儲,文件存儲與數據庫管理均采用統一服務模式,數據庫主要用來管理試驗數據、產品數據、業務邏輯數據等,分布式文件存儲系統主要負責管理文檔、圖片、試驗源文件等。
系統功能層主要分為全生命周期配置管理、試驗數據管理與壽命管理模塊,負責實現系統的業務功能需求。系統功能層應具有易拓展、耦合度低不易相互影響等優點,MVC層次清晰,促進數據的管理效率。
系統管理層主要負責控制用戶對數據的訪問與操作權限,并提供日志查看服務。
1.2.1 全生命周期配置管理
1)飛行器PBS結構樹管理:
PBS是針對研制項目最終產品(軟硬件交付物),從整機、系統、子系統到部組件、零件級進行的層次化樹狀結構分解。PBS定義了產品中最終的產品及產品的組成單元,確定了產品中應包含的功能和結構[7]。飛行器PBS結構樹管理可對飛行器歷史總體布局情況進行統一管理,并對當前PBS結構樹進行查看。依據PBS碼文件的層級結構,建立相應的產品結構樹,通過導入PBS碼文件,創建PBS碼信息,初始化產品結構樹。PBS碼文件中包含層級、每個節點名稱和唯一的PBS編碼。產品結構樹第零層級為項目名稱,第一層級為分系統,第二層級為子系統,第三層級為單機產品,第四層級為安裝。
2)產品信息配置與管理:
產品信息配置與管理模塊對飛行器所有單機產品進行統一管理,包含裝機件及備用件。所有產品件均以產品代號為關聯,掛在相應的PBS結構樹第三級(單機級)下。產品管理可對產品進行查看、新增、刪除、版本更新自動關聯等。產品基本信息包括產品名稱、產品編號、產品代號、產品重量、產品功耗、生產廠家、工作電壓、工作電流、生產時間、產品描述、工作環境、研制階段等出廠信息,以及所屬PBS、倉位、占位等位置信息。該模塊中產品標簽生成及打印功能可將產品的基本屬性編輯生成標簽,并驅動打印機打印。生成的標簽包括產品名稱、PBS編碼、產品編號、產品代號以及二維碼。
3)維修與保障信息管理管理:
維修與保障信息管理管理功能模塊主要對產品的維修記錄及維修保障信息進行管理。維修記錄主要包括維修時間、維修地點、維修工序、試驗驗證狀態等,可以查看、新增、修改和刪除產品維修信息。維修保障信息主要包括維修或更換需求、維修級別、人力和人員需求、備件和消耗品供應情況、保障設備需求、技術資料需求、訓練與訓練保障需求、計算機資源保障需求、保障設施需求、包裝/裝卸/儲存/運輸保障需求等。保障信息以產品代號為關聯,與單機一一對應??蓪Ξa品保障信息進行查看、新增、修改、刪除等操作。對某一產品的保障信息進行操作,操作會自動更新到同一單機下的其他產品的保障信息。當PBS版本發生變化時,保障信息會自動更新到新版本PBS結構樹的相應位置。
4)故障信息管理:
產品故障信息管理功能模塊主要對產品的故障記錄進行管理,故障記錄主要包括故障名稱、故障位置、故障模式、故障性質、故障等級、故障原因、故障發生時間、影響分析、解決措施等,可以查看、新增、修改和刪除產品故障信息。
1.2.2 試驗數據管理
1)試驗數據導入與轉換:
試驗數據存儲支持實時存儲和事后文件導入兩種方式。實時存儲即試驗過程中,接收解析后的試驗數據包,并通過函數實時寫入數據表中;事后導入指試驗結束后,可調用軟件中文件格式解析器對多種試驗數據格式進行解析導入,可支持文件解析器的擴展,以支持不同的試驗數據格式。能夠實現多層結構試驗數據復合包的試驗數據導入,根據試驗數據包層級結構自動創建節點層級,進行試驗數據的批量導入,提高用戶體驗與使用效率。試驗數據庫分為臨時庫和受控庫兩部分,實時存儲和事后文件導入都可以先存入臨時庫中,然后通過在試驗數據結構樹上進行關聯,將數據從臨時庫導入到受控庫中。
2)數據瀏覽:
試驗數據瀏覽模塊提供已上傳入庫數據的查看功能。用戶登錄進入系統后,按照所需查看數據的隸屬關系,點擊結構樹上的相應節點,隸屬于該節點的數據將會按文件類型顯示在主界面中。入庫的試驗數據以列表形式顯示,并能追溯到試驗原始文件進行查看和下載操作。所有數據能夠按照不同屬性進行排序,便于用戶快速查看。
3)數據查詢與搜索:
試驗查詢搜索功能允許用戶通過關鍵字來快速查詢和搜索數據。對于查詢的結果,可以通過添加檢索條件,對試驗數據每項屬性值進行條件篩選,以縮小搜索范圍,提高檢索效率,并能夠對查詢結果進行數據導出。
4)數據統一處理:
試驗數據處理控件能夠顯示試驗數據,導入的試驗數據能夠以表格、曲線、散點圖、柱狀圖等不同的形式顯示,以方便用戶直接查看。支持多次試驗數據的對比分析,并可通過滾動條對數據范圍進行設置。同時可對分析結果進行截取存儲。
1.2.3 壽命管理
1)壽命策略配置:
該功能模塊實現對壽命策略進行配置管理,包括單機產品設計壽命時間、設計動作次數、壽命消耗計算策略、壽命預測計算策略、壽命與飛行器遙測參數的關聯關系等。通過標準的壽命計算策略配置文件對以上壽命策略進行統一配置管理。
2)壽命記錄分析:
壽命記錄分析功能能夠對單機產品的已消耗壽命時間和已使用動作次數壽命數據進行記錄,通過建立產品與飛行器遙測參數關聯關系,利用試驗結果遙測數據和壽命消耗計算策略對產品的剩余壽命進行計算。支持手動錄入和修改產品的已使用壽命信息。
3)壽命預測與提醒:
在一次試驗開始前,根據試驗的類型、性質、時間,利用壽命預測計算策略對飛行器的剩余壽命進行預測。根據單機產品設定的使用時間、動作次數等壽命信息,當產品將要到達產品使用壽命時,系統自動推送提醒消息。
1.3.1 基于B/S的自主保障軟件開發框架
面向飛行器的自主保障壽命管理軟件是基于B/S的自主保障軟件開發框架進行業務功能定制和設計開發的。用戶可以通過該軟件開發框架快速搭建基于B/S架構的業務系統,并高度自定義開發系統核心邏輯。該軟件開發框架包含五個層次:儲存層、數據訪問層、應用層、控制層和視圖層,如圖 2所示。其中儲存層負責不同類型數據的儲存,包括結構化數據與非結構化數據儲存、結構化數據儲存采用關系型數據庫,支持多種常用關系型數據庫,非結構化數據庫儲存采用分布式文件儲存。數據訪問負責封裝不同類型數據訪問接口,通過數據訪問基礎組件,盡量屏蔽儲存層采用的技術差異性。通過數據連接池、數據訪問(ORM)和文件訪問(FS)提供存取的數據。應用層封裝必要的應用邏輯,負責根據應用邏輯決定數據的顯示,并根據輸入數據進行計算或查詢。采用可選組件根據具體業務邏輯需求開發擴展相應的業務控制器。控制層負責對數據訪問權限、界面顯示方式、前端使用技術等進行控制,將前端的不同應用需求轉發到相應應用層模塊,并在執行完所需任務之后將結果返回到顯示層。視圖層負責前端人機交互界面的展示,可應用JSP、FreeMarker、Bootstrap等技術滿足前端界面的個性化需求設計與開發。

圖2 基于B/S的自主保障軟件開發框架圖
基于B/S的自主保障軟件開發框架使用Jfinal框架為基礎搭建,Jfinal在開發中具有開發速度快、輕量級等特點,可以與眾多技術結合進行方便快捷的使用,從后臺的數據交互到前端的視圖渲染、均在Jfinal框架的控制攔截體系之下,可以快速進行Aop操作、日志操作、熱啟動等。
應對面向飛行器的自主保障壽命管理軟件中較強的交互性需求,以及關于試驗數據管理中一些特殊的顯示效果,該軟件開發框架采用了前端框架Bootstrap,通過其豐富的Web組件,使前端和用戶的交互邏輯最簡化,操作更快捷方便,符合目前先進的軟件設計理念。
應用Freemarker作為模板引擎做MVC中視圖渲染部分,使用Freemarker前端模板引擎技術將數據與前端模板文件進行結合,再返回至response流中,Freemaker可以支持各種基本Java數據類型以及擴展數據類型,非jsp的渲染也天生的屏蔽了文件上傳漏洞,增強了安全性,且語法簡單易用,使項目開發快速、低錯誤率。
1.3.2 實時分布式數據庫存儲技術
該軟件的另一項關鍵技術是實時分布式數據庫存儲技術。飛行器在地面試驗和在軌運行階段,會產生大量實時數據,因此如何實現海量試驗數據實時存儲成為自保軟件的一項關鍵核心技術。結合本單位項目的數據情況,地面試驗階段測控通信速率最大包絡數據為100 Mbps,一次總檢查所獲得的原始數據可達22.5 G,按照解析后數據量增至50倍的數據容量統計,每次總檢查數據達到1125 G,在綜合試驗、匹配試驗、熱平衡、熱真空、總裝測試過程中累計需要經歷上百次總檢查,產生的總數據為110 T,試驗數據包括源碼、結構化數據、圖片、圖像、文本等異構數據,保障這些試驗數據的高效存儲至關重要。該軟件的實時分布式數據庫存儲技術以基于Hadoop自主研發的分布式文件系統和基于MyCat的分布式Mysql數據庫系統實現海量試驗數據存儲,封裝內置ZBUS的消息隊列服務,持續導入Mycat。支持持續的大量不間斷遙測數據源碼以及解析后數據的入庫。Jfinal自動ORM映射模型,數據庫結構化數據ORM映射為Java對象。以Mycat數據庫實現分布式文件系統和數據庫存儲海量數據,通過數據切分實現了海量數據存放的問題,通過中間代理層規避了多數據源處理的問題。

圖3 軟件實現流程圖
分布式文件系統集群由元數據服務器集群和基于對象的存儲設備集群兩大部分組成。集群中的每個節點都可以是運行著Linux或者Windows系統的計算機,服務器進程是用戶級別的進程,能夠實現資源節點的快速添加和存儲規模的擴展。元數據服務器集群負責管理和維護文件系統的元數據,維護邏輯文件到對象物理存儲的映射關系,提供訪問權限控制,為用戶提供統一的命名空間服務。元數據服務器集群具體包括遠程調用服務,權限管理模塊、負載遷移模塊、備份恢復模塊、系統監控管理模塊、節點管理模塊和元數據管理模塊等。對象存儲服務器集群由若干個對象存儲服務器組成,通過對象存儲池集中管理?;趯ο蟮拇鎯υO備集群提供統一的存儲接口,底層存儲系統的實現對用戶是透明的,用戶只需使用對象接口操作就能完成高效的數據IO操作。基于對象的存儲設備集群具體包括故障檢測模塊、文件副本管理、存儲緩存池、存儲分配服務、對象存取服務和底層存儲設備模塊等。
對于結構化數據的存儲,軟件使用了MyCat分布數據庫中間件,對數據庫進行水平和垂直切分到多個物理數據庫的方式進行數據庫擴容。每個數據庫的數據結構完全相同,但是數據各不相同。當用戶發起查詢請求時,并發搜索服務先通過主DB的分表信息表查詢表分布位置,再同時請求多表發起查詢,得到所有結果集時異步響應用戶的查詢請求,完成查詢任務。針對工作流引擎的分析選擇工作流流程定義ID作為標記字段進行數據分割,將同一個流程的數據放在同一個數據表中。這樣保證了同一流程的所有數據處于同一個數據庫中,在流程調度操作進行時只需要操作同一個數據源中的數據,提高性能的同時也簡化了事務處理的難度。對于與開發人員來說,整個分布式數據庫對于傳統單數據庫的操作完全相同,從二次開發的角度講,完全可以將整個數據庫系統當做一個單一的數據庫。
面向飛行器的自主保障壽命管理軟件搭建了基于B/S的多層開發框架,實現了豐富的前端設計、后端數據處理、數據存儲等多方面開發組件與技術的集成,實現了飛行器全生命周期配置管理、試驗數據管理及壽命管理等功能。軟件實現流程圖如圖3所示。
目前該軟件已經應用于某演示驗證項目的地面試驗階段,實現了該項目5個系統近百個單機產品的生命周期配置管理,約20次綜合匹配試驗的實時源碼數據存儲以及試驗后約100 G解析數據的事后導入存儲,并且在地面實驗中對具備壽命管理策略的單機產品進行了壽命記錄。
該軟件基于B/S的自主保障軟件開發框架能夠在框架基礎上快速設計開發軟件新的業務邏輯及修改優化功能,提高了軟件后期維護更新的效率。歷經項目多次地面試驗的運行使用,該軟件的功能設計和實現已得到了初步的驗證。

圖4 產品配置信息

圖5 產品壽命信息
本文在分析目前飛行器在工程應用中存在的客觀現實問題的基礎上,以PBS結構樹為基礎,設計并實現了一套面向飛行器的自主保障壽命管理軟件,介紹了軟件的總體架構組成以及各功能模塊的業務功能設計,實現了基于B/S的自主保障軟件開發框架和實時分布式數據庫存儲技術,可精準定位飛行器產品,快速提供產品所有相關自主保障數據、壽命信息、更換維修記錄、試驗數據等,為飛行器故障診斷及維護決策提供了有效支撐。