本發明屬于可靠性和安全評價領域,具體涉及一種航天發射場安全可靠性數據庫構建方法及分析與評估系統。
背景技術:
航天發射場是一個復雜的系統,涉及機、電、液、氣等各個專業,且投入大、工程周期長、風險性極高,一旦出現事故,會帶來嚴重的社會影響和經濟損失。另外,我國航天試驗高密度、高質量的發射需求也對航天發射場的安全可靠性提出了更高的要求。然而目前對于航天發射場的安全可靠性評估存在如下問題:只對部分子系統進行了安全可靠性評估,沒有覆蓋整個發射場系統;沒有構建一個完整的數據庫平臺,無法對進行評估時所需要的數據提供簡便高效的支持,嚴重制約了評估工作的開展。
技術實現要素:
本發明的目的在于提供一種航天發射場安全可靠性數據庫構建方法及分析與評估系統,考慮航天發射場數據種類多、數據量大、安全性要求高的特點,具有跨平臺、高可用性、易維護性、高并發性、高可靠性、可擴展性等突出優勢。
本發明的技術方案如下:如圖1所示,一種航天發射場安全可靠性數據庫構建方法,采用C/S模式,包括服務器和客戶端;
在服務器端,采用開源關系型數據庫mysql對來自數據采集層的航天發射場的數據進行存儲設計,是各數據子模塊之間關系的建立,采用的方法是以設施設備庫和火箭記錄庫為中心,將試驗數據庫、可靠性數據庫、故障樹數據庫與之相關聯,對應關系主要有一對一、一對多、多對多三種,最終得到一個關系緊密、高效、冗余度低的數據庫存儲設計;數據的復雜性和多數據源體現在數據采集層的系統組成中,以加注系統為例,就涉及到液氫、液氮、液氧等多種燃料的物化特性、試驗特性等相關數據,而且數據庫中的數據來源除了有相關的標準制度、圖片、音視頻、人員操作記錄、設備運行記錄等,還有相關的試驗數據,涉及的文件格式多樣,數據大小不一,都給統一的存儲設計帶來不便。
以上述的數據庫存儲設計為基礎,在客戶端采用開源跨平臺GUI開發工具Qt,實現對數據庫的檢索與管理功能,并提供友好的用戶操作界面,為每個數據庫提供了菜單項和工具欄,主界面采用標簽頁的形式進行顯示,實現了便捷高效的數據庫檢索及管理操作;管理功能包括:新增數據、修改數據、刪除數據、導入數據、備份與恢復數據、用戶信息及權限管理、日志管理、報表生成、輔助軟件開發、字段擴展;
為支持用戶與數據庫之間資料的正確上傳與下載功能,考慮到TCP協議提供的超時重發、丟棄重復數據、檢驗數據和流量控制等優異功能,故采用此協議進行服務器端和客戶端之間數據的傳輸,同時,為加快數據傳輸的效率,采用滑動窗口算法來進行優化。
所述數據庫采集層采用分層編碼的方式對復雜數據類型進行編碼處理,經過編碼后的數據類型可在檢索時迅速定位所需檢索數據的范圍,消除對無關數據的檢索,降低資源占用率,提高檢索效率;經過編碼后的數據集為一個樹結構,位于同一層上的數據集擁有相同的優先級,采用廣度優先方式來確定所需檢索數據的匹配分支,進而得到完全匹配的數據;同時,通過外鍵將與匹配數據相關的其他關聯數據自動匹配并獲取,實現了檢索數據的匹配獲取和相關數據的自動匹配獲取功能,在保障數據精確匹配的同時,也將相關聯數據進行匹配展示,此方法適合航天發射場數據繁雜、數據量大的應用場合。
所述客戶端檢索功能實現:為提供更為準確的檢索,故采用精確匹配和模糊匹配相結合的交叉匹配方式;精確匹配針對的是編號、類型、結構式等精確、唯一且短小的字段,模糊匹配針對的是摘要、說明內容較多的字段,綜合兩者的匹配結果,選擇相關性最強的數據。
所述客戶端檢索功能中提供檢索界面,檢索界面提供檢索關鍵字輸入框、檢索字段范圍復選框、按入庫時間升/降序排列復選框、每頁顯示數目下拉框、導出檢索結果功能按鈕、檢索及在結果中檢索功能按鈕;支持顯示界面分頁顯示機制,提供頁碼切換及跳轉功能按鈕,用戶通過每頁顯示數目下拉框來選擇當頁需顯示的記錄數;對于檢索字段范圍復選框,提供檢索字段范圍,用戶可在能確定的大致范圍內匹配所輸入的關鍵字;對于按入庫時間升/降序排列復選框,提供按入庫時間升/降序排列,當用戶需查看數據庫中最新錄入的數據時,可通過選中此項來得到最新的數據;對于導出檢索結果功能按鈕,支持用戶對檢索數據進行導出保存,主要有兩種方式:一是直接將從數據庫中讀取的數據寫入文本文件中,二是通過使用語句導出數據,對于導出的數據采用TXT、WORD、EXCEL三種文件格式,用戶可在導出數據對話框中根據自己的需要來選擇導出數據的文件格式;對于所檢索的數據,用戶若需要查看源文件,在自身密級不低于文件密級的情況下通過雙擊文件名來預覽源文件,即用戶雙擊預覽時只從服務器端讀取部分數據進行傳輸以供用戶查看,而當用戶需要查看完整的源文件時,通過點擊下載按鈕來實現。
所述客戶端的管理中,新增數據,即向數據庫中添加數據提供了兩種渠道:一是直接在資源管理器上批量選中源文件直接添加進數據庫,然后對不完整的信息進行人工輸入補全;二是直接在界面上采用對話框的形式人工輸入添加新數據,采用這兩種方式可以兼顧大數據量和小數據量情境下的數據添加,以提升數據添加效率。
所述客戶端的管理中,備份數據采用導航貓navicat數據庫管理軟件進行備份,可通過設置來實現定時備份,當需要恢復時可選擇某個時間節點的備份進行數據恢復,保障了在服務器異常情況下的數據不丟失。
所述客戶端的管理中,用戶信息及權限管理采用設置密級及功能按鈕是否使能的方式來保證安全性,分開設計的目的是兼顧密級的確定性和功能按鈕使能與否的不確定性,即密級為確定的五個等級,用戶默認為秘密,源文件默認為內文;而功能按鈕涉及不同操作的權限組合,這種組合正好可以應對不同用戶對不同功能按鈕是否有操作權限的不確定性。同時,用戶可對更高權限進行申請,超級管理員可對申請進行授權或拒絕處理。
所述客戶端的管理中,字段擴展功能是為后期添加額外字段提供支持,航天發射場的復雜性決定著數據庫中字段的組成會根據實際需要而發生變化,而客戶端的檢索及管理操作都是建立在字段的基礎之上。字段的屬性很多,對于不重要的屬性以默認值的形式給出,而對于重要的屬性,如:字段名、類型、長度、是否為空、是否為主鍵等不以默認值填充,需要用戶手動輸入。成功添加新字段后,用戶即可對其進行操作,方式同其他字段一樣。數據庫采用提供字段擴展接口的方式來支持后期由于業務需求而需要添加的額外字段,接口采用友好的用戶對話框界面進行操作,特別對類型、長度、是否為空、是否為主鍵屬性進行了突出強調。
一種航天發射場安全可靠性分析與評估系統,航天發射場安全可靠性數據庫位于航天發射場安全可靠性分析與評估系統結構框圖的第三層,即數據庫構建層為數據采集和風險評估提供了支撐。
分析與評估系統包括危險辨識層、數據采集層、數據庫構建層和分析評估層,其中:
危險辨識層的主要目的是:解決目的性不明確的問題,采用分層融合方法,具體為:首先將航天發射場這個大系統分層,然后危險識別所涉及產品的分布類型并進行分類,最后將各分布類型所需采集的變量進行匯總并融合,對于耦合性強的變量只用其中一種或幾種來替代,最終得到最小數據集。
數據采集層首先確定航天發射場的系統組成,如圖2航天發射場安全可靠性分析與評估系統結構框圖中的數據采集層所示,然后根據危險辨識層所得到的最小數據集進行數據采集,圖3給出了數據采集層所涉及的數據種類。對所采集數據的采用分層編碼的方式對復雜數據類型進行編碼處理,經過編碼后的數據類型可在檢索時迅速定位所需檢索數據的范圍;
數據庫構建層的主要目的是:對來自航天發射場的種類繁多、總量龐大的數據進行存儲設計并且提供GUI操作界面。數據庫構建層采用C/S模式,服務器端采用開源關系型數據庫mysql對來自數據采集層的數據進行存儲設計,客戶端采用開源跨平臺GUI開發工具Qt,實現對數據庫增刪改查、數據備份、用戶信息及權限管理、日志管理以及報表生成等功能的軟件開發。客戶端與服務器采用TCP/IP通訊傳輸協議,同時采用滑動窗口算法加速數據的傳輸。
分析評估層的主要目的是:采用諸如“小事件樹/大故障樹”的方法,結合所構建的數據庫中的相關數據,對系統進行定性和定量分析,得到系統分析指標(如不確定性、重要度、敏感性),根據這些指標對系統的安全可靠性進行評估。
本發明航天發射場安全可靠性數據庫構建將來自航天發射場的種類繁多、總量龐大的數據進行存儲設計并提供友好的GUI操作界面,為數據采集和安全可靠性分析與評估提供支撐。通過分層融合方法得到最小數據集,通過編碼及交叉匹配方式來提供更高效的檢索方式,通過密級和功能按鈕的形式來提供更高的安全性,通過提供接口的形式來實現高擴展性。
目前航天發射場還沒有構建一個完整的數據庫支撐平臺,嚴重制約了安全可靠性分析與評估工作的開展,本發明解決的就是此數據庫支撐平臺的構建問題。
本發明具有如下有益效果:
(1)數據庫構建層在客戶端采用開源跨平臺GUI開發工具Qt進行軟件設計,既提供了數據檢索、管理及備份、用戶信息及權限管理、日志管理和報表生成等功能,同時又可支持在國產麒麟操作系統上的使用。
(2)數據庫構建層中的數據檢索采用精確匹配和模糊匹配相結合的交叉匹配方式來提高檢索的效率和準確性。精確匹配針對的是編號、類型、結構式等精確、唯一且短小的字段,模糊匹配針對的是摘要、說明等內容較多的字段,綜合兩者的匹配結果,選擇相關性最強的數據。
(3)數據庫構建層中的用戶信息及權限管理采用設置密級及功能按鈕是否使能的方式來保證安全性,分開設計的目的是兼顧密級的確定性(對密級編號為1-5)和功能按鈕使能與否的不確定性。
(4)數據庫構建層采用提供字段擴展接口的方式來支持后期由于業務需求而需要添加的額外字段。接口采用友好的用戶對話框界面進行操作,特別對類型、長度、是否為空、是否為主鍵等屬性進行了突出強調。
(5)數據庫構建層的客戶端和服務器端之間采用TCP/IP通訊協議保障了數據傳輸的準確性,同時采用滑動窗口算法來加速數據的傳輸。
(6)數據庫采集層采用分層編碼的方式對復雜數據類型進行編碼處理,經過編碼后的數據類型可在檢索時迅速定位所需檢索數據的范圍,消除對無關數據的檢索,降低資源占用率,提高檢索效率。
(7)分析評估層中的安全可靠性參數可直接從數據庫構建層中獲取,數據庫平臺的構建支撐了分析評估工作的開展,且提高了分析人員的工作效率,結合適合的分析方法即可保證安全可靠性評估結果的可信性和可用性。
附圖說明
圖1為數據庫構建層結構框圖;
圖2為航天發射場安全可靠性分析與評估系統結構框圖;
圖3為數據采集層的數據種類;
圖4為分析評估層流程圖;
圖5為定性/定量分析一般性原則流程圖。
具體實施方式
下面結合附圖和具體實施方式對本發明進行說明。
如圖2所示,航天發射場安全可靠性分析與評估系統結構框圖由四部分組成,分別為:危險辨識層、數據采集層、數據庫構建層和分析評估層。
危險辨識層采用分層融合方法解決航天發射場多源異構數據采集中的目的性不明確、采集數據重復、效率低下等問題。分層融合方法指的是:首先將航天發射場這個大系統進行分層,然后危險識別所涉及產品的分布類型并進行分類,然后將各分布類型所需采集的變量進行匯總,對所匯總的變量進行融合,對于耦合性強的變量只用其中一種或幾種來替代,最終得到的最小數據集不僅能采集滿足此層次的數據,而且還由于之間的低耦合性有效的解決了重復采集問題。同時對于后期的數據采集由于這個分層融合而實現了更有針對性、效率更高的數據采集。
分析評估層流程圖如圖4所示,首先從航天發射場這個大系統中選取需要研究的對象,然后對此研究對象進行定性分析,確定風險源及所需的數據種類。然后根據定性/定量分析一般性原則(圖5)判斷是否需進行定量分析,若需要,則從數據庫構建層中獲取可靠性參數,然后對研究對象進行定量分析,獲取量化分析指標(不確定性、重要度、敏感性)。根據分析得出的結果確定設計上的薄弱環節,對系統的安全可靠性進行評估。其中,常用的重要度有:結構重要度(定性分析)、概率重要度(定量分析)和臨界重要度(定量分析)。
如圖5所示,首先通過定性分析辨識系統的風險源,然后判斷風險源是否為高風險源,若是,再判斷數據庫中是否有相應的可靠性參數,若有則進行定量分析,若無,則反饋回數據庫構建層,數據庫會根據反饋回的信息對庫中內容進行更新;若不是高風險源,再判斷費用是否充足,若費用不足,則不進行定量分析,若費用充足,則再判斷時間是否充足,若時間不足,則不進行定量分析,若時間充足,則再判斷準確性要求是否高,若要求高,則進行定量分析,若要求不高則不進行定量分析。此判斷為一般性原則,具體工程實踐中可根據其他指標進行補充判斷,具有靈活性。
數據采集層首先確定航天發射場的系統組成,如圖2航天發射場安全可靠性分析與評估系統結構框圖中的數據采集層所示,具體包括:火箭系統、航天器系統、加注系統、供配電系統、供配氣系統、測控系統、通信系統、氣候系統、非標系統、C3I系統、技術勤務系統、供水消防系統、空調暖風系統、廢氣及污水處理系統。然后根據危險辨識層所得到的最小數據集進行數據采集,圖3給出了數據采集層所涉及的數據種類,它由安全分析與評估數據、安全分析與評估模型和輔助資料三部分組成。其中,安全分析與評估數據又包括:概率統計數據(火箭可靠性數據、發射場可靠性數據、現場試驗數據、蒙特卡洛仿真數據、國外航天事故數據)、安全評價數據(設施設備分布數據、各階段人員分布數據、航區人口密度數據、安全評價準則)、危害計算基礎數據(危險品物化屬性數據、環境數據、全過程諸元數據、事故約束數據、危害區域劃分準則、判據數據);安全分析與評估模型包括:數據分析處理模型(概率分布密度模型、蒙特卡洛仿真模型、貝葉斯模型、應力強度模型)、安全評價模型(諸元計算模型、人員隨機擾動模型、測發流程模型、物流流程模型)、概率風險計算模型(故障樹模型、事件樹模型)、危害度計算模型(火災模型、爆炸模型、碎片模型、火球模型、氣體擴散模型、閃火模型);輔助資料包括:標準文書(標準制度、應急預案、指揮操作流程、安全事故案例)和各類文檔(論文書籍等資料、圖片資料、音視頻資料)。
數據庫構建層采用C/S模式,如圖1所示。
服務器端采用開源關系型數據庫mysql對來自數據采集層的數據進行存儲設計。首先對數據庫mysql進行配置,由于需要進行事務操作,所以采用InnoDb存儲引擎。由于需消除臟讀和不可重復讀的不利影響,故采用MySQL的默認安全隔離級別RR(REPEATABLE READ,可重復讀)。由于需支持一定的并發訪問需求,故將參數max_connections值設為1000。然后對來自航天發射場的近百個數據庫相互之間的邏輯關系進行梳理,通過外鍵的形式將彼此連接起來。這樣既能保證數據存儲的合理性,又能充分發揮關系型數據庫的優勢,同時,當需要對數據庫中的數據進行增加、修改、刪除時,外鍵提供了更多的便利性。為加快數據檢索的效率,對某些字段設置索引。
服務器端的TCP/IP通信子程序與客戶端的TCP/IP通信子程序對應,實現了客戶端與服務器端數據的交互。采用TCP/IP通訊傳輸協議可保證數據傳輸的準確性,同時,為加快數據傳輸的效率,可采用滑動窗口算法來進行優化。
客戶端采用開源跨平臺GUI開發工具Qt進行軟件開發,采用Qt的主要原因有兩個:一是因為它是優良的GUI開發工具,二是因為跨平臺所以能支持在國產麒麟操作系統上的使用。
客戶端主要包括檢索和管理兩大部分,這兩部分為每個數據庫提供了菜單項和工具欄,主界面采用標簽頁的形式進行顯示。為提供更為準確的檢索,故采用精確匹配和模糊匹配相結合的交叉匹配方式。精確匹配針對的是編號、類型、結構式等精確、唯一且短小的字段,模糊匹配針對的是摘要、說明等內容較多的字段,綜合兩者的匹配結果,選擇相關性最強的數據。檢索界面提供了檢索關鍵字輸入框、檢索字段范圍復選框、按入庫時間升/降序排列復選框、每頁顯示頁數下拉框、導出檢索結果功能按鈕、檢索及在結果中檢索功能按鈕。由于數據量巨大,顯示界面需采用分頁顯示機制,提供頁碼切換及跳轉功能按鈕,用戶可通過每頁顯示頁數下拉框來選擇當頁需顯示的記錄數。提供檢索字段范圍的目的是:用戶可在自己能確定的大致范圍內匹配所輸入的關鍵字,這樣可以簡化SQL語句,同時也減少了在數據庫中所需查詢及比較的字段和數據。提供按入庫時間升/降序排列復選框的目的是:當用戶需查看數據庫中最新錄入的數據時,可通過選中此項來得到最新的數據。導出檢索結果功能主要有兩種方式:一是直接將從數據庫中讀取的數據寫入文本文件中,二是通過使用SELECT...INTO OUTFILE語句導出數據,對于導出的數據主要采用TXT、WORD(03/07)、EXCEL(03/07)三種文件格式,用戶可在導出數據對話框中根據自己的需要來選擇導出數據的文件格式。對于所檢索的數據,用戶若需要查看源文件,可在自身密級不低于文件密級的情況下通過雙擊文件名來預覽源文件。此處采用文件部分預覽+文件整體下載的方式來兼顧帶寬及預覽需求。即用戶雙擊預覽時只從服務器端讀取部分數據進行傳輸以供用戶查看,而當用戶需要查看完整的源文件時,可通過點擊下載按鈕來實現。而對于高于自身密級的源文件,用戶無法進行預覽和下載。
客戶端的管理功能主要包括:新增數據、修改數據、刪除數據、導入數據、備份與恢復、用戶信息及權限管理、日志管理、報表生成、輔助軟件、字段擴展。
此軟件為向數據庫中添加數據提供了兩種渠道:一是直接在資源管理器上批量選中源文件直接添加進數據庫,然后對不完整的信息進行人工輸入補全;二是直接在界面上采用對話框的形式人工輸入添加新數據,采用這兩種方式可以兼顧大數據量和小數據量情境下的數據添加,以提升數據添加效率。用戶可在彈出的修改對話框中對所需要修改的數據進行操作,同時在修改界面提供了上下條記錄切換功能按鈕,方便用戶在不退出修改對話框的前提下對鄰近數據進行修改操作。用戶可對不需要的數據進行刪除操作,支持批量刪除功能。此軟件對于數據的操作,特別是快捷鍵的使用類似于WORD文檔的操作,可以方便用戶更快上手使用。備份數據采用導航貓navicat數據庫管理軟件進行備份,可通過設置來實現定時備份,當需要恢復時可選擇某個時間節點的備份進行數據恢復,保障了在服務器異常情況下的數據不丟失。
用戶信息及權限管理采用基本信息+密級+權限方式進行設計,其中,用戶密碼采用MD5算法進行加密。密級包括:公開、內文、秘密、機密和絕密五個等級,為保證安全性,采用用戶密級+文件密級的方式來進行文件保護,源文件默認密級為內文,用戶默認密級為秘密。即當且僅當用戶密級不低于文件密級時才能進行文件預覽及下載操作,對于低于文件密級的用戶,若想查看源文件,可通過提出申請、接收申請、處理申請流程由用戶向管理員提出申請,管理員收到申請后進行申請處理,此時申請狀態由未處理變為已處理,得到授權后的用戶可進行源文件的預覽和下載操作,而未被授權的申請,其用戶仍然無法進行相關操作。權限主要指的是導入數據、新增數據、修改數據和刪除數據四個功能按鈕,當且僅當用戶權限為“Y”時,相應的功能按鈕才使能,而對于權限為“N”的功能按鈕則處于非使能狀態,用戶只能對于已使能的功能進行操作,而不能操作未使能的功能。采用密級和權限相分離的設計方式是因為,雖然密級和權限在一定程度上存在正比例關系,即密級高的用戶所擁有的操作權限也多,但并不存在絕對的線性關系,分開設計可以兼顧密級的確定性(對密級編號為1-5)和功能按鈕使能與否的不確定性。同時,密級和權限的申請及授權方式相同,不影響軟件使用的效率。
日志管理主要記錄了登錄用戶的時間點和所進行的操作記錄,同時在日志管理界面提供了按用戶及時間范圍進行檢索的功能,并提供了刪除日志的功能按鈕。報表生成功能是為了方便用戶需要對所檢索的數據進行報表生成而提供的一個功能接口。輔助軟件菜單項為需要某些常用軟件的用戶提供了下載入口。
考慮到航天發射場數據種類繁多的特點,對于那些當前沒有考慮到,而在將來需要添加的字段,需要為其提供接口以支持后期字段的擴展。在新增字段對話框中提供了字段名、數據類型、字段長度、是否為空、是否為主鍵以及是否有默認值的輸入框及選擇框,而對于其他的諸如有無符號等屬性以默認值進行填充,這樣的設置是按照用戶在設置字段時對于屬性修改的頻率來定的,只提供高頻率屬性的信息輸入框可以提高用戶的操作效率且不影響實際的軟件運行。新字段添加成功后用戶即可對其進行操作,操作方式同其他字段。對于新增加的數據和字段,服務器端和客戶端時刻保持同步狀態,以避免數據不一致導致的不利影響。本發明構建的數據庫支持在現有的基礎上迅速構建出新的數據庫子模塊,滿足可擴展性的需求。
客戶端的軟件幫助部分主要是為使用本軟件的用戶提供操作指導,一是介紹本軟件的組成及各個模塊的功能,二是對于每一模塊的具體操作給出文字說明和圖片示意。
客戶端軟件的開發遵循面向對象開發的六個基本原則(單一職責原則、開放封閉原則、里氏替換原則、依賴倒轉原則、迪米特法則和接口隔離原則),同時采用了單例模式、迭代器模式和裝飾者模式等設計模式進行軟件結構的設計。
提供以上實施例僅僅是為了描述本發明的目的,而并非要限制本發明的范圍。本發明的范圍由所附權利要求限定。不脫離本發明的精神和原理而做出的各種等同替換和修改,均應涵蓋在本發明的范圍之內。