楊 光
(中國人民解放軍91404部隊 秦皇島 066000)
近些年來,在海軍試驗和訓(xùn)練的發(fā)展和應(yīng)用過程中,軍地各單位積累了大量的模型、系統(tǒng)等資源,由于是“自抓自建”,技術(shù)體制不盡相同,各種資源相互孤立,現(xiàn)有模型資源重用率低。通過研究模型的重用組合方法,將異類異構(gòu)的試驗、訓(xùn)練模型資源進(jìn)行重用與組合,能有效降低海軍作戰(zhàn)試訓(xùn)系統(tǒng)論證評估和開發(fā)構(gòu)造成本,提高資源利用效率。
目前,對海軍試訓(xùn)模型資源重用與組合的研究,多集中在模型的接口標(biāo)準(zhǔn)計化、層次化建模、基于Petri網(wǎng)的仿真概念模型框架組合建模等方面[1~2],這些方法一定程度上可以實(shí)現(xiàn)試訓(xùn)模型的重用和移植,有效提高應(yīng)用開發(fā)效率。但隨著大數(shù)據(jù)和云計算技術(shù)的發(fā)展,云架構(gòu)下海軍試訓(xùn)模型的動態(tài)組合和重用方法的將成為未來研究重點(diǎn)。
海軍試驗?zāi)P唾Y源涵蓋了從系統(tǒng)論證、研制、裝備鑒定的全過程。從建模的全生命周期角度來分有需求模型、概念模型、設(shè)計模型、可執(zhí)行模型、運(yùn)行模型等;從模型的表現(xiàn)形式來分有結(jié)構(gòu)化模型、半結(jié)構(gòu)化模型、非結(jié)構(gòu)化模型;從模型的粒度來分有原子模型、組合模型、組件模型、系統(tǒng)模型等;從實(shí)現(xiàn)功能角度分有計算模型、數(shù)學(xué)模型、動力學(xué)模型等;從模型實(shí)體屬性來講包括“空中、水面、水下、岸上”四大種類、“敵、我”兩大屬性。在本文中,模型重用與自動裝配的研究對象為海軍試驗過程中涉及的所有模型。
模型重用的核心思想是[3]:模型重用以降低系統(tǒng)開發(fā)成本、提高建模效率和質(zhì)量為目標(biāo),通過建立可重用模型或者再利用已有的模型為手段,是一個系統(tǒng)化、工程化、標(biāo)準(zhǔn)化的過程。對海軍作戰(zhàn)試驗系統(tǒng)來講,模型重用主要有以下3種應(yīng)用場景:1)海軍試訓(xùn)系統(tǒng)更新,在之前版本的試驗系統(tǒng)的基礎(chǔ)上,增加一些新功能,或者有其他方面的更新,形成新的試驗系統(tǒng);2)海軍試訓(xùn)系統(tǒng)移植,海軍試訓(xùn)系統(tǒng)需要一直到新的軟件平臺下,需要適應(yīng)跨領(lǐng)域、跨平臺帶來的異構(gòu)性;3)需要創(chuàng)建新的海軍試訓(xùn)系統(tǒng),評估確認(rèn)已有的模型資源能夠滿足新的試驗系統(tǒng)需求時,對模型資源加以重用,最后進(jìn)行校驗。
在模型重用實(shí)現(xiàn)的關(guān)鍵技術(shù)當(dāng)中,基于云架構(gòu)的模型重用是近年來的研究熱點(diǎn),文獻(xiàn)[4~5]提出了建模仿真即服務(wù)(modelingandsimulationasa sservice,MSaaS)的概念并指出基于云計算框架的服務(wù)也可以具有云的按需分配資源、高速網(wǎng)絡(luò)、快速響應(yīng)等優(yōu)點(diǎn)。這些特點(diǎn)都為模型重用在云環(huán)境下的應(yīng)用提供了很好的支撐。
傳統(tǒng)的MAMSaaS架構(gòu)(Mashup Architecture with Modeling and Simulation as a Service)有四層(云、盒子、接線、混合架構(gòu))[6~7],為了滿足海軍試驗?zāi)P唾Y源滿足按需服務(wù),動態(tài)組合的需求,提高模型重用組合效率,本文增加了標(biāo)簽數(shù)據(jù)層,設(shè)計了一種新的基于語義盒子的混合架構(gòu)。如圖1中所示,分為基礎(chǔ)資源層、服務(wù)層和端應(yīng)用層。
云資源層:它負(fù)責(zé)支持云基礎(chǔ)架構(gòu)和部署MSaaS。云基礎(chǔ)架構(gòu)包括云計算單元(用于構(gòu)建和執(zhí)行試驗系統(tǒng))和云存儲單元(用于共享M&S資源)。此外,該層還負(fù)責(zé)通過按需使用MSaaS中間件來部署用戶提供的M&S資源,將其作為云中的MSaaS。
盒子層:它表示用于M&S的混合組件(稱為Boxes)。盒子可以有不同的類別,每個盒子有統(tǒng)一的盒子簽名標(biāo)識,并且它有自己的處理輸入消息的功能和視覺形式,而簽名標(biāo)識以模型的層次化、服務(wù)化的描述為基礎(chǔ)。
接線層:它負(fù)責(zé)將盒子連接到混合組件中。盒子可以通過它們的輸入/輸出連接彼此,而這些輸入和輸出在它們的盒子簽名中被標(biāo)識出。一個盒子可以在不同的混合組件中重用和重新連接以作新的用途。
圖1 海軍試驗?zāi)P唾Y源重用框架
混合架構(gòu)層:它負(fù)責(zé)選擇和連接盒子,并運(yùn)行應(yīng)用程序。它們可以添加盒子、接線和在運(yùn)行時可視化結(jié)果。
標(biāo)簽數(shù)據(jù)層:該層使用標(biāo)簽挖掘和學(xué)習(xí)算法維護(hù)和學(xué)習(xí)盒子的標(biāo)簽樹。可以從盒子中挖掘標(biāo)簽簽名,使用學(xué)習(xí)算法從盒子標(biāo)簽簽名構(gòu)建表轉(zhuǎn)化的數(shù)據(jù)模式。
依據(jù)服務(wù)化、多層次的模型描述,將海軍試訓(xùn)模型資源的方法和具有的功能作為MSaaS來實(shí)現(xiàn),使用云平臺的中間件將模型共享到云資源池中。
盒子從各種服務(wù)接收異構(gòu)數(shù)據(jù)。盒子模塊規(guī)范特定功能并將數(shù)據(jù)發(fā)送給其他盒子;它們可以共享或發(fā)布到網(wǎng)絡(luò)。盒子有四種基本類型:MSaaS、WebAPI、Widget和OperatorBox。
MSaaSBox:它使用云層中的MSaaS服務(wù)來處理輸入數(shù)據(jù),以及輸出結(jié)果。云層充當(dāng)存儲庫接口來作為MSaaS公開M&S資源,用戶可以通過使用HTTP方法如GET/PUT/POST/DELETE聯(lián)系到相應(yīng)的模型資源。
WebAPIBox:它調(diào)用現(xiàn)有的開放WebAPI并遵循WS(WebService)原則,暴露功能。
WidgetBox:是一個輕量級的Web應(yīng)用程序,可以在Web瀏覽器上顯示數(shù)據(jù)。它們?yōu)樘囟〝?shù)據(jù)提供可視化表示。它們可以重復(fù)使用于Web開發(fā)或其他混合平臺。
OperatorBox:它基于定制的流程從其他盒子中獲取輸入數(shù)據(jù)并生成輸出,用于解決盒子之間的不一致的問題(即具有類似端口的盒子不能直接連接),可以被視為盒子之間的轉(zhuǎn)換器。
雖然盒子有不同的類型,但它們以類似的方式管理。每個盒子都是打包在一個單獨(dú)的存檔文件中,因此可以開發(fā)、下載和安裝在不同的服務(wù)器上,每個盒子包裝有三個部分,如下:
1)盒子簽名:為了管理不同的盒子,設(shè)計了統(tǒng)一的結(jié)構(gòu)。
BX= <Bn,Bt,Bd,Bs,Ba,Bp,Bm>是盒子的一般信息,I={p}是一組輸入端口,O={p}是盒子的一組輸出端口,P= <Pn,Pt,Pd>包括端口名稱、類型和描述。
結(jié)合仿真資源的相關(guān)描述,盒子簽名用每個盒子的基本信息(BX)、輸入端口(I)和輸出端口(O)進(jìn)行標(biāo)識?;拘畔ㄆ涿QBn、類型Bt(例如MSaaS、WebAPI、Widget、Operator)、描述 Bd、子類型Bs、作者Ba、路徑Bp,以及方法Bm(相關(guān)WS的方法名稱)。一個盒子可以有多個輸入和輸出端口,用于連接混合架構(gòu)中的盒子。每個輸入或輸出包括端口名稱、類型(端口中的消息類型)和描述(描述端口的文本)。
2)盒子函數(shù):每個盒子都有一個響應(yīng)輸入事件的函數(shù)。盒子是事件驅(qū)動的,當(dāng)輸入事件到來時,它會觸發(fā)盒子中的一個函數(shù),通過輸出端口發(fā)送數(shù)據(jù)。不同類型的盒子具有不同的函數(shù)。對于MSaaSBox,它結(jié)合了與同一實(shí)驗相關(guān)的多個MSaaS到一個盒子。
3)盒子視圖:每個盒子也可以在Web瀏覽器中顯示。盒子有用于可視化目的文件,對于MSaaS和WebAPI的盒子,它們的視圖可以是它們的簽名或執(zhí)行狀態(tài)。對于Widget盒子,它們可以重用現(xiàn)有小部件中的相關(guān)文件。用戶也可以自定義這些文件以更改視圖數(shù)據(jù)的顯示方式。
每個盒子都打包在一個存檔文件中,這個文件包含一個盒子簽名、盒子函數(shù)和盒子視圖。
盒子的一個關(guān)鍵特征是它們可以相互連接,這就是所謂的盒子接線。接線用于通過輸入和輸出組合不同的盒子。
B={Bx,By……}是一組盒子,{Bx.I,By.O}是盒子的一系列連接,盒子接線是盒子和它們之間的連接的組合。每個接線(W)包含一組方框{Bx,By……}和連接{Bx.I,By.O}。例如Bx.I,By.O表示盒子By的輸出端口O可以連接到盒子Bx的輸入端口I。盒子通過其輸出端口上的事件通知他們的更改;其他盒子可以通過輸入端口接受這些事件。通過接線盒子,用戶可以在多個試訓(xùn)系統(tǒng)構(gòu)建場景中,在不了解內(nèi)部細(xì)節(jié)的情況下重復(fù)使用它們。
盒子和布線機(jī)制可用于構(gòu)建復(fù)合模型。它基于可視化表示的盒子之間的數(shù)據(jù)流和事件的機(jī)制。
M&Smashup(模型組合)由一系列盒子(B),盒子接線(W)和用戶工作區(qū)(U)組成。用戶可以擁有不同的工作區(qū)。在任何工作區(qū)中,用戶都會通過它們的輸入/輸出端口選擇盒子和盒子接線。用戶可以擁有不同的工作區(qū)。在任何工作區(qū)中,用戶都會通過它們的輸入/輸出端口選擇盒子和盒子接線。標(biāo)簽數(shù)據(jù)層可以在經(jīng)過語義提取后,通過推理引擎,幫助選擇,簡化選線/布線。
圖2是資源組合的一個示例。它由六個盒子組成(B1到B6),通過交換數(shù)據(jù)相互操作。考慮一下有MSaaS盒子B1和B2,WebAPI盒子B3和B4,Operator盒子B5和Widget盒子B6。用戶可以通過連接這些盒子來構(gòu)建Mashup架構(gòu)。在運(yùn)行時,B1中生成的數(shù)據(jù)將傳遞給B3并觸發(fā)B3的函數(shù),然后B3將其數(shù)據(jù)輸出到B2。類似的行為也會發(fā)生在其他的盒子之間。
圖2 盒子/接線/組合示例圖
圖3 模型資源組合方法示意圖
模型資源組合方法如圖3所示,在海軍試驗?zāi)P唾Y源重用框架的基礎(chǔ)上,首先將需要裝配的物理資源進(jìn)行虛擬化描述,構(gòu)建相應(yīng)的虛擬資源,形成服務(wù)之后,加入模型的云資源池。針對具體的任務(wù)采用資源搜索匹配算法尋找出動態(tài)能力滿足需求的虛擬資源,然后通過運(yùn)行調(diào)度算法進(jìn)行管理,實(shí)現(xiàn)海軍試訓(xùn)模型資源的組合。
目前仿真模型組合方法可以分為兩類:語法組合和語義組合[3]?;谡Z法的組合主要是解決模型接口的匹配問題,如數(shù)據(jù)船體、時間同步等;語義組合主要是通過“行為等同替換”的思想,用組合后具備相同行為的組合模型表示被建模系統(tǒng),確保組合模型對于被建模系統(tǒng)是有效的。語法組合是語義組合的基礎(chǔ)。這兩種方法都解決了通用模型組合的一般問題,但是由于組合建模還依賴領(lǐng)域知識,例如如何根據(jù)海軍試訓(xùn)裝備模型知識確定組合模型的子模型、組合模型的子模型受到的約束條件、如何根據(jù)領(lǐng)域知識確定組合的有效性、如何表達(dá)用戶的特殊需求等。本文采用一種基于推理的服務(wù)化模型動態(tài)組合方法。
對于不同層次的試驗訓(xùn)練而言,需要將多個不同層次的模型集成起來聯(lián)合執(zhí)行,大到海軍全軍訓(xùn)練的戰(zhàn)略模型、集團(tuán)軍戰(zhàn)役訓(xùn)練模型和師團(tuán)戰(zhàn)術(shù)訓(xùn)練模型,小到單件武器的平臺級模型甚至單平臺中探測、火控的單元模型,重點(diǎn)是要解決多模型間不同語義的理解和綜合集成[9]。每個Box都是以服務(wù)的形式采用服務(wù)總線架構(gòu)完成注冊,來實(shí)現(xiàn)服務(wù)的在時空上的實(shí)時性。在組合過程中,模型被封裝成服務(wù),根據(jù)模型的復(fù)雜程度將服務(wù)劃分為原子服務(wù)、基本服務(wù)、復(fù)雜服務(wù)和組合服務(wù)4種類型。
1)原子服務(wù)
原子服務(wù)對應(yīng)于原子組件,是直接將單個組件模型直接封裝形成的原子服務(wù),這里的原子服務(wù)包括兩種:一種是不具備獨(dú)立功能的原子服務(wù),這種模型單獨(dú)使用,一般不具備行動能力,必須與其他組件或服務(wù)組合才具有行動能力,如平臺組件等;另一種是具有獨(dú)立功能的原子服務(wù)。如輔助組件,這些組件直接封裝后形成的原子服務(wù),不需要依賴于其他的組件就能獨(dú)立完成相應(yīng)的任務(wù)
2)基本服務(wù)
基本服務(wù)是指將原子組件按照一定的方式組裝后形成具有一定作戰(zhàn)行動能力的服務(wù),以具備基本行動能力為判斷標(biāo)準(zhǔn),通常組成此類服務(wù)的原子組件不超過10個。
3)復(fù)雜服務(wù)
復(fù)雜服務(wù)是針對基本服務(wù)的,是指具有多種作戰(zhàn)行動能力的基本服務(wù)組合而成的服務(wù)。這種服務(wù)可能有兩種方式組合而成:一種是以基本服務(wù)為基礎(chǔ)對象構(gòu)建,通過將多個基本服務(wù)組合形成,具有多種行動能力;另一種是通過將多個作戰(zhàn)行動組件按照一定的順序組合,形成一個完整的作戰(zhàn)行動過程,這種復(fù)雜服務(wù)可以提供對某一次戰(zhàn)斗行動的仿真。對于不很關(guān)注每一個行動細(xì)節(jié)的情況下,利用這種服務(wù)可以簡化仿真過程,提高模型運(yùn)行效率。
4)組合服務(wù)
自動服務(wù)組合主要需完成以下幾個步驟:服務(wù)的形式化描述,按照領(lǐng)域本體和描述邏輯的規(guī)范使得服務(wù)具有語義功能;模型經(jīng)組合后形成RDF(Resource Description Framework)文檔,按照服務(wù)描述的規(guī)范對其進(jìn)行封裝,并在UDDI(Universal Description Discoveryand Integration)中心進(jìn)行服務(wù)的注冊與發(fā)布;按照用戶的需求,自動找出滿足要求的服務(wù)集合,并根據(jù)相關(guān)的算法進(jìn)行選擇、綁定,明確接口關(guān)系和執(zhí)行順序,同時進(jìn)行服務(wù)流程化描述;按照相關(guān)算法對發(fā)現(xiàn)和選擇的服務(wù)進(jìn)行自動組合、驗證和執(zhí)行。
模型組合的基本過程如圖4所示。首先由用戶提出申請需求服務(wù),即對所需模型服務(wù)進(jìn)行描述,根據(jù)模型接口描述和功能描述,進(jìn)行語義提取與轉(zhuǎn)換,語義提取是與模型知識庫進(jìn)行比對的過程,并將提取的語義轉(zhuǎn)換成組合推理引擎能夠識別的語言,在組合規(guī)則庫和模型知識庫的共同作用下,推理引擎按照模型組合服務(wù)流程對模型進(jìn)行組合封裝,然后將組合結(jié)果反饋,并進(jìn)行模型組合性驗證,最后將組合結(jié)果以服務(wù)的方式提供給用戶直接使用。而在推理的過程中,隨著系統(tǒng)的運(yùn)行,模型組合的語境會動態(tài)改變,同時模型組合語境的內(nèi)容也會為推理引擎提供條件限制,影響組合過程運(yùn)行。
圖4 模型組合過程示意圖
圖5 模型組合算法
整個模型資源組合算法如圖5,分別從模型資源服務(wù)的發(fā)布者、請求者和推理過程這三個角度對模型組合服務(wù)的執(zhí)行流程進(jìn)行具體分析,如圖5所示。
本文從海軍聯(lián)合試驗系統(tǒng)構(gòu)建對模型資源的重用需求入手,研究了模型重用的基本原理,借鑒云資源管理平臺MSaaS的概念以及語義組合與檢索匹配的方法,提出一種基于語義盒子的海軍試訓(xùn)模型重用框架,研究了該框架下海軍試訓(xùn)模型的組合原理和組合過程,為海軍試訓(xùn)模型的重用與組合方法研究提供了一種參考。