◆鐘原 鄭文龍 李祥 王希進
基于共享內存管理的海量AIS目標態勢顯示系統
◆鐘原 鄭文龍 李祥 王希進
(中國電子科技集團公司第二十八研究所 江蘇 210007)
為了突破指揮自動化系統在海量AIS目標態勢處理與顯示方面的性能瓶頸,本文介紹了一種基于共享內存管理的海量AIS目標態勢顯示系統,系統基于共享內存管理、按需請求和局部更新、LOD分級顯示的理念,從大容量態勢目標的信息特征出發,以共享內存數據庫、顯示處理服務化為技術基礎,結合基于空間網格的數據動態調度、目標聚合計算以及客戶端分級顯示策略等技術,實現了海量AIS目標的高性能態勢顯示。
AIS;服務化;內存數據庫;分級顯示
船舶自動識別系統(Automatic Identification System,簡稱AIS)是一種可靠的信息來源,作為目標識別的輔助信息,可以提高識別的準確性。AIS作用距離遠且準確性高,能實時提供信息,不受目標變換影響,不受目標雜波干擾影響,可見障礙物后的目標,還可提供目標的航行計劃等詳細信息。作為海上航行的重要的信息來源,引入AIS數據并集成于指揮自動化系統中具有現實意義[1]。
據統計,全球海洋船舶總數已超過100萬艘,海上活動船只數量40萬至50萬艘,正常情況下船舶每隔2-360s就會廣播一次AIS信息,因此AIS目標數據具有海量性、頻繁更新性等特征[2]。
海量的AIS目標數據給傳統態勢顯示系統帶來了巨大的壓力。態勢顯示處理方面,AIS目標數據實時更新將帶來巨大的內存開銷,將目標全部載入內存的方法會引發嚴重的計算機資源浪費;信息傳遞方面,通過實驗驗證,現行網絡帶寬很難滿足海量AIS目標全要素信息實時傳遞的需求,會出現嚴重的報文丟失;態勢顯示方面,即使海量AIS目標能夠全部上圖顯示,在沒有進行聚合顯示的情況下,大量目標重疊將大大降低態勢信息的可讀性。
本文介紹了一種基于共享內存管理的海量AIS目標態勢顯示系統,從態勢目標的信息特征出發,以目標空間信息網格為技術基礎,結合服務端的分布式數據存儲[3]、實時內存數據庫[4]、數據服務化請求、聚合計算以及客戶端的目標聚合顯示、動態調度技術,采用局部更新、分級分塊、按需請求的理念,重點研究基于態勢處理服務化、目標分塊組織與調度、目標動態聚合等技術,實現海量AIS目標的高性能調度與顯示,形成一套全新的二三維態勢目標高效顯示的解決方案
本文介紹的態勢顯示系統在體系結構上主要分為:目標信息存儲管理層、目標信息訪問服務層、目標信息二三維顯示層。
目標信息存儲管理層,主要是對AIS態勢目標的數據進行存儲與管理的模塊,包括歷史目標數據、實時目標數據以及目標編碼信息。其中歷史目標數據采用分布式存儲的方式,支持不低于5年歷史數據的存儲與管理,提供隨即查詢功能;實時海情數據由內存數據庫進行存儲管理,通過空間網格編碼的方式,對海量目標進行結構化存儲,提供快速查詢及分塊查詢功能。
目標信息訪問傳輸層,主要是對AIS態勢目標信息進行數據傳輸與訪問請求應答的模塊,包括目標聚合信息、標號信息和模型信息幾類數據的訪問與傳輸。提供數據的服務化訪問接口,席位端可以通過數據請求接口,對海里各類數據進行請求訪問,同時客戶端可以通過傳輸接口向席位端進行數據分發。
目標信息二三維顯示層,主要是對海量態勢目標進行分級顯示和調度的模塊,主要包括聚合點、符號、模型等三類圖形對象進行顯示。通過GPU實例化技術[6]和幾何著色器技術的運行,對CPU資源與GPU資源進行負載均衡,降低CPU計算壓力,同時結合目標動態調度策略,減少計算資源的消耗,提高二三維場景的渲染效率,提升用戶的操作體驗。

圖1 總體設計方案圖
態勢服務化的基本思路是讓客戶端“按需定制”[5]目標數據、充分利用內存數據庫性能優勢、減少數據冗余以及利用服務器的計算資源。按需定制指前臺軟件僅向服務端請求視口范圍內的數據,并限制請求目標數量。再通過情報處理共享內存庫,既能大量減少數據冗余、又能利用內存數據庫高性能數據管理能力;最后利用服務器的高性能計算能力,將運算量較大的目標數據計算交給服務端處理,再將顯示數據計算結果打包發送到客戶端。目標態勢服務化架構圖如2。
態勢顯示服務端,具備目標檢索、目標顯示信息生成、顯示內容推送三大功能。
“服務端”收到“客戶端”的目標顯示信息請求時,通過數據查詢服務模塊對內存數據庫進行訪問,獲取目標信息列表。目標顯示處理模塊將目標信息列表處理轉換為顯示信息列表,然后打包傳輸給客戶端軟件。
客戶端具備數據請求和目標繪制兩大功能。當二三維視圖發生變化,或者定時器超時,“客戶端”向“顯示服務端”發送顯示數據請求,收到顯示數據后進行繪制處理。

