谷曉鵬,黃巖,裴晶晶
(1.91001部隊,北京100000;2.中國電子科技集團公司第二十八研究所,南京210007)
近年來,海洋船舶總數已超過100萬艘,如此龐大數量的船舶總數對海洋態勢感知技術提出新的要求,不僅可對較少目標的海洋態勢進行精準感知,還需要對百萬量級的目標進行同樣精準的感知。提出一種百萬級海上目標數據處理技術,從百萬級目標的數據存儲、傳輸以及展示三方面進行技術研究,解決包括動目標數據存儲、顯示數據存儲、目標繪制流程設計、聚合顯示中的后臺計算服務與前臺n對n架構設計、數據通信以及多臺位顯示數據并行查詢等關鍵問題,實現高效、準確、高幀率的百萬級目標數據處理解決方案。經過實用系統的驗證,滿足用戶的性能需求,海上實時目標處理、顯示性能處于國內領先地位。
態勢感知;數據存儲;數據聚合;數據傳輸;并行查詢
隨著建設海洋強國的國家戰略和“一帶一路”的發展需要,我國對海上目標的監視需求也逐漸從第一島鏈內擴展到全球海域。因此,海上目標數據用戶迫切需要海洋態勢感知系統具備全球涉海情報信息接入、處理、分析、分發及展現等能力。根據當前我國漁船、貨船、商船等民船數量,以及全球300總噸以上國際航行船舶數量情況,估算海洋船舶總數已超過100萬艘,海上活動船只數量40至50萬艘。因此,海上態勢感知能力作為實現國家海洋安全戰略目標的核心能力之一,要求具備百萬量級海上目標態勢處理與顯示能力。
百萬批態勢實時處理技術是大批量系統的關鍵需求,在傳統探測手段無法掌握的情況下,全球AIS信息的接入將作為海上態勢感知的重要情報來源,是海上環境信息的重要補充,無論是近海防御還是遠海防衛,實時的全球船舶信息都能夠數據使用方全面準確地掌握戰場環境,查漏補缺,減少誤判,具有極大的現實意義[1]。
其中,海量目標數據的查詢、傳輸與展示是百萬批態勢實時處理技術的關鍵點,實現高效高速的數據查詢傳輸以及高幀率的畫面展示是最終目標。經過調研,在數據管理方面,傳統顯示框架的做法是在前臺顯示專業數據模塊中處理報文,在前臺創建數據區以存儲各種動目標,但隨著動目標數量的增加,內存占用過高,很難支持百萬批目標的數據的存儲及組織管理。以下測試使用機器的主要配置為:Intel Xeon CPU E5-2623 v3@3.00GHz,內存16GB,顯卡NVIDIA Quadro M4000。測試數據見表1。

表1 傳統顯示框架測試數據
顯示方面,現在應用的某系統在無目標情況下,界面流暢,幀率穩定,但隨上顯目標數量增加,界面操作的流暢度會隨之降低,幀率也相應下降,影響海水動畫效果及目標顯示效果。測試數據如表2所示。

表2 當前系統目標數量與刷新幀率測試數據
綜上,為突破技術瓶頸,搶占海上態勢感知能力制高點,本文針對海量數據存儲、傳輸與展示三項技術關鍵點進行研究,以期實現二三維一體化百萬批目標的數據處理,預計達到的具體指標如下:
(1)在數據存儲方面,具備百萬批目標PB級歷史數據和實時數據的高效存儲管理能力;
(2)在數據處理能力方面,百萬批實時目標報文的處理和入庫的平均時間在1.5分鐘內;
(3)在數據服務查詢方面,100萬目標的查詢效率在2s以內,15萬目標的查詢效率在1s以內,單個目標的查詢效率在1ms以內;
(4)在顯示方面,Windows環境聚合目標視角下平均幀率不低于55幀,簡易目標視角下平均幀率不低于45幀,模型視角下平均幀率不低于35幀;
(5)在人機交互方面,任意視角下,具備視口范圍內目標的0.5s內快速上圖的能力,不出現操作卡頓、切換延遲的現象。
將顯示數據模塊中的動目標管理遷移到后臺服務器的技術方案[2],整體架構圖如圖1所示,新建的顯示后臺處理軟件應當部署在后臺服務器上,與后臺服務器共用一份數據存儲,即內存數據庫,顯示后臺處理模塊應具備以下四個功能。

