樊大偉,龔松顯,霍景河
(1.裝甲兵工程學(xué)院 信息工程系,北京 100072;2.總參通信訓(xùn)練基地,河北 宣化 075100)
戰(zhàn)術(shù)互聯(lián)網(wǎng)是由戰(zhàn)術(shù)無(wú)線電臺(tái)、交換設(shè)備、傳輸設(shè)備等設(shè)備組成的計(jì)算機(jī)網(wǎng)絡(luò),是數(shù)字化部隊(duì)信息化建設(shè)的一項(xiàng)重要內(nèi)容[1]。某戰(zhàn)術(shù)互聯(lián)網(wǎng)仿真通信系統(tǒng)主要運(yùn)用虛擬現(xiàn)實(shí)技術(shù)和模擬技術(shù),使受訓(xùn)人員在近似實(shí)戰(zhàn)的戰(zhàn)場(chǎng)環(huán)境、虛擬的組網(wǎng)環(huán)境中提高熟練掌握、運(yùn)用戰(zhàn)術(shù)互聯(lián)網(wǎng)的能力。其中,仿真系統(tǒng)中的網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)是仿真系統(tǒng)中各功能模塊進(jìn)行正確工作的基礎(chǔ),是仿真環(huán)境真實(shí)性的重要依據(jù)。對(duì)網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)的處理策略直接決定了整個(gè)仿真系統(tǒng)效率的高低,是系統(tǒng)中需要考慮的一個(gè)重要技術(shù)點(diǎn)[2]。本文對(duì)拓?fù)鋽?shù)據(jù)的存儲(chǔ)進(jìn)行了分析,給出了一種有效的綜合處理策略。
某戰(zhàn)術(shù)互聯(lián)網(wǎng)通信仿真系統(tǒng)的網(wǎng)絡(luò)模型基本構(gòu)成如圖1所示。其主要功能是以網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)為基礎(chǔ),支持各類設(shè)備仿真模塊進(jìn)行無(wú)線信道、鏈路和網(wǎng)絡(luò)性能的仿真。
圖1 通信網(wǎng)絡(luò)模型基本構(gòu)成
在系統(tǒng)中,網(wǎng)絡(luò)仿真模塊的功能是基于系統(tǒng)中各設(shè)備仿真模塊的實(shí)時(shí)工作參數(shù),形成網(wǎng)絡(luò)的仿真拓?fù)鋽?shù)據(jù)并發(fā)送至中心處理模塊;設(shè)備仿真模塊的功能是定期向中心處理模塊發(fā)送與自身相關(guān)的網(wǎng)絡(luò)拓?fù)湔?qǐng)求,并依據(jù)中心模塊發(fā)回的拓?fù)鋽?shù)據(jù)進(jìn)行通信仿真;中心處理模塊的功能是接收并儲(chǔ)存網(wǎng)絡(luò)仿真模塊的網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù),響應(yīng)設(shè)備仿真模塊的拓?fù)湔?qǐng)求。
基于以上描述,在網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)的處理過程中需要重點(diǎn)對(duì)拓?fù)鋽?shù)據(jù)的存儲(chǔ)策略進(jìn)行考慮。即:在系統(tǒng)仿真的過程中,中心處理模塊與網(wǎng)絡(luò)仿真模塊和設(shè)備仿真模塊之間存在著大量、頻繁的網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)交互。對(duì)于常采用的以數(shù)據(jù)庫(kù)作為接口的交互方式,其I/O 訪問操作比較慢,因此中心處理模塊必須按照一定的數(shù)據(jù)結(jié)構(gòu)將網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)準(zhǔn)確無(wú)誤地儲(chǔ)存在計(jì)算機(jī)內(nèi)存中,才能保證網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)交互的時(shí)效性。
在系統(tǒng)中,根據(jù)每次仿真需求、訓(xùn)練任務(wù)以及部隊(duì)編制規(guī)模的不同,系統(tǒng)中網(wǎng)絡(luò)拓?fù)涞囊?guī)模變化很大[3-4]。對(duì)于拓?fù)鋽?shù)據(jù)的存儲(chǔ),常用的靜態(tài)分配內(nèi)存的方式會(huì)造成一定程度的內(nèi)存浪費(fèi),而且當(dāng)拓?fù)鋽?shù)據(jù)量超過一定大小時(shí),系統(tǒng)的內(nèi)存棧將無(wú)法提供足夠的內(nèi)存。綜合效率及能力兩方面的考慮,采用動(dòng)態(tài)的方法對(duì)拓?fù)鋽?shù)據(jù)進(jìn)行儲(chǔ)存是最佳的方案。在本系統(tǒng)中,設(shè)計(jì)構(gòu)造了動(dòng)態(tài)儲(chǔ)存類DynaStore,可以方便地對(duì)內(nèi)存進(jìn)行自動(dòng)分配和釋放,靈活地對(duì)拓?fù)鋽?shù)據(jù)進(jìn)行儲(chǔ)存[5]。其主要結(jié)構(gòu)簡(jiǎn)單描述如下:
在動(dòng)態(tài)存儲(chǔ)類中,內(nèi)存處理函數(shù)包裝了C ++中的內(nèi)存分配和銷毀函數(shù)。當(dāng)一個(gè)動(dòng)態(tài)存儲(chǔ)類被定義后,開發(fā)者只需要將注意力集中在數(shù)據(jù)處理函數(shù)上即可。動(dòng)態(tài)存儲(chǔ)類會(huì)基于開發(fā)者設(shè)置或默認(rèn)的內(nèi)存分配粒度的大小,并根據(jù)需要,調(diào)用內(nèi)存處理函數(shù)來(lái)分配新內(nèi)存或回收不用的內(nèi)存,從而很好地滿足不同規(guī)模網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)的存儲(chǔ),達(dá)到存儲(chǔ)單元的最佳利用。
網(wǎng)絡(luò)拓?fù)漕惖脑O(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的關(guān)鍵,考慮到系統(tǒng)中基于編制的拓?fù)浣Y(jié)構(gòu)圖的特點(diǎn),選擇基于圖的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)比較適合,可以很好地描述拓?fù)渲性O(shè)備(頂點(diǎn))和設(shè)備間(邊)的關(guān)聯(lián)關(guān)系。在系統(tǒng)中,分別定義了設(shè)備數(shù)據(jù)結(jié)構(gòu)DevInfor 和連線信息結(jié)構(gòu)ArcInfor,描述了設(shè)備的工作狀態(tài)和設(shè)備間的通信性能參數(shù)。
圖的傳統(tǒng)的存儲(chǔ)結(jié)構(gòu),如數(shù)組、鄰接表、十字鏈表等[6],都是基于已知固定數(shù)量的頂點(diǎn)為基礎(chǔ)進(jìn)行設(shè)計(jì)的,不能完全滿足本系統(tǒng)中拓?fù)鋭?dòng)態(tài)變化的需求。為此,以鄰接多重表為基礎(chǔ),結(jié)合上面的動(dòng)態(tài)存儲(chǔ)類,設(shè)計(jì)開發(fā)了基于圖的拓?fù)漕?,其主要結(jié)構(gòu)簡(jiǎn)單描述如下:
在拓?fù)漕愔?,網(wǎng)絡(luò)內(nèi)所有設(shè)備以及設(shè)備間連線信息以動(dòng)態(tài)存儲(chǔ)類對(duì)象的形式存在,每一個(gè)拓?fù)漕悓?duì)象和仿真系統(tǒng)中基于編制的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)一一對(duì)應(yīng)。
在仿真系統(tǒng)中,為了能夠更好地對(duì)所有拓?fù)漕悓?duì)象進(jìn)行管理,在拓?fù)漕惖膶哟沃?,設(shè)計(jì)了一個(gè)拓?fù)涔芾眍?,用?lái)對(duì)系統(tǒng)中所有的拓?fù)漕悓?duì)象進(jìn)行管理控制。其設(shè)計(jì)思路是將所有的拓?fù)漕惙庋b在一個(gè)動(dòng)態(tài)存儲(chǔ)類對(duì)象中,拓?fù)涔芾眍惖慕Y(jié)構(gòu)簡(jiǎn)單描述如下:
經(jīng)過以上層層迭進(jìn)的設(shè)計(jì),網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)在內(nèi)存中的存儲(chǔ)結(jié)構(gòu)如圖2 所示。
圖2 數(shù)據(jù)在內(nèi)存中的存儲(chǔ)結(jié)構(gòu)
上述存儲(chǔ)策略設(shè)計(jì)有以下特點(diǎn):
1)拓?fù)涔芾眍悓?duì)象所管理的拓?fù)漕悓?duì)象的數(shù)量具有較好的伸縮性,能夠適應(yīng)任意大小網(wǎng)絡(luò)拓?fù)湟?guī)模的變化。
2)拓?fù)涔芾眍愄峁┝藢?duì)所有網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)進(jìn)行訪問的唯一接口,從而簡(jiǎn)化了拓?fù)涮幚淼慕换ミ^程,能夠方便地對(duì)拓?fù)溥M(jìn)行增加、刪除、更新和查詢。
通過設(shè)計(jì)網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)在內(nèi)存中的動(dòng)態(tài)存儲(chǔ)方式,實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)的有效處理。在仿真系統(tǒng)中的實(shí)際應(yīng)用表明,文中的網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)處理策略具有較好的一般性和實(shí)用性,能夠滿足仿真系統(tǒng)的效率要求,并且對(duì)于其他類似的仿真系統(tǒng)設(shè)計(jì)具有一定的借鑒意義。
[1]劉明慶,李紅平.戰(zhàn)術(shù)互聯(lián)網(wǎng)淺述[J].現(xiàn)代通信,2003,29(2):26-29.
[2]孫柏林.計(jì)算機(jī)戰(zhàn)役戰(zhàn)術(shù)訓(xùn)練模擬系統(tǒng)軍事總體設(shè)計(jì)原理[M].北京:解放軍出版社,1994.
[3]鄭愛民,崔燦,劉福杰.實(shí)用化的戰(zhàn)術(shù)互聯(lián)網(wǎng)網(wǎng)絡(luò)管理方案及其技術(shù)[J].西安電子科技大學(xué)學(xué)報(bào),2002,29(1):74-77.
[4]李晶晶,甘志春,沈建軍.戰(zhàn)術(shù)互聯(lián)網(wǎng)網(wǎng)絡(luò)管理模型[J].火力與指揮控制,2011(9):118-121.
[5]張先迪. 圖論及其應(yīng)用[M]. 北京:高等教育出版社,2005.
[6]嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學(xué)出版社,1992.