孔慶玲,韓 續(xù),張 瑩,張 玲,李 苒,林興隆
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
基于插件的星地資源管理系統(tǒng)的設計與實現(xiàn)
孔慶玲,韓 續(xù),張 瑩,張 玲,李 苒,林興隆
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
通過總結(jié)當前星地資源管理系統(tǒng)的發(fā)展現(xiàn)狀與趨勢,針對當前星地資源管理系統(tǒng)開發(fā)設計中存在的研制周期短、擴展性要求強等問題,并結(jié)合其發(fā)展方向,基于插件技術(shù)建立星地資源管理系統(tǒng),將系統(tǒng)開發(fā)分為系統(tǒng)框架開發(fā)、星地資源數(shù)據(jù)庫建立和功能插件開發(fā)3部分。提出星地資源管理系統(tǒng)開發(fā)的思路是在新技術(shù)支持下,對星地資源管理系統(tǒng)開發(fā)方式的探索與嘗試,是對傳統(tǒng)開發(fā)方式的改進。
插件;軟件框架;星地資源;衛(wèi)星任務管控;維護模型
AbstractThis paper summarizes the current status and trends of the development of satellite-station resource management system,and points out the current problems existing in the design and development.Based on the plug-in technology,the paper proposes a development method for the satellite-station resource management system,which is divided into three parts,i.e.,the framework,the satellite and ground resources database,and the functional plug-in.The proposed method is a new way of development supported by new technologies,and also an improvement for the traditional development mode.
Keywordsplug-in;software framework;satellite-station resource;satellite mission management and control;maintenance model
隨著我國航天事業(yè)的發(fā)展,越來越多不同種類(光學、SAR、多光譜和高光譜)、不同分辨率(亞米級、米級和10米級)和不同用途(氣象、國土、環(huán)保和減災等)的衛(wèi)星發(fā)射升空,對我國的國民經(jīng)濟建設發(fā)揮著越來越大的作用。為適應衛(wèi)星應用的不斷發(fā)展,衛(wèi)星任務管控系統(tǒng)的建設和研制需要不斷地進行升級改造。
作為衛(wèi)星任務管控的基礎(chǔ)支撐系統(tǒng),星地資源管理系統(tǒng)為衛(wèi)星任務管控運行提供數(shù)據(jù)支持,在不斷地改造和擴建過程中,面臨著研制周期短、擴展性要求強等問題。
本文研究利用.Net Framework4.0和iOpenworks提供的多種方法和技術(shù)實現(xiàn)基于插件技術(shù)的系統(tǒng)框架,在無需重編譯系統(tǒng)的情況下,實現(xiàn)對插件的動態(tài)加載、移除等管理工作[1],為系統(tǒng)的更新、功能的擴展提供了一種有效的機制[2]。在星地資源數(shù)據(jù)庫建設方面,研究從已有的星地資源管理系統(tǒng)中提取通用的星地資源元數(shù)據(jù),基于通用的元數(shù)據(jù)建立星地資源數(shù)據(jù)庫。
1.1 軟件框架
軟件框架一般由基礎(chǔ)平臺、框架主體、構(gòu)件庫、擴展接口和文檔5部分組成[3]。
目前普遍認為軟件框架開發(fā)包括面向框架的開發(fā)和基于框架的開發(fā)2個階段[4],前者實質(zhì)是框架本身的研制階段,后者則是框架的應用過程,軟件框架就是在這2個階段的交替中不斷豐富、完善。
軟件框架開發(fā)分為正向開發(fā)和逆向開發(fā)2種。前者是在沒有或應用較少的前提下,通過領(lǐng)域分析和設計逐步建立起來的[5];而后者更普遍一些,是在存在大量遺產(chǎn)系統(tǒng)或仍在使用系統(tǒng)的基礎(chǔ)上,進行框架提取而建立的具有領(lǐng)域通用性的軟件框架[6]。星地資源管理系統(tǒng)的工作屬于后者。
1.2 插件技術(shù)
為了提高星地資源管理系統(tǒng)軟件復用性、模塊化、封裝性和可擴展性,使軟件不同功能模塊之間能夠無縫集成,同時降低軟件開發(fā)成本,采用插件平臺技術(shù)進行軟件開發(fā)。
1.2.1 插件技術(shù)特點
插件技術(shù)特點如下:
① 易修改,可維護性強,插件與宿主程序通過接口通信,可以方便地加載與卸載[7];
② 結(jié)構(gòu)清晰,易于理解,各個模塊相互獨立,插件之間也相互獨立;
③ 結(jié)構(gòu)容易調(diào)整,可以隨時增加或刪除插件;
④ 可移植性強,重用粒度大,可以在軟件開發(fā)過程中修改應用程序;
⑤ 插件之間的耦合度低,插件是通過與宿主程序通信來實現(xiàn)插件與插件,插件與宿主程序之間的通信[8];
⑥ 開發(fā)門檻低,用戶可以按照規(guī)范自己開發(fā)滿足需求的插件,也可以委派第三方軟件供應商開發(fā)。
1.2.2 插件技術(shù)原理
插件能夠動態(tài)地插入到系統(tǒng)中,多個插件集成在一起完成復雜業(yè)務功能的處理,是插件系統(tǒng)中的重要組成部分[9]。插件需要給可執(zhí)行程序提供調(diào)用接口,當執(zhí)行程序需要調(diào)用插件的時候能夠找到這個接口,完成與可執(zhí)行程序的通信與交互,并且使得可執(zhí)行程序能夠得到插件的相關(guān)信息[10]。
插件系統(tǒng)的接口是使得可執(zhí)行程序和插件能夠相互結(jié)合工作的重要組成部分[11],通過接口來建立一套相互協(xié)作的規(guī)則和協(xié)議,使程序協(xié)調(diào)工作[12]。插件接口是一個邏輯接口[13],在可執(zhí)行程序中完成一部分,插件中完成另外一部分,通過插件接口來實現(xiàn)插件的加載、調(diào)用、卸載,以及可執(zhí)行程序與插件、插件與插件之間的交互[14]。
2.1 能力分析
星地資源管理系統(tǒng)實現(xiàn)衛(wèi)星、地面站和測控等資源信息統(tǒng)一存儲管理,為指揮調(diào)度、任務規(guī)劃、計劃制定、狀態(tài)監(jiān)視和載荷控制等業(yè)務運行提供星地資源數(shù)據(jù)。
星地資源管理系統(tǒng)功能組成如圖1所示,其中星地資源數(shù)據(jù)設計實現(xiàn)星地資源數(shù)據(jù)定義,星地資源維護根據(jù)星地資源定義實現(xiàn)星地資源數(shù)據(jù)的增、刪、改等維護操作,星地資源數(shù)據(jù)訪問服務實現(xiàn)星地資源數(shù)據(jù)查詢、檢索,可由其他系統(tǒng)根據(jù)需要定制實現(xiàn),本文重點討論星地資源數(shù)據(jù)設計和星地資源維護。
圖1 星地資源管理系統(tǒng)功能組成
2.2 現(xiàn)有系統(tǒng)存在的問題
現(xiàn)有星地資源管理系統(tǒng)的數(shù)據(jù)定義因項目而異,沒有進行規(guī)范化管理,軟件界面設計以及編碼實現(xiàn)又與數(shù)據(jù)庫模型綁定,數(shù)據(jù)庫模型發(fā)生變化,需要進行相應的編碼修改才能適應,導致每個項目都需要開發(fā)星地資源管理相關(guān)軟件,但是每套星地資源管理軟件的產(chǎn)品化程度都不高,持續(xù)發(fā)展空間很小,可靠性、可擴展性差,對于星地資源數(shù)據(jù)的訪問也很難規(guī)范化。
為了提高項目的開發(fā)效率以及軟件的可靠性[15],需要遵循統(tǒng)一的數(shù)據(jù)標準,能根據(jù)星地資源的具體信息特質(zhì)、外在數(shù)據(jù)特征、資源使用約束及可視化要求,基于通用的資源管理框架,個性化擴展定制和管理維護各種類資源信息,為業(yè)務運行提供數(shù)據(jù)支持。
3.1 系統(tǒng)組成
星地資源管理系統(tǒng)包括星地資源數(shù)據(jù)庫、星地資源維護模型、星地資源管理框架和星地資源屬性編輯插件。
3.1.1 星地資源數(shù)據(jù)庫
星地資源數(shù)據(jù)庫為星地資源管理系統(tǒng)提供數(shù)據(jù)支持,采用元數(shù)據(jù)建立星地資源數(shù)據(jù)庫,以獲得標準化的數(shù)據(jù)記錄,為各功能插件提供統(tǒng)一的底層數(shù)據(jù),為數(shù)據(jù)共享提供規(guī)范的數(shù)據(jù)記錄。
3.1.2 星地資源維護模型
根據(jù)星地資源數(shù)據(jù)維護特點,設計維護模型,包括資源類型劃分和資源屬性劃分,星地資源管理框架根據(jù)星地資源維護模型動態(tài)構(gòu)造星地資源樹。
3.1.3 星地資源管理框架
星地資源管理系統(tǒng)采用插件技術(shù)構(gòu)建系統(tǒng)框架,定義插件與框架之間的接口,在劃分系統(tǒng)功能的基礎(chǔ)上,將各部分功能以插件的形式實現(xiàn),插件與框架之間通過定義的接口通信。通過星地資源維護模型實現(xiàn)對插件的動態(tài)加載、更新和刪除等管理工作。
3.1.4 星地資源屬性編輯插件
為每類資源的每個屬性提供獨立的維護界面,以獨立的插件形式實現(xiàn),集成到星地資源管理框架,實現(xiàn)星地資源屬性顯示和編輯。
3.2 星地資源數(shù)據(jù)庫設計
對星地資源數(shù)據(jù)進行綜合、歸納與抽象,形成星地資源數(shù)據(jù)庫模型,包括衛(wèi)星資源、地面站資源、測控資源模型等,其中衛(wèi)星資源模型如圖2所示。
圖2 衛(wèi)星資源模型示例
3.3 星地資源維護模型設計
不同類型的星地資源之間耦合關(guān)系較弱,每類資源數(shù)據(jù)是分層次的,星地資源數(shù)據(jù)的操作一般包括增加、刪除、修改和查詢,據(jù)此可以設計星地資源維護模型,用于配置當前維護的資源類型和每類資源的屬性。
星地資源維護模型示例如圖3所示,模型第1層定義了星地資源的類型及這類資源對應的數(shù)據(jù)庫主表信息;第2層定義了某類資源的屬性及實現(xiàn)該屬性信息的插件名稱。
圖3 星地資源管理維護模型示例
3.4 星地資源管理框架設計
星地資源管理框架界面示例如圖4所示。
圖4 星地資源管理框架界面示例
左側(cè)是星地資源樹,框架讀取星地資源維護模型的第1層信息,獲取該類資源對應的數(shù)據(jù)庫主表以及主鍵信息,啟動時根據(jù)配置動態(tài)讀取星地資源信息構(gòu)造星地資源樹。通過增加和刪除操作進行維護,為實現(xiàn)通用的資源增加操作,要求每類資源對應的主表除主鍵外,其他非空屬性都應有默認值。為實現(xiàn)通用的資源刪除操作,要求每類資源的子表都有級聯(lián)刪除屬性。選擇某類資源的某一條資源信息,屬性樹顯示該類資源屬性信息,對應星地資源維護模型的第2層,最右側(cè)的面板缺省顯示第1個屬性的詳細信息,同時可以對屬性信息進行編輯,每個屬性信息對應一個插件實現(xiàn)。
3.5 資源屬性編輯插件開發(fā)
資源屬性編輯插件為每類資源的每個屬性提供獨立的維護界面,以獨立的插件形式實現(xiàn),集成到星地資源管理框架,獲取星地資源標識,根據(jù)星地資源標識獲取星地資源屬性信息,實現(xiàn)星地資源屬性顯示和編輯。
星地資源管理框架聲明接口函數(shù):UserControl GetRMDetailInfoPanel(string resourceCode);資源屬性編輯插件繼承UserControl基類,在構(gòu)造函數(shù)中,調(diào)用GetRMDetailInfoPanel(string resource ode)函數(shù),獲取資源對應的主鍵,代碼示例如圖5所示,根據(jù)主鍵查詢數(shù)據(jù)庫獲取資源屬性信息并進行顯示和編輯。
圖5 星地資源屬性編輯插件開發(fā)示例
資源屬性編輯插件開發(fā)完成后,部署到指定的目錄,配置星地資源維護模型,重新啟動軟件,完成與星地資源管理框架的集成。
4.1 增加資源
如果需要增加某類資源的維護,需要創(chuàng)建相應數(shù)據(jù)庫表,確定資源包含的屬性分類,按照約定的接口進行資源屬性編輯插件開發(fā)、部署,最后在星地資源維護模型中增加相應的配置項,重新啟動軟件將顯示新增的資源類型及資源列表。
4.2 刪除資源
如果某類資源不需要維護,去掉星地資源維護模型相應的資源類型節(jié)點,重新啟動軟件將不再顯示去掉的資源類型及資源列表。
4.3 修改資源
修改某類資源包括增加資源屬性和刪除資源屬性2種情況。
4.3.1 增加資源屬性
如果某類資源的某些屬性不需要維護,可以通過修改資源維護模型去掉相應的屬性節(jié)點,重新啟動軟件,選擇該類資源的某一資源,將不再顯示去掉的資源屬性。
4.3.2 刪除資源屬性
如果某類資源需要增加屬性的維護,需要創(chuàng)建相應數(shù)據(jù)庫表,按照約定的接口進行資源屬性編輯插件開發(fā)、部署,最后在星地資源維護模型中增加相應的配置項,重新啟動軟件,選擇該類中的某一資源,將顯示新增的資源屬性。
星地資源管理與星地資源維護模型綁定,維護模型與數(shù)據(jù)庫模型綁定,提供人機界面支持開發(fā)人員進行模型設計;設計星地資源管理框架根據(jù)維護模型動態(tài)構(gòu)建星地資源管理軟件界面,進行星地資源數(shù)據(jù)增、刪、改、查操作,這種設計模式降低了軟件的復雜性和各類資源屬性的耦合性,便于分工合作,大大提高了軟件開發(fā)效率,具有很強的通用性和擴展性。
[1] 梁培明.基于構(gòu)件的軟件框架研究與實現(xiàn)[D].大連:大連理工大學,2007.
[2] 吳毅堅,趙文耘.特定領(lǐng)域軟件框架的提取方法研究[J].電子學報,2003,31(12A):2151-2153.
[3] 彭鑫,趙文耘.一種基于類間關(guān)系動態(tài)分析的領(lǐng)域框架和構(gòu)件提取方法[J].小型微型計算機系統(tǒng),2007,28(11):1928-1931.[4] 楊芙清.軟件復用及相關(guān)技術(shù)[J].計算機科學,1999,26(5):1-4.
[5] 溫昱.軟件架構(gòu)設計[M].北京:電子工業(yè)出版社,2007.
[6] 潘俊俊,徐小良.科技計劃項目管理系統(tǒng)的領(lǐng)域框架研究[J].計算機工程,2010,36(15):274-279.
[7] GEEBELEN Kristof,KULIKOWSKI Eryk,TRUYEN Eddy,et al.A MVC Framework for Policy-Based Adaptation of Workflow Processes:a Case Study on Confidentiality[C]∥2010 IEEE International Conference on Web Services, 2010:401-408.
[8] 李錦春.WEB軟件開發(fā)框架的研究與實踐[D].武漢:武漢大學,2004.
[9] 鮑亮,陳平.基于插件的異構(gòu)數(shù)據(jù)集成[J].計算機工程,2006(20):86-88.
[10] 李延春.軟件插件技術(shù)的原理與實現(xiàn)[J].計算機系統(tǒng)應用,2003(7):24-26.
[11] 張進軍,張繼勇,薛萊文.一種基于插件的軟件體系結(jié)構(gòu)[J].合肥工業(yè)大學學報(自然科學版),2005,28(4):398-401.
[12] 陳方明,陳奇.基于插件思想的可重用軟件設計與實現(xiàn)[J].計算機工程與設計,2005(26):172-173.
[13] 張學慶,馬萬權(quán),高朝暉,等.衛(wèi)星管理控制體系結(jié)構(gòu)研究[J].無線電工程,2006,36(5):36-38.
[14] 許宏君.基于軟件復用技術(shù)的面向特定領(lǐng)域的軟件框架研究[D].北京:中國地質(zhì)大學,2006.
[15] 馮新?lián)P,崔凱,沈建京.面向插件的應用框架研究與實現(xiàn)[J].計算機工程與應用,2009(10):89-91.
[16] 王映輝.軟件構(gòu)件與體系結(jié)構(gòu)——原理、方法與技術(shù)[M].北京:機械工業(yè)出版社,2009.
DesignandImplementationofSatellite-stationResourceManagementSystemBasedonPlug-in
KONG Qing-ling,HAN Xu,ZHANG Ying,ZHANG Ling,LI Ran,LIN Xing-long
(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)
TP391
A
1003-3106(2017)11-0027-04
孔慶玲女,(1977—),高級工程師。主要研究方向:航天地面應用。
10.3969/j.issn.1003-3106.2017.11.06
孔慶玲,韓續(xù),張瑩,等.基于插件的星地資源管理系統(tǒng)的設計與實現(xiàn)[J].無線電工程,2017,47(11):27-30,58.[KONG Qingling,HAN Xu,ZHANG Ying,et al.Design and Implementation of Satellite-station Resource Management System Based on Plug-in[J].Radio Engineering,2017,47(11):27-30,58.]
2017-06-16
河北省博士后科學基金重點資助項目(B2015005003)。
韓續(xù)男,(1984—),工程師。主要研究方向:航天地面應用。