圖1 整體架構圖
(1)目標檢索:通過后臺提供的接口對內存數據庫進行訪問,獲取目標列表,如圖2所示。

圖2 目標檢索流程圖
(2)更新通知:當內存數據庫中有目標增刪改時,能及時通知到顯示后臺處理模塊進行處理,如圖3所示。

圖3 更新通知示意圖
(3)目標處理:目標處理是顯示后臺處理模塊的核心單元,這一單元的輸入是內存數據庫送來的目標列表,輸出的僅僅是具有顯示信息的圖元列表,目標處理會根據前臺顯示軟件中三維數字地球的當前區域和比例尺來生成當前要顯示到前臺的圖元類型等信息,在小比例尺下還應對目標進行聚合處理,通過聚合算法減少前臺顯示的目標個數,保證前臺顯示幀率,目標處理流程圖如圖4所示。
(4)顯示內容推送:顯示內容推送主要負責將目標處理模塊生成的圖元信息傳遞給前臺,前臺只負責創建或更新圖元,不直接處理動目標。
三維目標顯示模式按比例尺劃可以分為三種顯示方式:
(1)小比例尺,相機高度高,目標以聚合點形式顯示,假定聚合點上限1w點。例如,單屏分辨率為2560*1440,假設單點占位8*8~16*16像素,屏幕內均勻鋪滿聚合點時,點數為2560*1440/(8*8)=57600~2560*1440/(16*16)=14400,在聚合點鋪滿屏幕25%的情況下,聚合點數為14400~3600,所以預估1w點應該可以滿足顯示需求。

圖4 目標處理流程圖

(3)大比例尺,目標以模型或貼圖形式顯示,此時屏幕內目標數量應遠小于前兩種情況,通信數據量需求也應更小。前臺向后臺的請求主要為當前顯示的經緯度范圍,前臺向后臺的通信壓力應該很小,而后臺向前臺發送的數據主要為目標顯示數據,按照上述三種情況來考慮,如果后臺向前臺的數據推送可以支持8M/s的速率,應可以滿足前臺顯示刷新需求。
(1)小比例尺情況
流程1如圖5所示;流程2如圖6所示。

圖5 小比例尺情況(流程1)

圖6 小比例尺情況(流程2)
(2)中/大比例尺情況
當前比例尺顯示的目標為全球局部范圍內的目標,適用小比例尺流程1,小比例尺流程2每次處理全球數據的方式顯然不適合當前情況。具體流程如圖7所示。

圖7 中/大比例尺情況
動目標數據全集,主要存儲于相應的后臺數據存儲服務器。需要具體考慮的問題主要包括:數據的具體組織形式與存儲形式,數據索引,數據檢索方式以及檢索的使用方式等[3]。關系示意圖如圖8所示。顯示數據存儲,目標顯示數據可以分為默認顯示樣式數據與指定目標的自定義顯示樣式數據,其中:

圖8 動目標數據存儲
(1)對于多數未單獨指定樣式的目標,繪制模塊應調用全局的默認目標樣式進行繪制,包括目標類型、大小、顏色、位置等,全局默認樣式數據量小,可以保存在各前臺臺位中供繪制模塊使用。
(2)對于指定目標樣式,當前視圖范圍內目標存在指定樣式時,可先將目標顯示數據保存在本臺位,當視圖范圍發生變化時,對不顯示的目標,可按時間段劃分,將一段時間內都未使用的目標顯示數據上傳至服務器目標顯示數據集中存儲。如圖9所示為顯示數據存儲。

圖9 顯示數據存儲
(3)繪制模塊進行目標繪制時,可按批號先查詢本地是否有已存的顯示數據,再查詢服務器目標顯示數據集中是否有對應數據,如果有則按指定樣式繪制,沒有則按默認樣式繪制。繪制流程如圖10所示。

