覃楊森,聶 睿,覃 燕
(中國飛行試驗研究院 陜西 西安710089)
飛行試驗實時監(jiān)控軟件架構設計技術研究
覃楊森,聶 睿,覃 燕
(中國飛行試驗研究院 陜西 西安710089)
飛行試驗實時監(jiān)控軟件的架構設計直接影響著飛行試驗過程管理的效率。根據(jù)分布式軟件架構設計思想,在實時數(shù)據(jù)解算服務器的基礎上,配置站點服務器及DNS服務器,構建多服務器分布式飛行試驗實時監(jiān)控軟件架構平臺,利用交互式頁面設計及網(wǎng)絡數(shù)據(jù)庫管理技術,提高實時監(jiān)控軟件架構平臺的維護效率,改善用戶交互模式。實現(xiàn)了監(jiān)控顯示組件在分布式軟件架構平臺下“訪問部署、鏈接監(jiān)控”的目的,從而簡化了飛行試驗監(jiān)控環(huán)節(jié),有助于提升科目試飛準備效率。
飛行試驗;架構設計;實時監(jiān)控;分布式
通過飛行試驗實時監(jiān)控,可以讓試飛指揮員和試飛工程師及時掌握并評判試飛狀態(tài)是否安全及飛機各系統(tǒng)性能的可靠性,為試飛安全提供重要保障。隨著目前試飛型號的不斷增長,驗證課題數(shù)量逐漸增多,飛行試驗實時監(jiān)控面臨的需求也日益繁多和復雜,這將會給實時監(jiān)控軟件平臺的維護和管理帶來更大的挑戰(zhàn)[1]。在目前的實時監(jiān)控軟件架構基礎上,飛行驗證課題專用監(jiān)控畫面及功能組件需要在每個監(jiān)控客戶端主機分別進行部署與管理。隨著飛行任務的推進,使得這些客戶端主機上的版本冗余文件逐漸累積,從而造成監(jiān)控專用畫面及組件的調用更加復雜[2]。尤其在某一模塊需要更新或修改、增加新型號飛機或更換課題位置等情況下,必須對每個客戶端主機中的相關文件進行一系列重新部署、更新等操作,從而大大降低實時監(jiān)控顯示組件的準備效率,也可能因人工操作失誤引入新的飛行監(jiān)控安全隱患[3]。因此,需要研究基于分布式的實時監(jiān)控軟件架構設計技術以解決上述問題,以使得飛行試驗實時監(jiān)控專用畫面及組件從“專用部署”提升為“訪問即更新”的應用模式,也更加便于管理員進行軟件組件的更新和維護,提高飛行監(jiān)控準備效率,推動試飛型號任務的進度,更高效更可靠地保障飛行試驗安全。
飛行試驗實時監(jiān)控數(shù)據(jù)傳輸主要分為兩個過程,分別為實時信號遙測接收解調和實時接收數(shù)據(jù)物理量解算[4],其監(jiān)控系統(tǒng)架構如圖1所示。
圖1 實時監(jiān)控系統(tǒng)架構圖
試驗機通過各類傳感器,采集各個系統(tǒng)或飛機部件的實時運行狀態(tài)數(shù)據(jù),在飛機上將采集數(shù)據(jù)按照一定的格式進行打包編碼壓縮,通過無線通信鏈路,傳輸?shù)降孛孢b測站[5]。地面遙測站根據(jù)約定的頻率和解壓方法,使用接收機對接收的無線數(shù)據(jù)包進行解調,形成網(wǎng)絡數(shù)據(jù)包,并向地面實時監(jiān)控網(wǎng)絡完成轉發(fā)[6]。在地面實時監(jiān)控網(wǎng)絡中,實時數(shù)據(jù)解算服務器對網(wǎng)絡數(shù)據(jù)包進行識別和拼裝,形成完整的數(shù)據(jù)幀后,對數(shù)據(jù)幀根據(jù)相應飛機型號的數(shù)據(jù)內容編制格式,進行物理量解算,以供實時監(jiān)控終端軟件完成分類按需提取顯示。在實時監(jiān)控客戶主機上,部署有各個專業(yè)科目的對應顯示監(jiān)控軟件及組件,與運行在實時數(shù)據(jù)解算服務器上的解算軟件共同構成飛行試驗實時監(jiān)控軟件架構平臺[7]。實時數(shù)據(jù)解算軟件與實時顯示監(jiān)控軟件或組件通過數(shù)據(jù)端口綁定完成數(shù)據(jù)交互功能,實時顯示監(jiān)控軟件或組件在客戶主機上與試飛工程師或飛行指揮員完成人機交互功能。
在多服務器分布式實時監(jiān)控軟件架構設計中,對于飛行試驗科目監(jiān)控畫面的管理以B/S方式實現(xiàn)。對于實時物理量數(shù)據(jù)而言,數(shù)值顯示的實時性能更加關鍵,可由C/S模式即端口呼叫綁定方式進行傳輸,以避免響應服務造成的延時[8]。因而可按照如圖2所示的軟件架構平臺進行設計。
圖2 軟件平臺架構圖
多服務器分布式實時監(jiān)控軟件架構平臺將實時監(jiān)控客戶主機上的專用顯示軟件及客戶端數(shù)據(jù)接收軟件以COM標準進行組件化封裝,并構建Web服務器,通過關系型網(wǎng)絡數(shù)據(jù)庫對組件進行管理和維護,使用視圖管理方式,對不同的用戶角色提供差異性管理權限[9]。監(jiān)控客戶主機通過系統(tǒng)平臺的瀏覽器向Web服務器提交訪問請求,并下載相應的顯示軟件或組件,利用瀏覽器提供的Cookies機制,完成組件的加載和運行,之后接收實時數(shù)據(jù)解算服務器發(fā)送的物理量信號,將瀏覽器動態(tài)監(jiān)控頁面進行實時刷新顯示。為了便于訪問和和簡化交互模式,將DNS服務器加入到站點式實時監(jiān)控軟件平臺中,可通過站點地址的解析操作提高平臺的友好度[10]。
2.1 軟件架構實現(xiàn)方案
針對設計的分布式實時監(jiān)控軟件架構平臺,利用輕量級網(wǎng)絡服務IIS7.0組件作為部署工具,可以提高交互服務響應的效率和可靠性。平臺具體實現(xiàn)方案如圖3所示。因基于Windows操作系統(tǒng)平臺,故采用與操作系統(tǒng)服務兼容性能較好的ASP作為腳本設計語言方案,同時可以更好的配合IIS組件完成站點構建功能[11]。為了獲得更好的平臺擴展性,引入.NET框架,可以更有利于實現(xiàn)對象組件的請求/響應服務及封裝發(fā)布。在此實現(xiàn)架構上,利用C#創(chuàng)建可加載監(jiān)控畫面并運行的HTTP模塊,并通過ASP.NET技術的內置對象和SQL Server 2008支持的數(shù)據(jù)庫訪問組件ADO.NET實現(xiàn)對Web數(shù)據(jù)庫的管理運維。經(jīng)驗證表明,該實現(xiàn)方案能夠與原有應用程序具有良好兼容性,進而可利用關系數(shù)據(jù)庫操作實現(xiàn)試飛型號管理、試飛課題組及科目管理、監(jiān)控畫面組件的存儲管理及版本控制、常用監(jiān)控軟件上傳下載等功能,為平臺提供良好的維護性[12]。在此基礎上,通過瀏覽器加載專用監(jiān)控畫面組件,以多組播端口協(xié)同通信方式與實時數(shù)據(jù)解算服務器建立UDP鏈接,接收實時數(shù)據(jù)服務器發(fā)送的物理量信號,將瀏覽器動態(tài)監(jiān)控頁面進行實時刷新顯示,最終實現(xiàn)整個軟件平臺的功能。
圖3 技術方案圖
2.2 監(jiān)控組件生成
針對C++builder環(huán)境下的顯示軟件,創(chuàng)建web方式Activex的工程時,需要選擇activex標簽頁的active form,對屬性name進行更改后,組件的實現(xiàn)單元及工程內部鏈接屬性都會自動更改,并選擇make control licensed和include version information選項,確保在生成的工程項目中包含注冊號信息[13]。對于需要創(chuàng)建不依靠本機環(huán)境運行的ocx文件,對編譯器進行相應的設置,在工程屬性頁面中去掉編譯時對實時運行包及動態(tài)rtl的選項。在創(chuàng)建工程之后,使用運行菜單工具中的register active server進行本地注冊。由于生成的組件需要依賴于瀏覽器加載運行,因此,還需要對頁面的發(fā)布屬性完成相應的設置。
幾個關鍵的屬性說明如下:
1)Target dir(full path of the deployed ocx):設置ocx目錄,也就是在選擇webdeploy之后,發(fā)布ocx文件的目錄,可以根據(jù)網(wǎng)頁站點路徑的需要完成配置;
2)Target url:用于定位頁面站點的目錄,假如客戶端沒有安裝創(chuàng)建的activex控件,瀏覽器會自動跳轉到制定的網(wǎng)址進行尋找;
3)Html dir(full path of the deployed html file):用于存放與activex文件匹配的html文件,這些文件包含了用戶可訪問瀏覽的網(wǎng)頁,并響應頁面服務。
對于以上屬性設置完成后,還需要將general options下選中四個方面的屬性:Use cab file compression、deploy required package、include file version number、deploy additional files。另外,如果在控件運行時需要用到其他額外的文件或者程序包,可以通過additonal file加入到cab文件中一起打包發(fā)布。
對于labview平臺,在 “build application or shared library”工具面板的“Application settings”選項卡中,選中“enable active server”復選框,通過 build操作,同時將頁面生成.exe及.tlb文件[14]。其中.tlb文件包含了注冊的ID號及版本號,通過管理頁面,將這些信息上傳到應用服務器中,即可完成對HTML模塊的自動生成,以實現(xiàn)對組件的自動注冊及加載顯示。
2.3 分布式數(shù)據(jù)庫設計實現(xiàn)
數(shù)據(jù)庫設計是多服務器分布式實時監(jiān)控軟件架構實現(xiàn)的基礎。通過數(shù)據(jù)庫設計,將各個平臺用戶的權限進行管理分配,利用視圖管理實現(xiàn)操作管理的等級劃分。對于數(shù)據(jù)庫表的設計,充分考慮關鍵信息的關聯(lián)度,按照關系層級劃分,對相關屬性及條目進行設計實現(xiàn),形成的數(shù)據(jù)表結構如圖4所示。
圖4 數(shù)據(jù)表結構圖
1)監(jiān)控組件管理表
表Monitor_manage用來存儲監(jiān)控組件的基本信息,包括所屬型號、監(jiān)控科目、CLASSID、版本等。結構表設計中,對于“URL路徑”字段存儲內容應當分兩種情況,若監(jiān)控組件為C++Builder環(huán)境生成,則存儲對應文件路徑;若監(jiān)控組件為labview環(huán)境設計開發(fā),則該字段存儲組件執(zhí)行腳本語句。
2)監(jiān)控組件信息表
表MonitorInfo用來存儲型號的監(jiān)控組件及每個組件版本數(shù)量(單個組件版本數(shù)不能超過10個),結構如表1所示。
表1 MonitorInfo結構表
3)用戶信息表
表UserInfo用來存儲用戶的基本信息,如用戶名、密碼和權限等,結構如表2所示。
4)型號管理表
表XH_manage用來存儲型號的存儲位置信息,結構如表3所示。
表 2 UserInfo結構表
表 3 XH_manage結構表
2.4 動態(tài)交互網(wǎng)頁設計
基于ASPN.NET開發(fā)平臺,對于用戶交互操作前臺編寫HTML源碼及aspx腳本設計頁面等,中間層使用.cs文件用于跨平臺的格式解析,提升對不同瀏覽器的兼容性,進而編譯而成.dll文件或組件,后臺數(shù)據(jù)庫管理通過SQL Server 2008進行消息交互,從而形成了“表示層-業(yè)務層-數(shù)據(jù)層”三層站點式交互頁面結構[15]。在這三層架構上,數(shù)據(jù)層通過業(yè)務層來連接并進行相關操作,表示層為業(yè)務層傳遞參數(shù),并接收中間層的反饋消息。從設計模式上分析,這三層結構的功能劃分如下:
1)表示層:提供應用的用戶界面,以簡潔方便為功能設計需求;
2)業(yè)務層:實現(xiàn)應用程序的業(yè)務功能,傳遞各種參數(shù)并反饋服務響應的結果;
3)數(shù)據(jù)層:提供對外部系統(tǒng)(如數(shù)據(jù)庫)的訪問,完成數(shù)據(jù)的檢索查詢,對各類數(shù)據(jù)進行規(guī)約化。
將多服務器分布式實時監(jiān)控軟件架構平臺應用到某型號的飛行任務監(jiān)控中,該平臺能夠高效保障飛行實時監(jiān)控任務。與原平臺的應用模式相比,分布式實時監(jiān)控軟件架構平臺下的組件管理與數(shù)據(jù)傳接模式并未增加整個系統(tǒng)的時延,且能保障每一臺客戶主機同時監(jiān)控多架飛機的多個科目,具體對比結果如表4所示,可見各項性能及功能指標均優(yōu)于原平臺。由于分布式的架構本身具有“弱客戶端”的特點,使得在實時監(jiān)控組件的管理操作過程中有效地避免了在所有客戶端的繁瑣操作,又能保證客戶端主機監(jiān)控組件版本的一致性,大大地提高了實時監(jiān)控任務的準備效率,為型號安全監(jiān)控過程提供了更為可靠的保障。
表4 應用分析對比表
多服務器分布式實時監(jiān)控軟件架構平臺將目前廣泛應用的.NET框架技術引入到了飛行試驗監(jiān)控技術研究領域,突破了原有實時監(jiān)控軟件平臺的封閉式架構,構建了組件式監(jiān)控管理網(wǎng)絡數(shù)據(jù)庫,進一步實現(xiàn)了對專用監(jiān)控軟件的規(guī)約化管理和維護,提升了監(jiān)控過程中的用戶式體驗方式。通過站點的架設和實現(xiàn),地面實時監(jiān)控系統(tǒng)網(wǎng)絡的延展性得到了增強,為后續(xù)監(jiān)控軟件架構的擴充提供了基礎保障。另外,分布式實時監(jiān)控軟件架構平臺的交互模式具有了更好的用戶友好性,使得對監(jiān)控軟件的應用更為簡單便捷,減少了人力資源在飛行實時監(jiān)控環(huán)節(jié)的投入,進一步提高了飛行驗證工作的效率,對加快型號定型試飛具有著積極意義。
[1]霍朝暉,覃楊森,祈春.飛行試驗機載關鍵參數(shù)快速處理系統(tǒng)設計[J].現(xiàn)代電子技術,2012,36(5):121-124.
[2]馮競銳.淺談計算機網(wǎng)絡技術對測控技術發(fā)展的促進作用[J].科研,2016(16):62.
[3]霍建華,郭世偉,李銘三.遙測接收系統(tǒng)的遠程控制[J].電子設計工程,2013,21(24):84-86.
[4]劉語喬,郭世偉.SOQPSK調制技術在飛行試驗遙測系統(tǒng)中的應用[J].現(xiàn)代電子技術,2013(9):98-101.
[5]袁炳南,霍朝暉,白效賢.航空飛行試驗遙測標準概況[J].測控技術,2010,29(11):15-19.
[6]吳悠,霍建華,郭世偉.多站點組網(wǎng)的實時遙測數(shù)據(jù)選定技術[J],測控技術,2016,35(6):60-63.
[7]魏建新.飛行試驗中多路視頻數(shù)據(jù)實時處理系統(tǒng)設計與實現(xiàn)[J],電子設計工程,2015(9):81-83.
[8]李春葆.電子商務網(wǎng)站開發(fā)教程—基于C#+ASP.NET[M].北京:清華大學出版社,2016.
[9]張梅,陳廣祥,蘇希.ASP.NET動態(tài)網(wǎng)站開發(fā)實戰(zhàn)教程[M].北京:機械工業(yè)出版社,2014.
[10]李春強,柴瑋巖,劉健,等.異構數(shù)據(jù)庫應用系統(tǒng)集成的簡化方法[J].國防科技大學學報,2016,38(2):61-67.
[11]徐愛萍,宋先明,徐武平.分布式異構數(shù)據(jù)庫集成系統(tǒng)研究與實現(xiàn) [J].計算機工程與科學,2015,37(10):1909-1916
[12]覃楊森,劉成玉,祁春,等.基于Windows內核腳本的試飛數(shù)據(jù)自主備份工具設計[J].電子設計工程,2014,22(2):34-37.
[13]高寧,劉洋.基于B/S架構的可視化流程管理平臺的設計與實現(xiàn)[J].計算機應用,2015(S2):178-180.
[14]祁春,霍朝暉,劉成玉,等.基于三維仿真的飛行姿態(tài)與航跡監(jiān)控軟件的設計[J].電子設計工程,2015(12):31-33.
[15]覃楊森,范彥勤,劉語喬,等.試飛數(shù)據(jù)分析結果的可視化輸出 [J].計算機測量與控制,2015,23(11):3889-3891.
Research on software architecture design for real-time monitoring of flight test
QIN Yang-sen,NIE Rui,QIN Yan
(Chinese Flight Test Establishment,Xi’an 710089,China)
The architecture design of real time monitoring software directly affects the efficiency of flight test process management.According to the design idea of distributed software architecture,on the basis of the real-time data server,configure the site server and DNS server,building a multi server distributed flight test real time monitoring software architecture platform,using the interactive page design and network database management technology,improve the maintenance efficiency of the platform of real-time monitoring software architecture,improve user interaction mode.Achieved in distributed software architecture for the purpose of monitoring component access-deployment and link-monitoring,so the flight test monitoring and control link is simplified,helps to improve the efficiency of the test preparation of subjects.
flight test;architecture design;real-time monitoring;distributed
TN99
:A
:1674-6236(2017)13-0005-04
2016-07-12稿件編號:201607099
國防基礎科研項目(A0520132031)
覃楊森(1986—),男,廣西柳州人,碩士,工程師。研究方向:飛行試驗測試數(shù)據(jù)處理技術。