李曼麗,易 忠,劉 笑
(北京衛星環境工程研究所,北京 100094)
精度測量(以下簡稱精測)是指對殼體結構精度和星上儀器設備安裝精度的測量,目前所用的測量方法多為經緯儀。精度測量依托于總裝精度測量工藝,在衛星總裝和試驗的不同狀態,都需要對衛星反復進行精度測試,以檢測衛星及其設備的安裝角度和位置度,早期發現衛星的總裝問題或是技術設計問題。精測數據庫的建立將把以往零散存儲的精測數據集中管理,方便精測人員查詢和比對,也便于總裝工藝人員、總體人員、分系統人員查詢和分析。
(1) 以現有的精測流程為基準,建立精測數據庫。主要目標如下:
進一步規范精測流程,嚴格按照標準程序執行;精測數據的有效集成便于精測人員對精測數據的分析,同時開放對外部程序的接口,有利于數據的共享;各類精測相關文檔以數據文件的形式保存,為精測數據庫增加非數據類的有效信息,便于文檔的日后查詢;與其他質測、檢漏等數據庫相集成,建成AIT測試的一體化信息系統的基礎數據庫。
(2) 精測數據庫系統的用戶是參與精度測量的操作人員、精測數據分析人員、總裝工藝人員、總體人員、分系統人員和與精測相關的其他人員等。
2.2.1 對功能的需求
(1) 存儲各類精測相關文件;
(2) 存儲各類精測數據;
(3) 根據入庫的精測數據計算精度值;
(4) 查詢精測相關數據和文檔。
2.2.2 對性能的需求
(1) 數據庫容量:采用現有Oracle9i數據庫可以滿足;
(2) 入庫速度:各類文件的錄入,單個文件入庫時間不大于2 s;
(3) 響應速度:即時反應在用戶界面中,響應時間不大于1 s;
(4) 數據類型:支持文檔、數據、圖表等多種數據類型;
2.2.3 輸入、輸出要求
輸入的文檔文件:
(1) 總體技術要求;
(2) 分系統技術要求(如果是分系統精測);
(3) 總裝工藝流程;
(4) 精測工藝;
(5) 精測報告。輸出:處理前后的精測數據、各類文檔。
2.2.4 接口要求
與看板生產數據庫實現無縫接口,同時預留硬件方面支持所需打印機、掃描儀、服務器等外部設備。
圖1為精度測量流程,詳細說明了精度測量的實際流程和思路。精度測量從總體或分系統的技術要求出發,工藝室根據總體或分系統的技術要求制定技術流程,精測工藝人員根據技術要求和技術流程制定精測工藝。精度測量要依據以上幾個文件的要求來進行操作,如果精度符合技術要求,證明精度測量通過,可以交付;如果精度不符合技術要求,就需要總裝人員進行反復調節,直到精度符合技術要求[1]。在精度調節過程中,如果發現設計問題,應當發送現場處理單到總體或分系統送測方更改設計問題,重新進行以上步驟。精度測量成功后,需要撰寫精度測量報告交付給總體或分系統,并將相關資料歸檔以便日后查詢。
在型號研制過程中,包含多個精測工況。每個精測工況都要進行上述流程,直到所有工況精測任務完成,該型號精測工作才能結束。

圖 1 精度測量流程圖Fig.1 Flow chart of precision measurement
精度測量數據庫系統結構設計如圖2所示。數據庫系統的入口為精測相關的各類文件和數據,這里具體指總體技術要求和分系統技術要求、技術流程、精測工藝、精測報告等,這幾種文件具有指導精度測量的作用,所以必須及時、準確、有效地存儲到數據庫中。精測過程中得到的數據(角度、位置度等)和精度調節方法是精度測量的重要結果,也是精測數據庫的核心部分。在精測數據庫中,精測數據隸屬于精測的型號和工況,指導工況的作業,為型號研制生產服務。

圖 2 精測數據庫系統結構圖Fig.2 Structure of precision measurement database
精度測量數據庫的設計采用B/S模式,便于分布式部署和用戶快捷使用。系統采用標準J2EE結構,利用Java語言開發,具有較強的可移植性和可擴充性。后臺數據庫采用功能較為強大的Oracle10g數據庫平臺,在安全性和可靠性方面都集成了較為強大的功能。
精度測量數據庫還包括相應的應用系統作為支持。主要包括數據入庫/出庫系統、數據查詢系統、權限管理系統、系統管理系統和數字簽名系統,其中本期試點工程需要解決前4個主要部分的開發和應用,數據簽名系統有待與其他系統集成考慮,所以放在后期開發中完成。
精測數據庫的系統模塊設計如圖3所示,主要包括數據入庫/出庫模塊設計、數據查詢模塊設計、權限管理模塊設計、系統管理模塊設計。