圖10 目標繪制流程
為了提高態勢顯示容量,采用聚合顯示的方法,通過聚合點來表示百萬批目標在全球的分布情況,簡單有效地展現全球目標態勢,減輕前臺顯示壓力[4]。
本文采用后臺計算服務與前臺n對n的架構,全局共享計算成果。其具體流程如下:
(1)顯示后臺進程實時聚合計算全球目標,全球目標按經緯度網格進行劃分,將聚合計算任務均勻分配給部署在服務器集群中的多個顯示預處理計算服務體進行并行計算。
(2)聚合結果按照比例尺段進行多級劃分。
(3)聚合計算過程分次循環進行,當本次全球多比例尺段的聚合解算全部結束后,服務器端保存當次計算結果,以供所有前臺調用上顯。然后后臺獲取實時全球目標數據進行下一輪解算,當下一輪解算結束后,替換當前結果,再進入下一輪。其具體的架構圖如圖11所示。

圖11 后臺計算服務與前臺n對n架構
在數據通信傳輸方面,最常用的方式是一段一段地單獨發送報文,最終接收到全部報文;但是該方案效率較低,對實時性要求較高的百萬批次目標的實時顯控來說需要進一步提升效率[5]。
根據1.2小節可知,8M/s的數據傳輸速率需求對通信方式的要求較為嚴格,具有一定的挑戰性,不解決此問題就意味著各種信息交互的卡頓,嚴重影響系統性能,導致功能無法實現。
為解決這一問題,本文采用將一條一條報文合并為一批,并一次全部發送完畢的方式進行報文發送。該方式經過試驗可大幅提升數據通信傳輸的效率,很好解決了數據傳輸效率較低問題。
多臺位情況下,如果各臺位均以簡易樣式顯示目標,則存在多臺位同時向后臺請求目標列表的情況,且查詢并發量隨臺位數量增加而線性增加[6]。
考慮后臺顯示數據服務/進程與前臺臺位n對n的情況,后臺顯示數據服務/進程需要提供的服務有:
(1)定時向內存庫查詢目標列表,定時間隔暫定1S(情報接收的時間粒度是秒級),查詢條件是當前對應前臺臺位的視圖經緯度范圍。
(2)在服務器端保存一份目標顯示數據集,保存前臺曾指定過樣式(如目標顏色大小指定、位置、顯隱等)且當前不顯示,一段時間在前臺未使用而以后可能會使用的目標數據,該數據集也可考慮使用內存數據庫組織。在后臺保存顯示數據集的原因是:前臺漫游縮放導致當前視圖范圍內顯示的目標集在不斷變化,對目標的干預操作導致部分目標不按默認樣式顯示,而指定過樣式的目標數量會隨操作量的增加而增加,當這一目標數量超過前臺負荷時,前臺的存儲及查詢等均會遭遇性能瓶頸,以至于影響前臺顯示進程的顯示與繪制效果,所以前臺可定時向后臺備份當前已存儲且并不在使用的目標顯示數據,當下次再使用時再從服務器查詢或提前緩存[7]。其結構示意圖如圖12、13所示。

圖12 顯示數據集流向圖

圖13 顯示數據并發查詢流程圖
本文從海量數據的存儲、傳輸與展示三個方向入手,設計了整體的流程架構,并針對數據具體的存儲方式、目標聚合、數據通信以及多臺位顯示數據并行查詢等四個關鍵問題提出了具體而高效的解決方案。經過實驗驗證,采用本文方案后的原型系統:
(1)具備百萬批目標PB級歷史數據的高效存儲管理能力,單個目標單月歷史數據的查詢速度在1.5s以內;具備百萬目標實時數據的高效處理與存儲能力,1.5分鐘可實現100萬批實時目標報文的處理和入庫,100萬目標的查詢效率在2s以內,15萬目標的查詢效率在1s以內,單個目標的查詢效率在1ms以內。
(2)具備全球百萬量級的實時渲染能力,在Win?dows環境下(CPU:Intel i7-4790,內存:8G,顯卡:NVID?IA GTX960,操作系統:Windows 7),聚合目標視角下平均幀率不低于55幀,簡易目標視角下平均幀率不低于45幀,模型視角下平均幀率不低于35幀。相比萬級目標使用的技術,優化后平均幀率分別提升350%、250%、150%以上;
(3)在任意視角下,具備視口范圍內目標的0.5s內快速上圖的能力,不出現操作卡頓、切換延遲的現象;
(4)系統可穩定運行7×24小時。
同時,經過實用系統的驗證,滿足用戶的性能需求,實時目標數據處理、顯示性能處于國內領先地位。該項技術能夠支撐百萬級海量目標態勢處理與展示。