侯 玉,吳旭升,馮 源,陳 搏
(1. 海軍工程大學 電氣工程學院,武漢 430033;2. 海軍駐某廠軍事代表室,遼寧大連 116005)
兩種適用于嵌入式艦船電力虛擬模擬訓練系統(tǒng)軟件架構(gòu)的構(gòu)建與比較分析
侯 玉1,2,吳旭升1,馮 源1,陳 搏2
(1. 海軍工程大學 電氣工程學院,武漢 430033;2. 海軍駐某廠軍事代表室,遼寧大連 116005)
針對嵌入式艦船電力虛擬模擬訓練系統(tǒng)的特點,提出混合架構(gòu)和標準Web架構(gòu)等兩種適用于嵌入式艦船電力虛擬模擬訓練系統(tǒng)的軟件架構(gòu)。對兩種軟件架構(gòu)進行了對比分析,對依據(jù)兩種軟件架構(gòu)開發(fā)的模擬訓練軟件進行了測試比較。
嵌入式 艦船電力 虛擬模擬訓練
艦船電力系統(tǒng)由于艦船空間緊張,各種資源有限,難以放置類似陸用的大型模擬訓練系統(tǒng),只能利用實船裝備開發(fā)嵌入式模擬訓練系統(tǒng),采用實船實際裝備的硬件系統(tǒng),在執(zhí)行任務間隙通過后臺運行。這就決定了嵌入式艦船電力虛擬模擬訓練系統(tǒng)的硬件水平是常規(guī)計算機的水平,難以獲得高性能的硬件支持,只能在軟件方面進行優(yōu)化設計,以解決船舶電力虛擬模擬訓練系統(tǒng)中的相關需求[1-3]。
艦船電力虛擬模擬訓練系統(tǒng)總體上需要滿足以下要求:訓練場景真實性、訓練過程實時性、訓練結(jié)果可追蹤評估、訓練內(nèi)容和角色可管理控制。傳統(tǒng)陸用大型模擬訓練系統(tǒng)能夠獲取高性能硬件支持,不僅運行主機性能優(yōu)越,還能有專用的仿真機提供支撐,因此在軟件設計方面為追求開發(fā)過程的便捷性,往往采用單一語言和簡單架構(gòu)進行軟件開發(fā)。但是嵌入式艦船電力虛擬模擬訓練系統(tǒng)立足于實船裝備的硬件條件下,采用單一語言和簡單架構(gòu)將難以滿足訓練場景真實性,訓練過程實時性的要求。為解決該問題,本文對模擬訓練系統(tǒng)的架構(gòu)進行研究,提出兩種基于前后端分離的分布式電力虛擬模擬訓練架構(gòu)構(gòu)建方法,并對兩種架構(gòu)進行定量比較,對這兩種架構(gòu)開發(fā)的軟件進行了測試分析[4-8]。
本文提出兩種基于前后端分離的分布式電力虛擬模擬訓練架構(gòu),一種是基于Java + Qt+ Cpp+ OpenDDS + 關系數(shù)據(jù)庫 + (html + javascript +CSS) + WebGL的混合架構(gòu)(見圖1);另一種是基于Rust + 關系數(shù)據(jù)庫 + (html + javascript + CSS)+ WebGL的標準web架構(gòu)(見圖2)。
圖1 基于Java + Qt/ Cpp + OpenDDS + 關系數(shù)據(jù)庫 + (html + javascript + CSS) + WebGL的混合架構(gòu)
首先在客戶端和服務器的架構(gòu)上,兩種架構(gòu)都是瀏覽器/服務器(Brower/Server,B/S)的分布式體系架構(gòu),這是傳統(tǒng)的客戶端/服務器(Client/Server,C/S)分布式體系架構(gòu)的一種變體,是一種標準的瘦客戶端。這種B/S架構(gòu)的瘦客戶端大多數(shù)情況下僅提供對服務器端的數(shù)據(jù)進行解析和顯示,大多數(shù)計算任務均由服務器來處理,因此瘦客戶端/服務器架構(gòu)容易維護而且容易擴展,并且跨平臺也很容易。本文主要對后端服務器設計方法、前端客戶端設計、數(shù)據(jù)分發(fā)、系統(tǒng)測試、系統(tǒng)部署5個方面進行比較。
基于該混合架構(gòu)構(gòu)建的虛擬模擬訓練軟件,將仿真模型分為兩部分,一部分是實時化仿真模型,包括后端電力系統(tǒng)實時化仿真模型、聲音仿真模型、操控指令仿真模型、評估仿真模型等,均基于Qt框架構(gòu)建,由于Qt基于Cpp語言,而作為可編譯為本地機器代碼的Cpp,其運行不需要虛擬機做支撐,由此編譯得到的代碼運行性能將比基于Java的代碼運行性能要高。在實時數(shù)據(jù)分發(fā)方面由于上述后端模型基于Cpp實現(xiàn),因此采用同樣基于Cpp的OpenDDS框架實現(xiàn)了相應的實時數(shù)據(jù)分發(fā)服務,不僅滿足數(shù)據(jù)實時分發(fā)需求,還能實現(xiàn)與Cpp的無縫對接。另一部分是持久化模型,該模型對于實時性要求不高,因此采用java的各項技術(shù)(包括spring和hibernate)進行構(gòu)建,通過restful進行數(shù)據(jù)分發(fā)。而基于java進行構(gòu)建優(yōu)勢在于,其是分布式架構(gòu)構(gòu)建的最主要語言,基于java實現(xiàn)的web及數(shù)據(jù)庫中間件等技術(shù)最為先進及完備。
標準Web架構(gòu)則與混合架構(gòu)完全不同,僅僅采用了單一的Rust語言及相應的各項技術(shù)進行構(gòu)建。這是因為,同Cpp一樣,Rust也是可編譯為本地機器代碼的語言,運行時不需要虛擬機做支撐,基于Rust所編譯的機器代碼運行效率經(jīng)測試與基于Cpp的代碼運行效率相當(某些測試甚至超過Cpp)。并且,目前Rust已有相應的各種框架和庫,可提供對web服務、數(shù)據(jù)持久化以及序列化/反序列化等功能的支撐。因此,綜合考慮,可基于Rust進行標準web架構(gòu)的構(gòu)建。
圖2 基于Rust + 關系數(shù)據(jù)庫 + (html + javascript + CSS) + WebGL的標準web架構(gòu)
兩種種架構(gòu)對于二維GUI界面的架構(gòu)方法基本是一致的,不同之處僅僅體現(xiàn)在具體的模板語言上。混合架構(gòu)基于java的兩種架構(gòu)采用了jsp模板,以更好的能和后端的各種技術(shù)進行融合。而標準web架構(gòu)中的二維前端采用了更為通用的基于javascript的模板,以便更徹底的實現(xiàn)前后端的分離。對于三維場景的構(gòu)建,兩種架構(gòu)采用了基于WebGL的Three.js,從開發(fā)效率、測試手段等方面看,Three.js具有簡單、小巧、WebGL與Html結(jié)合性較好等優(yōu)勢,且經(jīng)測試,基于Three.js構(gòu)建的虛擬仿真三維場景完全可流暢運行。
混合架構(gòu)采用了restful/http以及實時數(shù)據(jù)分發(fā)服務(Data Distribution Service,DDS)相結(jié)合的方式,其中restful/http主要用于前后端持久化數(shù)據(jù)、靜態(tài)資源之間的數(shù)據(jù)交互,而DDS主要用于電力系統(tǒng)實時仿真數(shù)據(jù)、聲音出發(fā)、操控指令、評估等實時性要求較高的數(shù)據(jù)交互。
標準Web架構(gòu)則直接基于Restful/Http服務進行所有實時與非實時的數(shù)據(jù)交互。雖然標準Web架構(gòu)如此做在性能上稍微有所犧牲,但由于統(tǒng)一數(shù)據(jù)交互接口,便于構(gòu)建、測試與部署,且經(jīng)測試,在船舶電力虛擬模擬訓練這樣的小型分布式系統(tǒng)應用環(huán)境下,其性能損失較小,可以忽略不計。
混合架構(gòu)為了在各方面達到最優(yōu),采用了多種開發(fā)語言及技術(shù)進行構(gòu)建。然而,此種做法加大了測試的難度。首先,每種開發(fā)語言、每種技術(shù)均有自己的測試手段,但由于系統(tǒng)的模塊由不同的技術(shù)實現(xiàn),因此,在進行模塊內(nèi)部的單元測試和集成測試時較為容易,但若需要進行跨模塊集成測試,則問題的查找和定位將非常困難。
標準Web架構(gòu)由于簡化了系統(tǒng)結(jié)構(gòu),其后端構(gòu)建技術(shù)僅基于Rust,而Rust本身的測試可以統(tǒng)一歸于Cargo工具下進行管理,因此相較于前兩種架構(gòu),標準架構(gòu)的測試方法將更加簡單高效。
綜上所述,標準Web架構(gòu)優(yōu)于混合架構(gòu)。各個架構(gòu)的優(yōu)缺點可歸結(jié)為表1所示。
本文對上述兩種架構(gòu)開發(fā)的軟件的頁面訪問性能和數(shù)據(jù)分發(fā)性能進行了測試,并對其進行了對比分析。
將主要采用siege進行負載測試,采用webbench進行壓力測試
1) 頁面訪問性能測試
此項測試旨在測試該兩種架構(gòu)下,模擬訓練服務器所提供的Web頁面訪問的能力。測試方法如下:
第一步:按照正常啟動方法,分別在各自的運行環(huán)境中啟動相應的模擬訓練服務器軟件。
第二步:選取典型的模擬訓練軟件頁面,采用以下方法分別進行單個典型頁面測試、所有典型頁面綜合測試。
第三步:利用siege工具,分別模擬單個客戶端、10個客戶端并行、50個客戶端并行、100個客戶端并行訪問上述頁面(組),進行5次測試,得到相應的負載測試數(shù)據(jù)。
第四步:利用WebBench工具,逐步增加并行模擬客戶端的數(shù)量,直至500個并行模擬客戶端,訪問一個典型頁面,持續(xù)足夠長時間進行多次測試,得到相應的壓力測試數(shù)據(jù)。
2)數(shù)據(jù)分發(fā)性能測試。
此項測試旨在測試兩種架構(gòu)下,模擬訓練服務器所提供的數(shù)據(jù)分發(fā)的能力。測試方法如下:
第一步:按照正常啟動方法,在運行環(huán)境中啟動相應的模擬訓練服務器軟件。
第二步:選取典型的模擬訓練分發(fā)數(shù)據(jù)類型,選取的測試數(shù)據(jù)為仿真電力系統(tǒng)實時數(shù)據(jù)包以及典型的指令實時數(shù)據(jù)包。
第三步:利用siege工具,分別模擬單個客戶端、10個客戶端并行、50個客戶端并行、100個客戶端并行訪問相應典型數(shù)據(jù),對restful數(shù)據(jù)分發(fā)方法進行5次測試,得到相應的測試數(shù)據(jù)。
第四步:分別同時啟動單個客戶端、10個客戶端、50個客戶端、100個客戶端訪問相應典型數(shù)據(jù),對OpenDDS數(shù)據(jù)分發(fā)方法進行測試,得到相應的測試數(shù)據(jù)。
由表2可知,對于頁面訪問性能,標準架構(gòu)的性能要優(yōu)于混合架構(gòu),這得以于基于Rust的模擬訓練服務器運行的高效性。然而,混合架構(gòu)的數(shù)據(jù)分發(fā)性能遠遠好于Rust標準架構(gòu),原因在于,Restful數(shù)據(jù)分發(fā)服務本質(zhì)上仍然基于HTTP通信協(xié)議,而HTTP通信協(xié)議傳輸?shù)臄?shù)據(jù)是字符流,因此,HTTP通信數(shù)據(jù)幀長度較OpenDDS要長很多。其次,由于B/S架構(gòu)下的Web服務器的通信機制,其響應的延遲要比DDS通信延遲本身要大很多??傮w來看,混合架構(gòu)以及標準Web架構(gòu)均滿足船舶電力模擬訓練系統(tǒng)實際應用的需求。
針對嵌入式艦船電力虛擬模擬訓練系統(tǒng)的特點,提出兩種適用于嵌入式艦船電力虛擬模擬訓練系統(tǒng)的軟件架構(gòu)。對兩種軟件架構(gòu)進行了對比分析,對依據(jù)兩種軟件架構(gòu)開發(fā)的模擬訓練軟件進行了測試比較。從對比分析看,標準Web架構(gòu)要優(yōu)于混合架構(gòu)。從測試結(jié)果看,兩種服務架構(gòu)都能在嵌入式艦船電力虛擬模擬訓練系統(tǒng)硬件條件下滿足訓練過程真實性、實時性的要求。
表2 兩種架構(gòu)總體性能測試結(jié)果
[1]林平. 艦艇嵌入式模擬訓練技術(shù)的應用及發(fā)展[J].軍事運籌與系統(tǒng)工程, 2008, 22(4): 27-31.
[2]金炳哲, 龔喜文. 船舶電力系統(tǒng)模擬訓練系統(tǒng)的設計與實現(xiàn)[J]. 上海船舶運輸科學研究所學報, 2016,39(1): 49-53.
[3]謝輝, 卜樂平, 馮源. 船舶電力模擬訓練評估系統(tǒng)的設計和開發(fā)[J]. 艦船科學技術(shù), 2013, 35(11):45-48.
[4]McGrath Dennis, Hill Doug, Hunt Amy. IC2020:Embedded Simulation for Next Generation Incident Command Software[C]. Huntsville AL: Proceedings of the 2006 Huntsville Simulation Conference, 2006.
[5]商亞新, 王學奎. 基于VC++的模擬器訓練評估軟件的設計與實現(xiàn)[J]. 計算機與數(shù)字工程, 2013, 9:1525-1528.
[6]徐遠新, 林平, 徐海剛. 基于 HLA 的艦載嵌入式模擬訓練系統(tǒng)設計方案[J]. 軍事運籌與系統(tǒng)工程,2012, 26(2): 51-54.
[7]李爽. 設計模式在實船訓練系統(tǒng)軟件設計中的應用[J]. 上海船舶運輸科學研究所學報, 2011, 34(1):47-51.
[8]常天慶, 張波, 王欽釗. 嵌入式訓練技術(shù)的應用與發(fā)展[J]. 裝甲兵工程學院學報, 2008, 22(6): 1-6.
Construction and Comparative Analysis of Two Software Architectures for Embedded Virtual Simulation Training of Marine Power System
Hou Yu1,2, Wu Xusheng1, Feng Yuan1, Chen Bo2
(1. College of Electric Engineering, Naval Engineering University, Wuhan 430033, China; 2. Naval Representative Office,Dalian 116005, Liaoning, China.)
According to the features of the embedded virtual simulated training for marine power system,two software architectures, including hybrid architecture and standard Web architecture, are proposed for embedded virtual simulated training of marine power system. Two software architectures are compared and analyzed in this paper, and the simulation training software based on two software architectures is tested and compared.
embedded system, marine power system, virtual simulated training
TM743
A
1003-4862(2017)10-0027-05
2017-08-18
侯玉(1983-),男,碩士,工程師。研究方向:電力系統(tǒng)。E-mail:j-y-f2005@qq.com