王鈞慧,李 婷
(中國西南電子技術(shù)研究所,成都 610036)
近年來,我國航天事業(yè)的發(fā)展突飛猛進(jìn),在軌航天器數(shù)量不斷增多,需要建設(shè)與之匹配的航天測控地面系統(tǒng),以滿足快速增長的航天器測控和遙感數(shù)據(jù)接收任務(wù)需求[1]。
地面站監(jiān)控系統(tǒng)是航天器測運(yùn)控地面系統(tǒng)的調(diào)度和管理核心,主要完成對系統(tǒng)內(nèi)所有可監(jiān)控設(shè)備的統(tǒng)一管理,在任務(wù)計劃的驅(qū)動下,分配設(shè)備資源,自動組織相關(guān)設(shè)備完成過境衛(wèi)星的捕獲、跟蹤,按要求執(zhí)行航天器測控、數(shù)據(jù)接收任務(wù)。穩(wěn)定、可靠的站控系統(tǒng)是發(fā)揮地面系統(tǒng)效能,提升地面系統(tǒng)任務(wù)成功率的必要保障。目前,由于航天測運(yùn)控領(lǐng)域技術(shù)快速發(fā)展,不同系統(tǒng)的組成、運(yùn)行流程和接口等內(nèi)容存在很大的差異,從而導(dǎo)致軟件交付周期長、軟件可靠性低等問題。
加拿大CALIAN公司系統(tǒng)工程部針對衛(wèi)星地面站開發(fā)了Mon-A-CoTM,主要用于對地面站設(shè)備的工作狀態(tài)進(jìn)行集中監(jiān)視和控制,主要用戶包括Inmarsat、Hughes、Boeing、Sirux-XM、Intelsat、EchoStar、Telenor,KDDI等。Mon-A-CoTM監(jiān)控系統(tǒng)由監(jiān)控服務(wù)器(Mon-A-CoTM Server)、監(jiān)控客戶端(Mon-A-CoTM GUI)存檔服務(wù)器(Mon-A-CoTM Archive Server)、可視化框圖編輯工具(Mon-A-CoTM System Builder)組成。
MBSE通過形式化的系統(tǒng)建模語言(Systems Modeling Language,SysML)對系統(tǒng)進(jìn)行描述,采用不同的視圖描述系統(tǒng)不同視角,將不同的方面分解為不同的視圖,建立復(fù)雜系統(tǒng)分布在各個視圖的模型,并保證這些信息的一致,綜合描述系統(tǒng)[2-4]。
“低代碼”一詞是由Forrester咨詢公司在2014 年提出的,低代碼平臺通過最少的手工編碼和在配置、培訓(xùn)、部署等方面的最低初期投入來實現(xiàn)業(yè)務(wù)應(yīng)用的快速交付??梢?構(gòu)建低代碼平臺的目的是降低開發(fā)成本并快速交付應(yīng)用。低代碼軟件平臺可簡化軟件開發(fā)過程,提高成長率,縮短軟件交付周期,并且系統(tǒng)穩(wěn)定性好,只要經(jīng)過簡單測試即可交付使用,最終降低軟件開發(fā)成本[5-6]。
低代碼平臺的核心基礎(chǔ)是對業(yè)務(wù)系統(tǒng)進(jìn)行建模?;谀P偷南到y(tǒng)工程(Model-based Systems Engineering,MBSE)方法通過模型的不斷演化、迭代遞增而實現(xiàn)產(chǎn)品的系統(tǒng)設(shè)計,通過模型的結(jié)構(gòu)化定義可以清晰地表達(dá)產(chǎn)品設(shè)計初期各方面的需求,在設(shè)計初期就能通過仿真發(fā)現(xiàn)大量不合理的設(shè)計方案。航天地面系統(tǒng)是高度專業(yè)化的系統(tǒng),低代碼平臺有助于促進(jìn)業(yè)務(wù)領(lǐng)域和IT技術(shù)的深度融合。領(lǐng)域?qū)<遗cIT技術(shù)人員使用同一套標(biāo)準(zhǔn)化、結(jié)構(gòu)化的語言進(jìn)行業(yè)務(wù)模型設(shè)計和IT系統(tǒng)開發(fā),可實現(xiàn)業(yè)務(wù)和IT之間的無障礙溝通,大幅提升組織的協(xié)作效率和開發(fā)過程。
本文的實現(xiàn)方案包括基于MBSE的航天地面系統(tǒng)模型設(shè)計、軟件架構(gòu)設(shè)計及實現(xiàn)路徑。
航天地面站控系統(tǒng)本質(zhì)上是對地面系統(tǒng)開展建模,同時通過接口來實現(xiàn)對系統(tǒng)的監(jiān)視或者控制,類似于航天地面的“平行系統(tǒng)”。本文不對MBSE的建模過程進(jìn)行描述,主要描述如何利用航天地面系統(tǒng)MBSE的建模結(jié)果來指導(dǎo)站控系統(tǒng)的實現(xiàn)。
SysML中包括結(jié)構(gòu)、行為、需求和參數(shù)4種類型的建模語言。
1) 結(jié)構(gòu)圖:包括模塊定義圖(Block Definition Diagram,BDD)、包圖(Package Diagram,PD)和內(nèi)部模塊圖(Internal Block Diagram,IBD)3類。模塊定義圖用于表示系統(tǒng)結(jié)構(gòu)組成元素即模塊(block)的特性,以及元素之間組成關(guān)系。包圖從文件夾(package)角度展示系統(tǒng)模型的多級組織方式,幫助閱讀模型的人更好理解模型結(jié)構(gòu),起到“導(dǎo)航”的作用。內(nèi)部模塊圖展示block的內(nèi)部結(jié)構(gòu)、所包含的part之間的接口和交互關(guān)系。
2) 行為圖:包括用例圖(Use Case Diagram,UCD)、活動圖(Activity Diagram,AD)、狀態(tài)機(jī)圖(State Machine Diagram,SMD)和序列圖(Sequence Diagram,SD)。用例圖主要用于展示外部人員/系統(tǒng)如何使用系統(tǒng)功能來完成某個目標(biāo)?;顒訄D用于展示活動/功能執(zhí)行的流程順序、控制邏輯、輸入輸出、數(shù)據(jù)轉(zhuǎn)換、職責(zé)劃分等內(nèi)容。狀態(tài)機(jī)圖表示某個block的狀態(tài)類型,以及不同狀態(tài)之間的切換條件。序列圖主要是基于系統(tǒng)不同結(jié)構(gòu)之間信號傳遞的交互活動圖。
3) 需求圖:需求是指系統(tǒng)必須滿足的能力或條件,一個需求能夠分解成多個子需求。需求圖能夠描述系統(tǒng)的詳細(xì)需求以及分系統(tǒng)的需求、各需求之間以及需求和其他建模元素之間的關(guān)系。
4) 參數(shù)圖:定義和展示參數(shù)之間約束/計算關(guān)系,用于支撐SysML系統(tǒng)模型的計算分析,如執(zhí)行約束、驗證需求、定義數(shù)據(jù)計算關(guān)系等。
航天地面系統(tǒng)的需求圖可直接借用標(biāo)準(zhǔn)的SysML,同時利用MBSE對航天地面系統(tǒng)的組成結(jié)構(gòu)、行為和參數(shù)等內(nèi)容進(jìn)行建模。
1.2.1 結(jié)構(gòu)圖
主要用來描述航天地面系統(tǒng)的組成、各個組成部分的關(guān)系以及設(shè)備內(nèi)部結(jié)構(gòu)。
1) 航天地面系統(tǒng)的結(jié)構(gòu):描述了系統(tǒng)的組成、設(shè)備屬性等。典型的航天地面系統(tǒng)包括天伺饋、變頻器、功放、場放、基帶等設(shè)備。
2) 組成部分的關(guān)系:描述了設(shè)備連接關(guān)系、連接屬性、信號流向、信息流向等內(nèi)容。
3) 設(shè)備內(nèi)部結(jié)構(gòu):描述了設(shè)備內(nèi)部的結(jié)構(gòu),比如基帶由背板、信號處理板卡、信息處理板卡、調(diào)制解調(diào)功能、捕獲功能等內(nèi)部組成結(jié)構(gòu)。
1.2.2 行為圖
航天地面系統(tǒng)的行為主要包括任務(wù)運(yùn)行控制、系統(tǒng)測試、系統(tǒng)標(biāo)校、系統(tǒng)故障診斷及自動處置等內(nèi)容。
1) 任務(wù)運(yùn)行控制:目標(biāo)是使系統(tǒng)能夠在工作計劃的驅(qū)動下,站控系統(tǒng)組織各分系統(tǒng)自動完成工作計劃所規(guī)定的測量、傳輸?shù)雀黜椚蝿?wù)。
2) 系統(tǒng)測試:系統(tǒng)自動測試的主要目的是檢查系統(tǒng)的工作性能,由站控系統(tǒng)組織,各分系統(tǒng)配合完成系統(tǒng)的自動測試。
3) 系統(tǒng)標(biāo)校:包括距離、相位等內(nèi)容的標(biāo)校,主要目的是通過嚴(yán)密的標(biāo)定和校準(zhǔn)來減少或消除系統(tǒng)誤差。系統(tǒng)標(biāo)校也是由站控系統(tǒng)組織,各分系統(tǒng)配合完成。
4) 故障診斷及處置:主要用于在任務(wù)中完成故障巡檢和故障分析定位并根據(jù)預(yù)設(shè)的規(guī)則開展自動處置。
1.2.3 參數(shù)圖
典型的衛(wèi)星測運(yùn)控地面站控系統(tǒng)涉及的參數(shù)主要包括衛(wèi)星參數(shù)(衛(wèi)星軌道、遙測參數(shù)、遙控參數(shù)、數(shù)傳參數(shù)等)、任務(wù)參數(shù)(任務(wù)計劃參數(shù))、地面站參數(shù)(G/T、EIRP等地面設(shè)備參數(shù))。
低代碼平臺是一系列工具的合集,可通過視覺方式開發(fā)和交付完整的應(yīng)用程序。拖放界面是低代碼平臺的核心。無須使用成千上萬行復(fù)雜的代碼和語法,可以使用低代碼來快速、直觀地構(gòu)建包含用戶界面、集成、數(shù)據(jù)和邏輯的完整應(yīng)用程序。應(yīng)用程序交付速度更快,手工編碼更少。
典型的低代碼開發(fā)平臺主要包括如下內(nèi)容:
1) 可視化IDE:一種用于可視化定義應(yīng)用程序的UI、工作流和數(shù)據(jù)模型,并在必要時添加手寫代碼的環(huán)境。
2) 各種后端或服務(wù)的連接器:自動處理數(shù)據(jù)結(jié)構(gòu)、存儲和檢索。
3) 應(yīng)用程序生命周期管理器:用于在測試、生產(chǎn)中構(gòu)建、調(diào)試、部署和維護(hù)應(yīng)用程序的自動化工具。
面向航天地面站控系統(tǒng)的低代碼開發(fā)平臺架構(gòu)如圖1所示,主要包括模型橋接軟件、可視化IDE和站控產(chǎn)品平臺三部分。
圖1 低代碼開發(fā)平臺架構(gòu)Fig.1 Framework of low-code development platform
2.1.1 模型橋接軟件
模型橋接軟件主要是將利用MagicDraw、Raphsody等商用建模工具生成的MBSE模型轉(zhuǎn)換為站控產(chǎn)品平臺所需要的初步模型。
1) 結(jié)構(gòu)圖橋接插件:將MBSE的結(jié)構(gòu)圖轉(zhuǎn)換為航天地面站的組成圖、接口關(guān)系圖。
2) 行為圖橋接插件:將MBSE的行為圖轉(zhuǎn)換為航天地面站的運(yùn)行控制流程、自動測試流程和自動標(biāo)校流程等。
3) 參數(shù)圖橋接插件:將MBSE的參數(shù)圖轉(zhuǎn)換為航天地面站的任務(wù)參數(shù)、計劃、配置等內(nèi)容。
2.1.2 可視化IDE
可視化IDE用于給設(shè)計人員編輯模型。設(shè)計人員可以將橋接軟件生成的模型作為初始模型進(jìn)行模型的細(xì)化生成最終模型,也可利用該工具直接生成最終模型。
1) 航天地面站結(jié)構(gòu)編輯工具:用于生成航天地面站的結(jié)構(gòu)圖,描述了航天地面站的組成、連接關(guān)系等內(nèi)容。
2) 航天地面站流程編輯工具:用于生成航天地面站的行為圖,描述了航天地面站與衛(wèi)星等設(shè)備的運(yùn)行控制流程以及自身的測試、標(biāo)校等流程。
3) 航天地面站參數(shù)管理編輯工具:用于生成航天地面站的參數(shù)圖,描述了航天地面站的任務(wù)參數(shù)、運(yùn)行計劃、軌道參數(shù)等內(nèi)容。
2.1.3 站控產(chǎn)品平臺
站控產(chǎn)品平臺將可視化IDE生成的最終模型作為平臺輸入,自動適應(yīng)不同航天地面系統(tǒng)的差異。同時,針對站控系統(tǒng)面臨的業(yè)務(wù)功能復(fù)雜、需求變化快、可靠性要求高、研制周期短等問題,采用容器構(gòu)建的基礎(chǔ)運(yùn)行平臺、基于微服務(wù)的軟件架構(gòu)等方法,進(jìn)行站控系統(tǒng)總體架構(gòu)的設(shè)計,使得站控系統(tǒng)具有良好的適應(yīng)性和較強(qiáng)的水平擴(kuò)展能力[7-9]。
1)基礎(chǔ)設(shè)施層:主要為站控系統(tǒng)各類服務(wù)的運(yùn)行提供基礎(chǔ)的計算、存儲和網(wǎng)絡(luò)資源,是系統(tǒng)的服務(wù)承載平臺。容器是云原生應(yīng)用的基礎(chǔ)運(yùn)行環(huán)境,是指將軟件打包成標(biāo)準(zhǔn)化單元,以用于開發(fā)、交付和部署,打包后的標(biāo)準(zhǔn)化單元被稱為容器鏡像,包含軟件運(yùn)行所需的代碼、運(yùn)行時環(huán)境、系統(tǒng)工具、系統(tǒng)庫和設(shè)置等所有內(nèi)容。軟件采用基于Spring Cloud的微服務(wù)體系架構(gòu),該架構(gòu)具有松耦合、靈活性好、擴(kuò)展性強(qiáng)、可用性高等特點(diǎn),能夠適應(yīng)各類航天地面裝備的要求,并且具備擴(kuò)展能力。在開發(fā)環(huán)境中,通過DevOps流水線開發(fā)的云原生業(yè)務(wù)應(yīng)用最終以鏡像包的形式交付。業(yè)務(wù)應(yīng)用鏡像需要上傳到生產(chǎn)環(huán)境的容器平臺中,在私有鏡像庫中進(jìn)行統(tǒng)一管理,通過簡單的資源配置即可一鍵式部署上線。
2) 數(shù)據(jù)交互服務(wù)層:負(fù)責(zé)將具體的硬件設(shè)備接入到站控系統(tǒng),包括各類通信服務(wù)和協(xié)議轉(zhuǎn)換服務(wù)。數(shù)據(jù)交互服務(wù)層還負(fù)責(zé)與各式各樣的硬件設(shè)備進(jìn)行信息交互,按照與設(shè)備之間的接口協(xié)議,進(jìn)行通信數(shù)據(jù)幀的解析和編碼。設(shè)備的接口協(xié)議通過設(shè)備元數(shù)據(jù)文件進(jìn)行描述。
3) 設(shè)備管理層:是站控系統(tǒng)的設(shè)備管理核心,主要包括元數(shù)據(jù)管理服務(wù)、設(shè)備注冊服務(wù)、設(shè)備配置服務(wù)、設(shè)備固件升級服務(wù)、狀態(tài)采集服務(wù)、參數(shù)控制服務(wù)以及虛擬設(shè)備服務(wù)。
4) 系統(tǒng)支持服務(wù)層:系統(tǒng)支持服務(wù)包括規(guī)則引擎、計劃調(diào)度、告警通知、數(shù)據(jù)管理、消息分發(fā)等通用服務(wù),主要用于進(jìn)行各類監(jiān)控數(shù)據(jù)的初步處理,進(jìn)行服務(wù)的調(diào)度,對出現(xiàn)的告警進(jìn)行提示或通知等。
5) 業(yè)務(wù)應(yīng)用層:是站控系統(tǒng)的核心功能層,主要功能是根據(jù)上級系統(tǒng)下達(dá)的或本地創(chuàng)建的任務(wù)計劃,按照時間符合的原則,自動控制相關(guān)設(shè)備的工作參數(shù),執(zhí)行衛(wèi)星測控、數(shù)據(jù)接收等任務(wù)。
MBSE開發(fā)工具CatiaMagic(原名MagicDraw)支持OMG XMI標(biāo)準(zhǔn)和自定義格式兩種方式,將功能架構(gòu)、邏輯架構(gòu)、物理架構(gòu)等設(shè)計信息導(dǎo)出生成XML文件。
除了研發(fā)站控產(chǎn)品平臺之外,還需要開發(fā)模型橋接軟件,實現(xiàn)研發(fā)平臺到產(chǎn)品平臺的模型轉(zhuǎn)換和橋接,減少人工錄入帶來的風(fēng)險。具體來說,可通過CatiaMagic提供的OpenApi將MBSE結(jié)構(gòu)模型和參數(shù)模型導(dǎo)出自定義格式的XML文件,讀取導(dǎo)出的XML文件,解析相關(guān)參數(shù)并自動生成航天地面站控系統(tǒng)模型文件,從而實現(xiàn)MBSE解決域與軟件實現(xiàn)域的橋接。模型轉(zhuǎn)換軟件根據(jù)航天地面系統(tǒng)的技術(shù)規(guī)范進(jìn)行建模。不同型號的地面系統(tǒng)可以通過橋接的配置管理工具,方便快捷地復(fù)用相關(guān)的設(shè)計,并自動化地進(jìn)行語法語義檢查。
CatiaMagic生成的XML模型文件格式如圖2所示。
圖2 SysML模型文件格式Fig.2 File format of SysML model
2.2.1 結(jié)構(gòu)圖
航天地面站控系統(tǒng)的結(jié)構(gòu)圖借鑒SysML中的模塊定義圖(BDD)。將航天地面系統(tǒng)的BDD通過橋接工具進(jìn)行抽取,并轉(zhuǎn)換為站控系統(tǒng)可以識別的結(jié)構(gòu)圖。同時,站控軟件平臺還提供工具支持對結(jié)構(gòu)圖的深度開發(fā),如圖3所示。
圖3 航天地面系統(tǒng)結(jié)構(gòu)Fig.3 Structure of satellite ground station
站控系統(tǒng)在運(yùn)行過程中,實時獲取航天地面系統(tǒng)的運(yùn)行狀態(tài),包括設(shè)備健康狀態(tài)、設(shè)備之間的連接狀態(tài)等信息,并直觀地在結(jié)構(gòu)圖中進(jìn)行顯示,為操作人員提供直觀的設(shè)備運(yùn)行狀態(tài)展示。
2.2.2 行為圖
航天地面站控系統(tǒng)的行為圖包括行為模型和流程引擎兩個部分。航天地面系統(tǒng)的行為圖的一個具體實現(xiàn)參見圖4。
圖4 航天地面系統(tǒng)行為圖Fig.4 Behavior diagram of satellite ground station
行為模型借鑒SysML中的活動圖,將航天地面系統(tǒng)的活動圖通過橋接工具進(jìn)行抽取,并轉(zhuǎn)換為站控系統(tǒng)可以識別的結(jié)構(gòu)圖。同時,站控軟件平臺還提供工具支持對行為圖的深度開發(fā)。系統(tǒng)將各任務(wù)控制流程分解為若干個業(yè)務(wù)節(jié)點(diǎn),每個業(yè)務(wù)節(jié)點(diǎn)完成一項或多項具體的設(shè)備操作,各業(yè)務(wù)節(jié)點(diǎn)可以順序、并發(fā)或條件執(zhí)行。針對不同的任務(wù)將業(yè)務(wù)節(jié)點(diǎn)分為必備和可選兩類,系統(tǒng)通過對可選業(yè)務(wù)節(jié)點(diǎn)和所有業(yè)務(wù)節(jié)點(diǎn)參數(shù)的編輯實現(xiàn)系統(tǒng)任務(wù)流程的可定制。系統(tǒng)按任務(wù)類型提供可視化的任務(wù)流程編輯功能,針對不同的任務(wù)類型,通過對各業(yè)務(wù)節(jié)點(diǎn)的拖拽,實現(xiàn)各類業(yè)務(wù)流程的可視化編輯。
流程引擎通過解析行為模型,驅(qū)動任務(wù)流程的執(zhí)行。流程引擎讀取行為模型,并執(zhí)行初始狀態(tài)(對應(yīng)于開始節(jié)點(diǎn))。流程引擎在初始事件中,根據(jù)流程類型,初始化任務(wù)上下文參數(shù)。流程引擎按照活動執(zhí)行的成功、失敗分別跳轉(zhuǎn)到不同的活動,每個活動對應(yīng)一個原子任務(wù)的接口實現(xiàn)(對應(yīng)于業(yè)務(wù)節(jié)點(diǎn)、條件節(jié)點(diǎn))。當(dāng)流程引擎執(zhí)行到最終狀態(tài),完成整個任務(wù)流程的執(zhí)行(對應(yīng)于結(jié)束節(jié)點(diǎn))。
2.2.3 參數(shù)圖
航天地面站控系統(tǒng)的參數(shù)圖借鑒SysML中的參數(shù)圖。將航天地面系統(tǒng)的參數(shù)圖通過橋接工具進(jìn)行抽取,并轉(zhuǎn)換為站控系統(tǒng)可以識別的參數(shù)圖。同時,站控軟件平臺還提供工具對支持行為圖的深度開發(fā)。
站控系統(tǒng)在運(yùn)行過程中,可根據(jù)參數(shù)的模型自動生成參數(shù)管理規(guī)范和要求,并可按照參數(shù)特征分別生成配置中心或者數(shù)據(jù)庫的內(nèi)容,無需人員進(jìn)行數(shù)據(jù)庫的建表、增、刪、查、改等操作。
某測控數(shù)傳一體化系統(tǒng)應(yīng)用本開發(fā)平臺在2.5月之內(nèi)即完成項目的研制、測試和交付,且系統(tǒng)運(yùn)行穩(wěn)定,較常規(guī)開發(fā)模式縮短了近45%。本文所述方法提升了MBSE的應(yīng)用效能,為航天地面系統(tǒng)在數(shù)字化轉(zhuǎn)型中的擴(kuò)展應(yīng)用提出了一個思路。利用本文中方法可將MBSE模型直接應(yīng)用到交付軟件中,無須針對各型裝備重復(fù)編碼測試,極大地提高了交付效率。
同時,探索了一種MBSE與現(xiàn)有業(yè)務(wù)研制過程的結(jié)合點(diǎn)并形成了新的研發(fā)模式。在新的研發(fā)模式下,由軟件人員根據(jù)系統(tǒng)要求完成低代碼開發(fā)平臺的研發(fā),由業(yè)務(wù)人員進(jìn)行模型設(shè)計及軟件交付,極大提升了系統(tǒng)研發(fā)效率,促進(jìn)了業(yè)務(wù)領(lǐng)域?qū)<液虸T人員的深度融合。
本文提出了一種基于低代碼軟件平臺的航天地面站軟件平臺,闡述了總體架構(gòu)以及關(guān)鍵功能實現(xiàn)路徑,同時論述了基于MBSE的低代碼平臺實現(xiàn)的可行性,對于后續(xù)工程化應(yīng)用具有較強(qiáng)的指導(dǎo)意義。
低代碼開發(fā)是一種新的軟件研發(fā)模式,便于系統(tǒng)設(shè)計人員積極參與到軟件設(shè)計中,也避免軟件需求不準(zhǔn)確造成軟件不可控。云原生是軟件后續(xù)發(fā)展的重大技術(shù),是微服務(wù)技術(shù)的重要演進(jìn),利用相關(guān)技術(shù)可進(jìn)一步提高國產(chǎn)化信息系統(tǒng)的開發(fā)運(yùn)維效率。