杜 楠,譚亞新
(陸軍裝甲兵學(xué)院 演訓(xùn)中心, 北京 100072)
模擬與仿真作為大規(guī)模復(fù)雜系統(tǒng)頂層論證、概念展示、設(shè)計(jì)分析與優(yōu)化、能力評(píng)估的有效手段,可以極大地提升系統(tǒng)開發(fā)效率與質(zhì)量,降低研制風(fēng)險(xiǎn),減少資金損耗[1]。過去幾年,產(chǎn)生大量關(guān)于模擬與仿真的方法架構(gòu)、設(shè)計(jì)過程、相關(guān)工具等問題的研究成果[2-4]。然而,隨著仿真體系的日益復(fù)雜、仿真所需資源的類型和數(shù)量的日益增多,這些成果的缺點(diǎn)變得突出[5-7]:一是開發(fā)和維護(hù)較為復(fù)雜,需要多名掌握不同領(lǐng)域知識(shí)的研究人員協(xié)作才能完成;二是仿真環(huán)境的配置變得復(fù)雜,而且針對(duì)不同地仿真實(shí)驗(yàn),可能需要不同地配置;三是參與仿真的人員逐漸增多,不兼容最新Web技術(shù)的現(xiàn)狀使得仿真部署存在諸多困難,甚至難以實(shí)際應(yīng)用。
隨著云計(jì)算的出現(xiàn),借鑒云服務(wù)提供商的“即服務(wù)”思想和面向服務(wù)的計(jì)算的思想的模擬與仿真即服務(wù)作為新的研究方向被提出,用于解決仿真系統(tǒng)的開發(fā)和部署問題[6-7]。模擬與仿真即服務(wù)與軟件即服務(wù)存在相同點(diǎn)[8]:都采用隨用隨取的方式,目的是為終端用戶提供快速的服務(wù)部署能力。然而,模擬與仿真即服務(wù)還能提供部署自定義仿真應(yīng)用的能力,這一點(diǎn)更像是平臺(tái)即服務(wù)[8]。
模擬與仿真即服務(wù)展現(xiàn)了全新的仿真機(jī)制,極大地改變了仿真系統(tǒng)的軟件架構(gòu),以及底層基礎(chǔ)設(shè)施和運(yùn)行平臺(tái)的組織模式[9]。軟件架構(gòu)作為模擬與仿真即服務(wù)的重要內(nèi)容,其設(shè)計(jì)與評(píng)估是一項(xiàng)高度復(fù)雜、知識(shí)密集地過程[10-11]。
本文綜述模擬與仿真即服務(wù)軟件架構(gòu)近10年來國(guó)內(nèi)外優(yōu)秀研究成果,從架構(gòu)設(shè)計(jì)原則和軍事應(yīng)用需求2個(gè)維度進(jìn)行闡述,指出仍然存在的問題和進(jìn)一步研究方向。
本章綜述模擬與仿真即服務(wù)研究領(lǐng)域的相關(guān)優(yōu)秀文獻(xiàn)中的典型架構(gòu),并描述其架構(gòu)設(shè)計(jì)模式。架構(gòu)設(shè)計(jì)模式定義了軟件組件、組件功能與約束以及組件連接方式,使得各個(gè)組件可以協(xié)同工作、形成系統(tǒng)[12]。從分析中可以發(fā)現(xiàn),分層架構(gòu)是軟件架構(gòu)設(shè)計(jì)模式的主要選擇。其次,指出各個(gè)軟件架構(gòu)的設(shè)計(jì)原則,經(jīng)過歸納,得出五條設(shè)計(jì)原則(表2,D1-D5)。最后,以文獻(xiàn)[14]給出的分層架構(gòu)為示例,對(duì)以上結(jié)論做進(jìn)一步的闡釋。
在學(xué)術(shù)搜索引擎上以“modeling and simulation as a service”以及相似同義的中英文關(guān)鍵詞搜索,限制時(shí)間為2010—2020年,共得到318篇文獻(xiàn)。通過略讀,篩選出31篇包含模擬與仿真即服務(wù)軟件架構(gòu)研究成果的文獻(xiàn),共12篇期刊,19篇會(huì)議。為了進(jìn)一步篩選高質(zhì)量論文,限制期刊影響因子2.0以上,限制會(huì)議H5-IIndex大于50,最終得到10篇文獻(xiàn)(表1)。部分文獻(xiàn)被引用數(shù)并不高,但考慮到發(fā)表時(shí)間為2017—2018年,是可以接受的。
表1 篩選得到的包含模擬與仿真即服務(wù)軟件架構(gòu)研究成果的期刊文獻(xiàn)
文獻(xiàn)[13]研究將現(xiàn)有仿真軟件部署至云端,采用軟件即服務(wù)的方式供用戶使用。為此,提出3層架構(gòu):云基礎(chǔ)設(shè)施層,平臺(tái)層,仿真軟件層。云基礎(chǔ)設(shè)施層提供硬件資源,平臺(tái)層設(shè)計(jì)標(biāo)準(zhǔn)化架構(gòu),統(tǒng)一軟件的交互方式,串聯(lián)各個(gè)軟件的異構(gòu)數(shù)據(jù),形成通信框架。仿真軟件層將現(xiàn)有仿真軟件按照平臺(tái)標(biāo)準(zhǔn)改進(jìn),實(shí)現(xiàn)代碼重利用,同時(shí)為用戶呈現(xiàn)統(tǒng)一接口。架構(gòu)使得快速應(yīng)用現(xiàn)有仿真工具開發(fā)仿真系統(tǒng),減少人員操作復(fù)雜度成為可能。
文獻(xiàn)[14]指出在使用云計(jì)算和Web技術(shù)開發(fā)仿真應(yīng)用時(shí),由于仿真系統(tǒng)中存在種類多樣地?cái)?shù)據(jù)與服務(wù),在集成復(fù)雜仿真應(yīng)用的過程時(shí),不可避免地會(huì)遇到困難和挑戰(zhàn),并且往往需要用戶具備仿真領(lǐng)域的專業(yè)技能。鑒于此,作者提出模擬與仿真混合架構(gòu),包含5層結(jié)構(gòu):云基礎(chǔ)設(shè)施層,組件層,標(biāo)簽層,連接層,混合應(yīng)用層。云基礎(chǔ)設(shè)施層提供計(jì)算單元和存儲(chǔ)單元等仿真所需的基礎(chǔ)資源;組件層提供仿真資源(例如,仿真對(duì)象模型)的封裝,對(duì)外提供唯一標(biāo)識(shí)和輸入輸出接口;標(biāo)簽層提供標(biāo)識(shí)組合算法,根據(jù)仿真應(yīng)用類型,自適應(yīng)的挖掘和組合仿真資源組件;連接層根據(jù)組件的輸入輸出接口,將組件連接起來;混合應(yīng)用層提供直觀的界面,使得用戶能夠定義仿真應(yīng)用,選擇組件,連接組件,形成可運(yùn)行應(yīng)用,并可視化運(yùn)行過程。架構(gòu)使得集成仿真資源,產(chǎn)生仿真應(yīng)用的過程簡(jiǎn)單高效。
文獻(xiàn)[15]提出的架構(gòu)包含4層:物理機(jī)層、虛擬機(jī)層、數(shù)值模型層以及用戶層,可以將物理過程模擬為仿真模型,并以服務(wù)的形式提供給用戶層。利用這些數(shù)值模型,用戶可以根據(jù)應(yīng)用需求,靈活地構(gòu)建仿真模型。
文獻(xiàn)[16]研究工程仿真。遵循模塊化思想,將龐大的工程仿真模型分解為多個(gè)無狀態(tài)、獨(dú)立地模型,并以微服務(wù)的形式提供。這解決了多領(lǐng)域知識(shí)交叉、多方開發(fā)帶來的復(fù)雜仿真模型的部署難題,增加了系統(tǒng)容錯(cuò)率。同時(shí),微服務(wù)可以被重復(fù)使用,通過靈活組合,快速構(gòu)建其他復(fù)雜模型。
文獻(xiàn)[17]研究泥石流災(zāi)害的仿真和預(yù)測(cè)。同樣引入分層結(jié)構(gòu),各個(gè)組件通過預(yù)先定義的接口相互通信。應(yīng)用層提供接口來管理仿真任務(wù),查看仿真結(jié)果,其需要的計(jì)算資源普通單機(jī)就可以滿足;中間件層作為整個(gè)架構(gòu)的核心,負(fù)責(zé)確保安全、數(shù)據(jù)轉(zhuǎn)換以及在上下層和各個(gè)組件之間傳遞數(shù)據(jù);數(shù)據(jù)層提供數(shù)據(jù)庫機(jī)制,負(fù)責(zé)數(shù)據(jù)存儲(chǔ)。整個(gè)架構(gòu)使得用戶可以更簡(jiǎn)易、更快地執(zhí)行仿真任務(wù)、分析仿真結(jié)果。
文獻(xiàn)[18]研究地理科學(xué)的仿真。地理科學(xué)與軍事仿真相同,涉及復(fù)雜地仿真過程、巨大地計(jì)算資源消耗以及海量數(shù)據(jù)處理。文章提出了一種基于基礎(chǔ)設(shè)施即服務(wù)的模擬與仿真即服務(wù)架構(gòu)來解決這些挑戰(zhàn)。架構(gòu)包含4層:云計(jì)算平臺(tái)層、地理科學(xué)模型倉(cāng)庫層、模擬與仿真即服務(wù)中間件層以及用戶層。從實(shí)現(xiàn)角度來說,架構(gòu)包含4個(gè)軟件:一個(gè)Web界面,可以上傳模型、執(zhí)行模型、獲取模型輸出;一個(gè)模擬與仿真服務(wù)端,可以監(jiān)視模型的運(yùn)行過程,自動(dòng)調(diào)配資源;一個(gè)編譯器,可以根據(jù)模型運(yùn)行環(huán)境執(zhí)行編譯,生成可運(yùn)行代碼;一個(gè)集中存放模型輸出的數(shù)據(jù)中心。由于支持資源的自動(dòng)調(diào)配,整個(gè)架構(gòu)具有更小的資源損耗以及更好的運(yùn)行性能。
文獻(xiàn)[19]研究大型網(wǎng)絡(luò)的仿真,提出了一個(gè)名為SIM-Cumulus的架構(gòu),網(wǎng)絡(luò)性能和能量消耗是其最主要的仿真對(duì)象。架構(gòu)支持仿真所需虛擬機(jī)的自動(dòng)創(chuàng)建與仿真任務(wù)的并行執(zhí)行,同樣提出了一個(gè)多級(jí)結(jié)構(gòu),包含:虛擬基礎(chǔ)設(shè)施層、云實(shí)例管理層、虛擬平臺(tái)層、云基礎(chǔ)設(shè)施管理層以及系統(tǒng)訪問層。
文獻(xiàn)[20]研究機(jī)器人仿真,試圖通過仿真預(yù)測(cè)行為的結(jié)果,從而提供更好的自動(dòng)化能力。然而,這樣的仿真往往需要較大的計(jì)算資源,而機(jī)器人的計(jì)算芯片是無法提供的。因此,文章設(shè)計(jì)了基于云計(jì)算的仿真即服務(wù)架構(gòu),命名為openEASE。復(fù)雜的仿真計(jì)算由云端完成,幫助機(jī)器人更好的選擇解決問題的方案。同時(shí),利用OpenEASE工具,仿真實(shí)驗(yàn)的結(jié)果可被記錄與后期分析。
文獻(xiàn)[21]指出現(xiàn)有的現(xiàn)實(shí)世界仿真模型,例如SUMO(Simulation of Urban MObility)、交通仿真系統(tǒng)、STEM(Science,Technology,Engineering,and Mathematics)教育仿真等存在以下問題:一是非相關(guān)領(lǐng)域?qū)<业挠脩綦y以使用;二是無法遠(yuǎn)程訪問;三是多用戶使用時(shí),穩(wěn)定性和數(shù)據(jù)持久化存在問題。鑒于此,文章提出一個(gè)仿真架構(gòu),命名為C2SuMo,由可插拔的組件組合而成。用戶只需要組合可插拔組件即可搭建仿真模型,這樣就對(duì)用戶隱藏了實(shí)現(xiàn)的復(fù)雜性,同時(shí)基于云基礎(chǔ)設(shè)施提供遠(yuǎn)程訪問的功能,解決了現(xiàn)有問題。
文獻(xiàn)[22]研究生物化學(xué)模型的仿真,提出一個(gè)名為StochSS(Stochastic Simulation as a Service)的架構(gòu)。其設(shè)計(jì)的主要目標(biāo)是提供一個(gè)只需要基本計(jì)算機(jī)技能就可以完成仿真任務(wù)的仿真系統(tǒng)。仿真功能以微服務(wù)的形式提供,包含4個(gè)過程:一是定義問題,使用模型編輯器建立模型;二是仿真管理,根據(jù)仿真類型,從預(yù)先準(zhǔn)備好的4個(gè)工具中選擇一個(gè)來執(zhí)行仿真任務(wù);三是模型分析,通過一組工具來進(jìn)行參數(shù)估計(jì)和參數(shù)調(diào)優(yōu);四是可視化輸出,提供一個(gè)可交互的3D視圖來觀察仿真結(jié)果。
歸納以上文獻(xiàn)的軟件架構(gòu)設(shè)計(jì)思想,可以得到模擬與仿真即服務(wù)軟件架構(gòu)的5條設(shè)計(jì)原則(表2,D1-D5)。通過統(tǒng)計(jì)各項(xiàng)原則被提到的頻率,可以大致評(píng)估其重要性程度:D2(70%),D1(30%),D5(20%),D3(10%),D4(10%)。
表2 模擬與仿真即服務(wù)軟件架構(gòu)設(shè)計(jì)原則
以上10篇文獻(xiàn)中,6篇[13-15,17-19]采用了分層的架構(gòu)設(shè)計(jì)模式。文獻(xiàn)[16,22]將實(shí)現(xiàn)仿真所需的功能以微服務(wù)的形式提供。文獻(xiàn)[20-21]提供了多種組件,可以通過組件的組合搭建仿真模型,實(shí)現(xiàn)仿真能力。需要特別指出的是,一個(gè)系統(tǒng)的架構(gòu)可能是多種架構(gòu)類型的組合[23]。分層架構(gòu)將系統(tǒng)功能進(jìn)行層次化的分解,通過定義良好的各個(gè)層的接口實(shí)現(xiàn)層之間的交互,組合實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)目標(biāo),同樣蘊(yùn)含著基于微服務(wù)和組件組合的思想。
例如,給出文獻(xiàn)[14]的分層架構(gòu)設(shè)計(jì)(見圖1)。云基礎(chǔ)設(shè)施層提供計(jì)算和存儲(chǔ)資源的封裝,同時(shí)提供中間件對(duì)這些資源進(jìn)行管理。組件層提供仿真資源的封裝,將其視為可以靈活組合的組件。針對(duì)不同的仿真任務(wù),可能需要不同的組件搭配才能完成。組件的組合方式由標(biāo)簽層管理,后者通過維護(hù)一個(gè)標(biāo)簽樹以及自適應(yīng)組合算法實(shí)現(xiàn)。組件的通信與連接由連接層提供。混合應(yīng)用層提供直觀的操作界面,使得用戶可以根據(jù)不同的仿真任務(wù),靈活選擇組件,將其連接起來成為仿真應(yīng)用,執(zhí)行并觀察結(jié)果。
圖1 文獻(xiàn)[14]的分層架構(gòu)設(shè)計(jì)Fig.1 Layered architecture design in paper[14]
由于模擬與仿真即服務(wù)依托云計(jì)算,將計(jì)算和存儲(chǔ)資源封裝為獨(dú)立的層,作為基礎(chǔ)設(shè)施供上層系統(tǒng)使用,是一種通用做法。同時(shí),最上層為用戶提供交互接口,自定義配置、執(zhí)行仿真任務(wù),獲取仿真結(jié)果,同樣是所觀察到的文獻(xiàn)中提出的分層架構(gòu)的共同選擇。文獻(xiàn)[14]的架構(gòu)的中間3層采用組件組合的思想,分別實(shí)現(xiàn)組件的封裝、管理維護(hù)以及連接方式,統(tǒng)一起來可認(rèn)為是:“仿真功能層”,是無論何種架構(gòu)都必須實(shí)現(xiàn)的核心功能
模擬與仿真技術(shù)廣泛應(yīng)用于軍事領(lǐng)域[8]。美國(guó)國(guó)防部使用模擬與仿真技術(shù)指導(dǎo)軍事裝備設(shè)計(jì)、研制,裝備訓(xùn)練等任務(wù)[24],具體包括:一是軍事裝備研究與開發(fā)。在武器系統(tǒng)、控制系統(tǒng)、飛機(jī)、車輛等軍事裝備開發(fā)的每一個(gè)階段,都需要模擬與仿真指導(dǎo)需求分析、設(shè)計(jì)決策、性能預(yù)測(cè)等工作。二是軍事裝備測(cè)試與評(píng)估。當(dāng)新的軍事裝備開發(fā)完畢投入作戰(zhàn)試驗(yàn)前,通常需要先經(jīng)過模擬與仿真系統(tǒng)測(cè)試以及與其他系統(tǒng)聯(lián)合調(diào)試等階段,從而減少資源損耗。三是軍事裝備訓(xùn)練。軍事裝備的訓(xùn)練工作通常依托模擬與仿真系統(tǒng)開展,通過訓(xùn)練形成裝備操作流程、維護(hù)方法等使用規(guī)范。我軍也開展了大量相關(guān)研究[25-27],形成一系列理論框架與應(yīng)用平臺(tái)。
澳大利亞防御科學(xué)與技術(shù)組織于2017年發(fā)起一項(xiàng)為期五年的復(fù)雜戰(zhàn)爭(zhēng)建模戰(zhàn)略研究方案(modelling complex warfighting strategic research initiative)[28],其中包含一項(xiàng)名為未來行動(dòng)概念開發(fā)仿真(Simulation for Future Operating Concept Development)的項(xiàng)目,目標(biāo)是研制用于研究復(fù)雜聯(lián)合作戰(zhàn)行動(dòng)概念的基于模擬與仿真即服務(wù)的創(chuàng)新性仿真應(yīng)用。項(xiàng)目預(yù)期實(shí)現(xiàn)多個(gè)機(jī)制用于解決大規(guī)模復(fù)雜軍事行動(dòng)仿真面臨的挑戰(zhàn),包括:1)支持多種類型的仿真模型;2)支持并行執(zhí)行多個(gè)仿真應(yīng)用;3)構(gòu)建松散耦合的仿真應(yīng)用;4)基于數(shù)據(jù)耕耘的概念開展仿真試驗(yàn)與管理仿真數(shù)據(jù)。同時(shí),該項(xiàng)目提出的8條軍事仿真對(duì)模擬與仿真即服務(wù)的應(yīng)用需求(表 3,R1-R8),對(duì)分析現(xiàn)有模擬與仿真即服務(wù)軟件架構(gòu)對(duì)軍事仿真的支撐能力具有重要借鑒價(jià)值。
表3 軍事領(lǐng)域?qū)δM與仿真即服務(wù)的應(yīng)用需求
本章綜述這些架構(gòu)對(duì)應(yīng)用需求的滿足情況(表 4),并羅列各個(gè)架構(gòu)可能存在的優(yōu)缺點(diǎn)。
表4 文獻(xiàn)對(duì)應(yīng)用需求的滿足情況以及優(yōu)缺點(diǎn)
續(xù)表(表4)
從現(xiàn)有研究成果可以看到,模擬與仿真服務(wù)可以小到一個(gè)嵌入式服務(wù),也可以大到整個(gè)仿真系統(tǒng)[29],能夠?qū)崿F(xiàn)多種功能:一是提供開發(fā)滿足柔性可配置與靈活可組合地仿真應(yīng)用的基礎(chǔ)設(shè)施,并使其以按需使用的方式部署和執(zhí)行[30],同時(shí)滿足高效運(yùn)行和低成本損耗[8];二是隱藏底層基礎(chǔ)設(shè)施、平臺(tái)與軟件實(shí)現(xiàn)的復(fù)雜性,給用戶提供簡(jiǎn)潔易用地接口[13];三是支持快速集成多個(gè)仿真系統(tǒng),形成統(tǒng)一的仿真體系[31];四是極大地縮減了人為配置和運(yùn)行仿真模型的時(shí)間[32];五是支持平滑地將傳統(tǒng)仿真模型移植到云環(huán)境中[33]。
對(duì)現(xiàn)有研究成果的分析也揭示了模擬與仿真即服務(wù)軟件架構(gòu)設(shè)計(jì)的若干規(guī)律:
一是分層架構(gòu)是軟件架構(gòu)設(shè)計(jì)的主要選擇。模擬與仿真即服務(wù)部署在云上,受云計(jì)算分層架構(gòu)的設(shè)計(jì)影響,多數(shù)軟件架構(gòu)采取了分層設(shè)計(jì)——10篇文獻(xiàn)中有6篇。但是,由于架構(gòu)設(shè)計(jì)思想和基礎(chǔ)設(shè)施各有不同,架構(gòu)分層設(shè)計(jì)的層數(shù)以及各個(gè)層的功能多種多樣。
二是隨著容器化虛擬技術(shù)的興起,容器化虛擬比起硬件層虛擬具有更快啟動(dòng)速度、更高密度存儲(chǔ)、更方便集群管理等優(yōu)勢(shì),使用容器化虛擬技術(shù)的仿真應(yīng)用在部署時(shí)更為便利。但是容器化虛擬技術(shù)更易于應(yīng)用在規(guī)模較小的仿真應(yīng)用中(例如:基于微服務(wù)的應(yīng)用)[34]。在規(guī)模龐大的仿真應(yīng)用中,特別是軍事領(lǐng)域仿真,使用容器化虛擬技術(shù)反而可能帶來部署上的額外困難[30]。如何重新設(shè)計(jì)軟件架構(gòu),將架構(gòu)拆分為相對(duì)較小、相互獨(dú)立的微型模塊,應(yīng)用容器化虛擬技術(shù)實(shí)現(xiàn)這些模塊,充分享受容器化虛擬技術(shù)帶來的便利以及實(shí)現(xiàn)模塊自由組合,并行多個(gè)仿真應(yīng)用等功能,是未來的重要研究方向。
三是終端用戶接口的設(shè)計(jì)應(yīng)當(dāng)使得用戶能夠高效、簡(jiǎn)易地構(gòu)建仿真模型,分析仿真結(jié)果。我們分析的文獻(xiàn)中多數(shù)對(duì)此設(shè)計(jì)原則都有所闡述。特別是,仿真系統(tǒng)不應(yīng)當(dāng)要求用戶必須具備仿真領(lǐng)域的專業(yè)知識(shí)和技能,只需要具備基本的計(jì)算機(jī)操作技能即可。仿真系統(tǒng)應(yīng)當(dāng)隱藏仿真應(yīng)用實(shí)現(xiàn)的復(fù)雜性,提供簡(jiǎn)潔易用的接口給用戶使用。同時(shí),仿真系統(tǒng)應(yīng)當(dāng)盡量具備自動(dòng)化功能,減少用戶重復(fù)性操作,充分提供可定制化內(nèi)容。
四是現(xiàn)有研究成果充分考慮軍事領(lǐng)域?qū)δM與仿真即服務(wù)的應(yīng)用需求中的R1、R2、R5、R7,滿足這些需求的文獻(xiàn)數(shù)量超過半數(shù),但對(duì)R3、R4、R6、R8的考慮較少。R3強(qiáng)調(diào)仿真任務(wù)的數(shù)據(jù)保密性。R4可以提高仿真研究的效率,快速調(diào)整仿真模型和任務(wù)。R6強(qiáng)調(diào)接口的易用性。R8可以提高仿真資源的利用效率。如何設(shè)計(jì)滿足這些需求的軟件架構(gòu)是未來的重要研究方向。
隨著仿真系統(tǒng)規(guī)模日益增加,所用資源日益增多,模擬與仿真即服務(wù)作為依托云端的仿真系統(tǒng),具有便于提供高性能計(jì)算能力、提供簡(jiǎn)潔易用的用戶接口等優(yōu)勢(shì),成為熱門研究領(lǐng)域。本文篩選10篇該領(lǐng)域具有代表性的文獻(xiàn),分析其架構(gòu)設(shè)計(jì)原則。從文獻(xiàn)成果對(duì)軍事領(lǐng)域中模擬與仿真即服務(wù)的應(yīng)用需求為切入點(diǎn),比較各個(gè)成果優(yōu)缺點(diǎn)。提煉出4條設(shè)計(jì)規(guī)律,并指出容器化虛擬技術(shù)以及設(shè)計(jì)完全滿足8條應(yīng)用需求的架構(gòu)是下一步的研究重點(diǎn)。