朱國奇
摘要:為了提高戰場態勢生成的效率,本文介紹了內存數據庫和戰場態勢的生成過程,提出了基于內存數據庫的生成戰場態勢的思想,實現并優化了內存數據庫的查詢和存儲。通過實驗證明了該方法具有較好的效果。
關鍵詞:戰場態勢;內存數據庫;態勢構建
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2018)02-0043-02
戰場態勢指主戰兵力涉及的作戰空間內敵方、我方、中立方兵力以及戰場環境當前狀態和發展變化趨勢。態指當前狀態,描述了兵力位置、運動參數和當前環境條件;勢指發展趨勢,描述了兵力隱含的作戰意圖、作戰能力、相互關系、可能的威脅程度和環境條件未來變化[1]。戰場態勢信息能夠對作戰環境進行更加全面的描述,利于指揮員更加快速、準確地做出作戰決策,提高決策的時效性。
戰場態勢的生成在提高信息化、聯合化和智能化的同時也面臨了信息量急劇增加、信息種類繁多,以及實時處理性強等新要求[2]。本文利用內存數據庫的快速存儲和查詢技術,實現戰場態勢的顯示過濾和排序等功能,很大程度地提高了態勢處理的時效性。
1 內存數據庫技術
內存數據庫是將數據放在內存中直接操作的數據庫[3]。由于內存的讀寫速度比硬盤要高出幾個數量及,所以把數據存儲在內存中比在硬盤中能夠很大程度上提高數據庫的訪問效率,提高數據庫性能。同時,內存數據庫拋棄了磁盤數據管理的傳統方式,基于全部數據都在內存中重新設計了體系結構,并且在數據緩存、快速算法、并行操作方面也進行了相應的改進,所以,數據處理速度比傳統數據庫的數據處理速度要快很多,一般都在10倍以上。內存數據庫的最大特點是其“主拷貝”或“工作版本”常駐內存,即活動事務只與實時內存數據庫的內存拷貝打交道[4]。
本文采用SQLite內存數據庫。SQLite是一個輕量級的關系數據庫,相對于傳統數據庫,SQLite具有更好的實時性、系統開銷小、底層控制能力強。SQLite能夠高效地利用有限資源,提高數據的存取速度,增強系統的安全性[5]。其特性包含:
(1)零配置。SQLite數據庫在使用前不需要安裝設置,不需要配置管理,不需要用戶權限。
(2)支持大多數的程序開發語言和操作系統,方便數據庫的移植和數據文件的自由共享。
(3)存儲數據量大。SQLite數據庫最大支持2TB大小的數據庫,字符串和BLOB類型的數據塊可達到2GB字節。
(4)支持絕大多數SQL-92標準的SQL命令,支持視圖,嵌套SQL,常用數據函數,支持事務處理等特性。
2 戰場態勢生成過程
在軍事應用中,戰場態勢是指戰場上敵、我兵力分布及戰場環境的當前狀況和變化發展趨勢。在指揮控制系統中,數據信息主要來源于各種偵查設備和探測平臺,以及其他或者上級指揮控制系統轉發的目標信息。由于在指揮控制中存在多種類型、多批次目標,所以在生成態勢前,一般需要對目標進行融合操作。因此,戰場態勢的生成過程一般分為信息獲取、信息傳輸、目標融合、態勢顯示和分發等環節。
信息獲取主要通過各種偵察、探測平臺與傳感器以及其他或者上級指揮控制系統轉發的目標信息。
信息傳輸指態勢信息獲取與分發的傳輸過程。當前戰場信息的傳輸主要通過網絡方式。
目標融合指對接收到的多源目標信息進行關聯、融合的處理過程。
態勢顯示與分發接收戰場態勢生成的態勢信息,在海圖和列表上同時進行顯示,為指揮員提供相應作戰態勢視圖。同時,把生成的態勢信息進行整理,根據外部接口的要求發送到其他情報中心。
3 基于內存數據庫的戰場態勢設計
戰場態勢的生成信息,需要在海圖和列表上同事顯示,為指戰員提供戰場態勢視圖,幫助指戰員做出決策。傳統的戰場態勢的顯示結構一般分為三層,數據接收層、數據處理層、態勢顯示層。由于本案例中的戰場態勢為某電子戰的戰場態勢,在電子戰系統中,由于目標種類繁多且目標數據量較大,并且用戶需求在列表顯示上存在大量的數據排序操作,在態勢顯示上同時存在大量的顯示過濾條件。為了滿足功能需求和實時性要求,本文采用基于內存數據庫的分層戰場態勢設計。
3.1 軟件系統設計
基于內存數據庫的戰場態勢軟件總共可分為4層,即數據接收層,數據處理層,數據庫層,戰場態勢顯示層。軟件架構示意圖如圖 1所示。
數據接收層任務為從物理鏈路接收數據,將數據傳遞給數據處理層進行處理。一般情況下數據接收層接收的為網絡數據,采用TCP或UDP協議。
數據處理層主要將數據接收層發來的數據按照借口協議進行解析,以及業務流程的處理。
內存數據庫主要存儲數據處理層處理好的、用于戰場態勢顯示的目標信息。該層結構在SQLite數據庫接口的基礎上,封裝一層更加方便程序調用的數據庫接口。
戰場態勢顯示層根據界面操作,從數據庫中排序查詢或者過濾查詢目標數據,根據不同的目標數據,在界面上分層繪制目標圖形和填寫數據表格。
3.2 數據庫設計和優化
根據偵查設備和上級指揮控制系統傳送的目標信息,依據不同的目標屬性建立不同的數據庫表格。在實際應用中,數據庫可以分為雷達輻射源數據庫、航跡數據庫、激光目標數據庫、通信輻射源數據庫等。內存數據庫與戰場態勢顯示的數據關系如圖2所示。
態勢顯示層通過調用數據庫接口,獲取目標數據,根據目標屬性,在界面上的相應位置上畫出圖標。
由于系統設計要求能夠具備處理瞬時大量數據的能力,因此,為了保證存取數據的效率,還需對數據庫的讀寫操作進行優化。
(1)使用事務。所謂“事務”,即對數據庫的一組SQL操作,這些數據庫操作要么全部執行,要么全部不執行。數據庫每插入或更新一條數據,默認先打開一個事務,然后執行操作,最后執行事務。這樣,在數據插入或更新的時候,就是頻繁的開啟和關閉事務。手動開啟事務,可以避免數據庫自身的頻繁開啟和關閉事務,提高效率。
(2)使用執行準備。通常情況下,數據庫每執行一句SQL語句,首先要對SQL語句進行“詞法分析”和“語法分析”,這里就會浪費掉大量時間。執行準備就是先將SQL語句編譯好,數據來時,直接執行操作就行,這樣就可以省去大量的時間。
3.3 實驗結果
戰場態勢界面刷新周期為1秒,數據量最大的表格在滿負荷目標的情況下,排序刷新平均所用時間為30ms;海圖態勢中數據量最大的目標在滿負荷的情況下,查詢刷新平均時間不大于10ms;數據量最大的目標滿負荷數據寫入平均耗時65ms;全部目標滿負荷寫入耗時小于100ms,讀取刷新時間也在100ms內。因此,完全符合系統設計要求。
4 結語
本文介紹了利用內存數據庫的快速存取、查詢的特點,設計了生成戰場態勢的方案,并通過改進優化,提高數據庫的存取速度和查詢效率,最后通過測試證明了方案的有效性。
參考文獻
[1]程曉雪.海戰場綜合態勢構建與同步方法[J].指揮信息系統與技術,2016,7(3):53-57.
[2]臧勤,李樹文,劉佳媛.一種基于數據庫的綜合態勢生成方法[J].雷達與對抗,2015,35(2):19-21.
[3]周游弋,董道國,金城.高并發集群監控系統中內存數據庫的設計與應用[J].計算機應用與軟件,2011,28(6):128-130.
[4]肖挺莉,李名杰.基于內存數據庫的數據快速處理航顯技術[J].中國民航大學學報,2012,30(5):23-26.
[5]王春艷,李帥.SQLite在飛艇監控中的應用與優化[J].雷達科學與技術,2014,12(6):609-612.