圖 3 精測數據庫系統模塊設計圖Fig.3 Modules of precision measurement database
4.2.1 數據入庫/出庫模塊設計
精測數據庫的數據入庫/出庫模塊主要分為4部分內容:數據入庫子模塊、相關文檔入庫子模塊、數據出庫子模塊和相關文檔出庫子模塊,針對的對象主要是精測生成的各種歷史數據和相關文檔。數據入庫/出庫模塊是精測數據庫的入口,是后續各個應用系統的基礎,其作用至關重要,對準確性要求非常高。
(1) 數據入庫子模塊:傳輸部分位于客戶端,接收與數據入庫部分位于服務器上,通過數據入庫界面將精測數據存入到數據庫中。其中還包括對精測項目的建立,主要指型號建立、工況建立、精測項目建立等。
(2) 相關文檔入庫子模塊:此功能模塊主要提供電子文檔入庫功能。將電子文檔作為一個blob字段存入到數據庫中,并記錄這些文件的相關信息,用戶可以通過相關的查詢操作來實現對這些文件和信息的訪問。
(3) 數據出庫子模塊:數據輸出模塊作為整個系統不可缺少的一部分,其作用在于向用戶提供一種以文本方式獲得精測數據的手段,方便用戶查詢歷史精測數據文件,并進行比較。
(4) 相關文檔出庫子模塊:用于為用戶提供相關精測文檔的輸出接口,便于用戶對精測文檔的操作、查詢和管理。
4.2.2 數據查詢模塊設計
精測數據庫數據查詢模塊采用B/S模式進行查詢。B/S模式的設計是針對使用IE瀏覽器通過Internet或Intranet接入本系統的用戶。這類用戶可以通過瀏覽網頁的方式與系統數據庫進行交互來完成信息的查詢和獲取。根據具體業務需求的規定,在這種方式下實現數據查詢分為按型號查詢(基本查詢)、按工況查詢、按精測項目查詢、復合查詢、文檔查詢。
4.2.3 權限管理模塊設計
本系統分為兩大部分,一部分為安全管理,一部分為權限驗證。其中安全管理模塊又分為組織管理、權限管理、會話管理和日志管理。圖4為精測數據庫權限管理E-R圖。每個用戶組只能擁有一張訪問控制表,同理每張表只能包括一個用戶組,否則容易造成權限的混淆;一個用戶只能屬于一個用戶組,但一個用戶組可以有多個用戶;一個用戶也可以是一個用戶組;一個用戶只能屬于一個部門,一個部門可以有多個用戶。

圖 4 精測數據庫權限管理E-R圖Fig.4 Access control E-R chart of precision measurementdatabase
在每個表中,都有主鍵和外鍵,這樣可以保證數據庫的實體完整性(如果數據庫表的所有行能惟一確定,則稱該表為實體完整性。即每個表的 PK值必須惟一且不能為空值)和參照完整性(一個表中正確的 FK值必須與相關聯的表中的PK值相匹配或者必須是空值。如果表的FK值符合“匹配或空值”要求,則稱其具有參照完整性。參照完整性確保不可能指向不存在的PK值。因為一個表中的FK值一般是相關表中的PK值)[2]。
4.2.4 系統管理模塊設計
系統管理模塊設計見圖3的精測數據庫系統模塊設計圖所示。系統管理模塊主要負責管理系統相關的各種信息,包括修改、刪除型號、工況、數據、文件操作和對數據文件的備份操作。系統管理模塊主要包括數據文件管理和數據文件備份。其中數據文件管理包括型號管理、工況管理、數據管理和文件管理;數據文件備份包括數據備份和文件備份。
數據文件管理子模塊主要負責管理數據文件的相關信息。對航天器型號、工況、數據、文件的管理、修改和刪除,這部分需要權限較高的用戶來完成,一旦刪除航天器型號,所有隸屬于該型號的工況信息、數據信息和文件信息都將被刪除,并無法恢復,所以刪除操作需要慎重。
數據文件備份子模塊主要負責備份數據信息和文件信息。為了避免硬件損壞、網絡故障、非法攻擊、誤操作、火災等意外帶來的數據丟失,必須建立有效機制,定期備份數據和文件是一個有效保護數據庫的手段。該備份功能應該在手工備份的基礎上實現程序自動定期備份,充分提高管理員的工作效率,這是系統管理模塊的一個難點所在。
為了應對試驗數字化平臺建設面臨的技術挑戰,例如試驗數據動態建庫、Web門戶自動生成、數據結構復雜多變和各種數據格式的轉換等問題,在設計上采用了以下關鍵技術,很好地解決了這些難題。
針對試驗數據的多變性和不可預測性,把試驗數據管理中易變或不確定的部分從軟件中剝離出來,用元數據(Meta-data)來描述它們。
工程技術人員通過使用提供的可視化工具(Design Studio)能直觀和動態地定義數據庫模型和業務邏輯并轉換成元數據。平臺的引擎(Engine)在元數據的驅動下能自動對數據庫操作,自動更改業務邏輯并自動更新用戶界面等,而不需要軟件技術人員修改程序。元數據就像知識,引擎就像人的大腦,大腦可以學習知識,并能根據其所學到的知識進行思維和控制其他器官的行動。航天器精度測量數據庫的架構設計思想就是基于這個原理,如圖 5所示。元數據驅動(Meta-data Driven)的軟件架構提供了強大的靈活性和適應性,這是試驗數據管理軟件不可或缺的特性。