圖2 海量AIS目標態勢服務化架構圖
實時AIS目標數據由內存數據庫進行存儲管理,通過空間網格編碼的方式,對海量目標進行結構化存儲,提供快速查詢及分塊查詢功能。
系統采用了基于高性能TimesTen內存數據庫目標數據管理技術,優化改進數據存儲方式,實現目標高速實時存儲,支持對目標信息“微秒”級的查詢和“十微秒”級的修改[4]。
數據組織方面,系統借助規則經緯度網格結構組織空間目標,以提高空間查詢的速度和效率。建立網格和目標的雙向映射關系,利用規則網格結構組織目標,在進行空間查詢時先對網格進行篩選,再對單個空間目標進一步篩選,從而使大量與特定空間查詢無關的目標對象被排除,減少了小目標的無效計算,提高了空間操作的效率。
目標調度方面,將全部目標載入客戶端內存的簡單管理方式無法滿足海量AIS目標的實時調度。每個圖形對象在內存中占有一定的空間,海量數據將造成大量內存空間的占用。在目標圖形渲染階段,目標的可見判斷、圖形構建、逐幀更新都屬于CPU密集型計算,海量目標的計算將給CPU帶來極大的工作負荷,嚴重影響系統操作的流暢度。一種優化方式為僅管理當前可見的目標對象,視口范圍向服務端請求相關的目標顯示數據。
為進一步提升海量AIS目標的調度效率,系統使用對象池策略優化對象的頻繁創建與銷毀。對象池策略的引入打破了態勢目標與圖形對象的一一對應關系,當某個目標需要顯示某種圖形時,就向該類圖形的“對象池”申請可用對象,不再需要時則返還并標記為可用狀態,最大程度上減少了對象的創建與銷毀過程。
目標數據調度方法的流程如圖3。

圖3 目標數據調度流程
在沒有進行聚合顯示的情況下,海量AIS目標如果全部上圖顯示,大量目標重疊將大大降低態勢信息的可讀性。
本系統采用了基于LOD策略[8]的目標多級態勢展現方法,在小比例尺地圖尺度下對目標態勢進行聚合展現,通過圖元尺寸及顏色漸變等可視化技術,宏觀的展現目標的聚集態勢和全球分布情況;在中大比例尺地圖尺度下,逐步對目標進行解聚,分別使用圖標、標牌、模型三種圖形對目標的態勢信息進行表達[7]。此外,系統也支持目標的分層顯示模式,如按大中小、水面水下、軍艦民船過濾、不同國家的等方式進行分層,達到減少不同尺度下地圖上的目標數量的目的。
通過目標多級態勢展現方法,用戶既能掌握全球AIS目標態勢,又能夠快速查看海量AIS目標中任意目標的詳細信息。
目標聚合顯示是突破海量目標態勢顯示瓶頸的重要手段,本系統采用了基于動態空間“四叉樹”的聚合點計算方法。該方法以空間格網生長的形式,遞歸對空間范圍進行分區,當分區內目標數量小于設定閾值或分區面積小于設定閾值時停止分區,并計算分區內所有目標的幾何中心,在此形成聚合點。
同時系統采用負載均衡的處理架構,動態將海量AIS目標的聚合點計算壓力,平均分配給多個處理器核心線程進行計算。這樣并發式的多線程運算方式大大縮短了聚合點的計算周期,使得客戶端聚合點的更新頻率加快,提高了目標聚合顯示的實時性和準確性。
聚合算法的處理流程如圖4。

圖4 集合算法處理流程
通過動態地理信息網格劃分的方法,一方面使得聚合計算結果更加接近自然分布、達到良好的視覺效果;另一方面使得聚合算法本身更加簡潔、高效;結合多線程池技術,可使得該算法在服務計算資源有限的前提下,盡可能充分的利用計算資源、盡可能提高聚合點更新頻率。

圖5 基于地理網格信息的目標聚合示意圖
本文介紹了一種基于共享內存管理的海量AIS目標態勢顯示系統。系統采用局部更新、分級顯示、按需請求的理念,從態勢目標的信息特征出發,以目標空間信息網格為技術基礎,結合實時內存數據庫、顯示處理服務化、聚合計算以及目標聚合顯示、動態調度等技術,實現海量AIS目標的高性能顯示。
[1]田偉,等:指揮自動化系統引入AIS信息設計[J]. 指揮信息系統與技術,2011,2(3):64-67.
[2]鄭義成,等. 基于ElasticSearch的海量AIS數據存儲方法[J]. 指揮信息系統與技術,2016,7(3):76-81.
[3]趙瑜,李曉東,張新建. 基于元數據的分布式數據統一訪問計數[J]. 指揮信息系統與技術,2019,10(4):33-37.
[4][張菁. 大規模分布式糾纏碼存儲系統中的高效數據傳輸技術研究[D]. 國防科技大學,2016.
[5]金紫衡,姚芬,王薇. 基于訂購分發的數據讀取解決方案[J]. 指揮信息系統與技術,2019,10(2):93-97,95.
[6]占偉偉,李坪澤,王輝,等;自主可控環境下三維海量態勢顯示優化方法[J]. 指揮信息系統與技術,2019,10(2):80-84.
[7]閆雪飛,李新明,王壽彪,王曉龍,劉東,等. 基于非一致聚合解聚的體系作戰仿真理論與實驗研究[J]. 中國電子科學研究院學報,2017,02(12):168-175,170.
[8]王恂鈞.基于Vega的大地形視景仿真[D].中國電子科技集團第二十八研究所C4ISR技術重點試驗室.