圖 5 元數據驅動工作原理圖Fig.5 Working principle of meta-data driving
航天器精度測量數據雖然是以關系數據庫為基礎,但能夠支持面向對象的數據建模方式,可以包括表達數據類之間的繼承關系(Inheritance Relationship)在內的試驗數據的全部語義結構。繼承關系在表達試驗數據的語義結構中起到重要的作用,它可以建立數據結構的抽象數據類(Abstract Classes)信息。
同時,為方便工程技術人員建立試驗數據庫,提供了標準的面向對象模板(Object-oriented Data Model),該模板包含抽象數據類、公共屬性和抽象數據類之間的關聯關系等。工程技術人員可通過添加子數據類和特殊屬性的方式在模板上擴展,既保證了數據庫中的試驗數據具有一定的一致性,又兼顧了不同試驗數據的特殊性,同時也簡化了工程數據人員的建庫操作步驟。面向對象的建庫原理圖(圖 6)中的“試驗件描述”、“試驗要求”和“試驗測量數據”為抽象數據類;而“渦輪發動機描述”、“渦輪發動機試驗要求”和“渦輪發動機試驗測量數據”等為工程技術人員所擴展的子數據類。

圖 6 面向對象的建庫原理圖Fig.6 Working principle of object oriented database
對試驗數據管理的主要目的是為了更好和更方便地使用它們。使用試驗數據中很重要的環節就是將試驗數據從一種格式轉換成設計軟件、繪圖軟件或其他后數據處理系統所要求的格式。
航天器精度測量數據庫的一個重要技術特色是通過XML Schema和XQuery技術將關系數據庫中的數據映射成虛擬的 XML數據庫(Virtual XML Database),既能充分利用關系數據庫的強大存儲和查詢功能,又極大地方便了對試驗數據進行后置處理所需要的格式轉換。圖7是虛擬XML數據庫技術示意圖。

圖 7 虛擬XML數據庫技術示意圖Fig.7 Sketch map of virtual XML database
大量的工程實踐已經證明,由于工程應用領域對數據管理的要求與商業應用領域對數據管理的要求存在極大的差異,甚至有許多是本質上的區別,用傳統的DBMS來管理工程數據是難以勝任的[3]。
一般地講,試驗和測試是根據產品開發的需要而進行的,而諸如國防武器等復雜系統的開發過程是分階段進行的。在不同階段所需要進行試驗的項目和內容都不相同,各個階段要求解決的子任務不同,所關心的數據對象各異,但整體上又相互關聯;數據來源既有靜態的規范數據,又有隨著過程發展不斷產生的動態構造數據、信息增長數據、試驗性臨時數據等,數據結構和記錄數項往往要根據工程對象而改變,數據量大、種類多、結構復雜。精測數據庫的建立采用先進的測試數據庫模型將實現精測數據庫數據的有效管理。
(References)
[1]徐福祥.衛星工程[M].北京: 中國宇航出版社, 2002
[2]李禹生, 等.數據庫應用技術[M].北京: 中國水利水電出版社, 2002
[3]連衛民, 張建偉.基于Web工程數據庫的SQL語言系統的設計與實現[J].計算機工程與設計, 2006,27(18)