谷曉鵬,黃巖,裴晶晶
(1.91001部隊(duì),北京100000;2.中國(guó)電子科技集團(tuán)公司第二十八研究所,南京210007)
近年來(lái),海洋船舶總數(shù)已超過(guò)100萬(wàn)艘,如此龐大數(shù)量的船舶總數(shù)對(duì)海洋態(tài)勢(shì)感知技術(shù)提出新的要求,不僅可對(duì)較少目標(biāo)的海洋態(tài)勢(shì)進(jìn)行精準(zhǔn)感知,還需要對(duì)百萬(wàn)量級(jí)的目標(biāo)進(jìn)行同樣精準(zhǔn)的感知。提出一種百萬(wàn)級(jí)海上目標(biāo)數(shù)據(jù)處理技術(shù),從百萬(wàn)級(jí)目標(biāo)的數(shù)據(jù)存儲(chǔ)、傳輸以及展示三方面進(jìn)行技術(shù)研究,解決包括動(dòng)目標(biāo)數(shù)據(jù)存儲(chǔ)、顯示數(shù)據(jù)存儲(chǔ)、目標(biāo)繪制流程設(shè)計(jì)、聚合顯示中的后臺(tái)計(jì)算服務(wù)與前臺(tái)n對(duì)n架構(gòu)設(shè)計(jì)、數(shù)據(jù)通信以及多臺(tái)位顯示數(shù)據(jù)并行查詢(xún)等關(guān)鍵問(wèn)題,實(shí)現(xiàn)高效、準(zhǔn)確、高幀率的百萬(wàn)級(jí)目標(biāo)數(shù)據(jù)處理解決方案。經(jīng)過(guò)實(shí)用系統(tǒng)的驗(yàn)證,滿(mǎn)足用戶(hù)的性能需求,海上實(shí)時(shí)目標(biāo)處理、顯示性能處于國(guó)內(nèi)領(lǐng)先地位。
態(tài)勢(shì)感知;數(shù)據(jù)存儲(chǔ);數(shù)據(jù)聚合;數(shù)據(jù)傳輸;并行查詢(xún)
隨著建設(shè)海洋強(qiáng)國(guó)的國(guó)家戰(zhàn)略和“一帶一路”的發(fā)展需要,我國(guó)對(duì)海上目標(biāo)的監(jiān)視需求也逐漸從第一島鏈內(nèi)擴(kuò)展到全球海域。因此,海上目標(biāo)數(shù)據(jù)用戶(hù)迫切需要海洋態(tài)勢(shì)感知系統(tǒng)具備全球涉海情報(bào)信息接入、處理、分析、分發(fā)及展現(xiàn)等能力。根據(jù)當(dāng)前我國(guó)漁船、貨船、商船等民船數(shù)量,以及全球300總噸以上國(guó)際航行船舶數(shù)量情況,估算海洋船舶總數(shù)已超過(guò)100萬(wàn)艘,海上活動(dòng)船只數(shù)量40至50萬(wàn)艘。因此,海上態(tài)勢(shì)感知能力作為實(shí)現(xiàn)國(guó)家海洋安全戰(zhàn)略目標(biāo)的核心能力之一,要求具備百萬(wàn)量級(jí)海上目標(biāo)態(tài)勢(shì)處理與顯示能力。
百萬(wàn)批態(tài)勢(shì)實(shí)時(shí)處理技術(shù)是大批量系統(tǒng)的關(guān)鍵需求,在傳統(tǒng)探測(cè)手段無(wú)法掌握的情況下,全球AIS信息的接入將作為海上態(tài)勢(shì)感知的重要情報(bào)來(lái)源,是海上環(huán)境信息的重要補(bǔ)充,無(wú)論是近海防御還是遠(yuǎn)海防衛(wèi),實(shí)時(shí)的全球船舶信息都能夠數(shù)據(jù)使用方全面準(zhǔn)確地掌握戰(zhàn)場(chǎng)環(huán)境,查漏補(bǔ)缺,減少誤判,具有極大的現(xiàn)實(shí)意義[1]。
其中,海量目標(biāo)數(shù)據(jù)的查詢(xún)、傳輸與展示是百萬(wàn)批態(tài)勢(shì)實(shí)時(shí)處理技術(shù)的關(guān)鍵點(diǎn),實(shí)現(xiàn)高效高速的數(shù)據(jù)查詢(xún)傳輸以及高幀率的畫(huà)面展示是最終目標(biāo)。經(jīng)過(guò)調(diào)研,在數(shù)據(jù)管理方面,傳統(tǒng)顯示框架的做法是在前臺(tái)顯示專(zhuān)業(yè)數(shù)據(jù)模塊中處理報(bào)文,在前臺(tái)創(chuàng)建數(shù)據(jù)區(qū)以存儲(chǔ)各種動(dòng)目標(biāo),但隨著動(dòng)目標(biāo)數(shù)量的增加,內(nèi)存占用過(guò)高,很難支持百萬(wàn)批目標(biāo)的數(shù)據(jù)的存儲(chǔ)及組織管理。以下測(cè)試使用機(jī)器的主要配置為:Intel Xeon CPU E5-2623 v3@3.00GHz,內(nèi)存16GB,顯卡NVIDIA Quadro M4000。測(cè)試數(shù)據(jù)見(jiàn)表1。
表1 傳統(tǒng)顯示框架測(cè)試數(shù)據(jù)
顯示方面,現(xiàn)在應(yīng)用的某系統(tǒng)在無(wú)目標(biāo)情況下,界面流暢,幀率穩(wěn)定,但隨上顯目標(biāo)數(shù)量增加,界面操作的流暢度會(huì)隨之降低,幀率也相應(yīng)下降,影響海水動(dòng)畫(huà)效果及目標(biāo)顯示效果。測(cè)試數(shù)據(jù)如表2所示。
表2 當(dāng)前系統(tǒng)目標(biāo)數(shù)量與刷新幀率測(cè)試數(shù)據(jù)
綜上,為突破技術(shù)瓶頸,搶占海上態(tài)勢(shì)感知能力制高點(diǎn),本文針對(duì)海量數(shù)據(jù)存儲(chǔ)、傳輸與展示三項(xiàng)技術(shù)關(guān)鍵點(diǎn)進(jìn)行研究,以期實(shí)現(xiàn)二三維一體化百萬(wàn)批目標(biāo)的數(shù)據(jù)處理,預(yù)計(jì)達(dá)到的具體指標(biāo)如下:
(1)在數(shù)據(jù)存儲(chǔ)方面,具備百萬(wàn)批目標(biāo)PB級(jí)歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)的高效存儲(chǔ)管理能力;
(2)在數(shù)據(jù)處理能力方面,百萬(wàn)批實(shí)時(shí)目標(biāo)報(bào)文的處理和入庫(kù)的平均時(shí)間在1.5分鐘內(nèi);
(3)在數(shù)據(jù)服務(wù)查詢(xún)方面,100萬(wàn)目標(biāo)的查詢(xún)效率在2s以?xún)?nèi),15萬(wàn)目標(biāo)的查詢(xún)效率在1s以?xún)?nèi),單個(gè)目標(biāo)的查詢(xún)效率在1ms以?xún)?nèi);
(4)在顯示方面,Windows環(huán)境聚合目標(biāo)視角下平均幀率不低于55幀,簡(jiǎn)易目標(biāo)視角下平均幀率不低于45幀,模型視角下平均幀率不低于35幀;
(5)在人機(jī)交互方面,任意視角下,具備視口范圍內(nèi)目標(biāo)的0.5s內(nèi)快速上圖的能力,不出現(xiàn)操作卡頓、切換延遲的現(xiàn)象。
將顯示數(shù)據(jù)模塊中的動(dòng)目標(biāo)管理遷移到后臺(tái)服務(wù)器的技術(shù)方案[2],整體架構(gòu)圖如圖1所示,新建的顯示后臺(tái)處理軟件應(yīng)當(dāng)部署在后臺(tái)服務(wù)器上,與后臺(tái)服務(wù)器共用一份數(shù)據(jù)存儲(chǔ),即內(nèi)存數(shù)據(jù)庫(kù),顯示后臺(tái)處理模塊應(yīng)具備以下四個(gè)功能。
圖1 整體架構(gòu)圖
(1)目標(biāo)檢索:通過(guò)后臺(tái)提供的接口對(duì)內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行訪(fǎng)問(wèn),獲取目標(biāo)列表,如圖2所示。
圖2 目標(biāo)檢索流程圖
(2)更新通知:當(dāng)內(nèi)存數(shù)據(jù)庫(kù)中有目標(biāo)增刪改時(shí),能及時(shí)通知到顯示后臺(tái)處理模塊進(jìn)行處理,如圖3所示。
圖3 更新通知示意圖
(3)目標(biāo)處理:目標(biāo)處理是顯示后臺(tái)處理模塊的核心單元,這一單元的輸入是內(nèi)存數(shù)據(jù)庫(kù)送來(lái)的目標(biāo)列表,輸出的僅僅是具有顯示信息的圖元列表,目標(biāo)處理會(huì)根據(jù)前臺(tái)顯示軟件中三維數(shù)字地球的當(dāng)前區(qū)域和比例尺來(lái)生成當(dāng)前要顯示到前臺(tái)的圖元類(lèi)型等信息,在小比例尺下還應(yīng)對(duì)目標(biāo)進(jìn)行聚合處理,通過(guò)聚合算法減少前臺(tái)顯示的目標(biāo)個(gè)數(shù),保證前臺(tái)顯示幀率,目標(biāo)處理流程圖如圖4所示。
(4)顯示內(nèi)容推送:顯示內(nèi)容推送主要負(fù)責(zé)將目標(biāo)處理模塊生成的圖元信息傳遞給前臺(tái),前臺(tái)只負(fù)責(zé)創(chuàng)建或更新圖元,不直接處理動(dòng)目標(biāo)。
三維目標(biāo)顯示模式按比例尺劃可以分為三種顯示方式:
(1)小比例尺,相機(jī)高度高,目標(biāo)以聚合點(diǎn)形式顯示,假定聚合點(diǎn)上限1w點(diǎn)。例如,單屏分辨率為2560*1440,假設(shè)單點(diǎn)占位8*8~16*16像素,屏幕內(nèi)均勻鋪滿(mǎn)聚合點(diǎn)時(shí),點(diǎn)數(shù)為2560*1440/(8*8)=57600~2560*1440/(16*16)=14400,在聚合點(diǎn)鋪滿(mǎn)屏幕25%的情況下,聚合點(diǎn)數(shù)為14400~3600,所以預(yù)估1w點(diǎn)應(yīng)該可以滿(mǎn)足顯示需求。
圖4 目標(biāo)處理流程圖
(3)大比例尺,目標(biāo)以模型或貼圖形式顯示,此時(shí)屏幕內(nèi)目標(biāo)數(shù)量應(yīng)遠(yuǎn)小于前兩種情況,通信數(shù)據(jù)量需求也應(yīng)更小。前臺(tái)向后臺(tái)的請(qǐng)求主要為當(dāng)前顯示的經(jīng)緯度范圍,前臺(tái)向后臺(tái)的通信壓力應(yīng)該很小,而后臺(tái)向前臺(tái)發(fā)送的數(shù)據(jù)主要為目標(biāo)顯示數(shù)據(jù),按照上述三種情況來(lái)考慮,如果后臺(tái)向前臺(tái)的數(shù)據(jù)推送可以支持8M/s的速率,應(yīng)可以滿(mǎn)足前臺(tái)顯示刷新需求。
(1)小比例尺情況
流程1如圖5所示;流程2如圖6所示。
圖5 小比例尺情況(流程1)
圖6 小比例尺情況(流程2)
(2)中/大比例尺情況
當(dāng)前比例尺顯示的目標(biāo)為全球局部范圍內(nèi)的目標(biāo),適用小比例尺流程1,小比例尺流程2每次處理全球數(shù)據(jù)的方式顯然不適合當(dāng)前情況。具體流程如圖7所示。
圖7 中/大比例尺情況
動(dòng)目標(biāo)數(shù)據(jù)全集,主要存儲(chǔ)于相應(yīng)的后臺(tái)數(shù)據(jù)存儲(chǔ)服務(wù)器。需要具體考慮的問(wèn)題主要包括:數(shù)據(jù)的具體組織形式與存儲(chǔ)形式,數(shù)據(jù)索引,數(shù)據(jù)檢索方式以及檢索的使用方式等[3]。關(guān)系示意圖如圖8所示。顯示數(shù)據(jù)存儲(chǔ),目標(biāo)顯示數(shù)據(jù)可以分為默認(rèn)顯示樣式數(shù)據(jù)與指定目標(biāo)的自定義顯示樣式數(shù)據(jù),其中:
圖8 動(dòng)目標(biāo)數(shù)據(jù)存儲(chǔ)
(1)對(duì)于多數(shù)未單獨(dú)指定樣式的目標(biāo),繪制模塊應(yīng)調(diào)用全局的默認(rèn)目標(biāo)樣式進(jìn)行繪制,包括目標(biāo)類(lèi)型、大小、顏色、位置等,全局默認(rèn)樣式數(shù)據(jù)量小,可以保存在各前臺(tái)臺(tái)位中供繪制模塊使用。
(2)對(duì)于指定目標(biāo)樣式,當(dāng)前視圖范圍內(nèi)目標(biāo)存在指定樣式時(shí),可先將目標(biāo)顯示數(shù)據(jù)保存在本臺(tái)位,當(dāng)視圖范圍發(fā)生變化時(shí),對(duì)不顯示的目標(biāo),可按時(shí)間段劃分,將一段時(shí)間內(nèi)都未使用的目標(biāo)顯示數(shù)據(jù)上傳至服務(wù)器目標(biāo)顯示數(shù)據(jù)集中存儲(chǔ)。如圖9所示為顯示數(shù)據(jù)存儲(chǔ)。
圖9 顯示數(shù)據(jù)存儲(chǔ)
(3)繪制模塊進(jìn)行目標(biāo)繪制時(shí),可按批號(hào)先查詢(xún)本地是否有已存的顯示數(shù)據(jù),再查詢(xún)服務(wù)器目標(biāo)顯示數(shù)據(jù)集中是否有對(duì)應(yīng)數(shù)據(jù),如果有則按指定樣式繪制,沒(méi)有則按默認(rèn)樣式繪制。繪制流程如圖10所示。
圖10 目標(biāo)繪制流程
為了提高態(tài)勢(shì)顯示容量,采用聚合顯示的方法,通過(guò)聚合點(diǎn)來(lái)表示百萬(wàn)批目標(biāo)在全球的分布情況,簡(jiǎn)單有效地展現(xiàn)全球目標(biāo)態(tài)勢(shì),減輕前臺(tái)顯示壓力[4]。
本文采用后臺(tái)計(jì)算服務(wù)與前臺(tái)n對(duì)n的架構(gòu),全局共享計(jì)算成果。其具體流程如下:
(1)顯示后臺(tái)進(jìn)程實(shí)時(shí)聚合計(jì)算全球目標(biāo),全球目標(biāo)按經(jīng)緯度網(wǎng)格進(jìn)行劃分,將聚合計(jì)算任務(wù)均勻分配給部署在服務(wù)器集群中的多個(gè)顯示預(yù)處理計(jì)算服務(wù)體進(jìn)行并行計(jì)算。
(2)聚合結(jié)果按照比例尺段進(jìn)行多級(jí)劃分。
(3)聚合計(jì)算過(guò)程分次循環(huán)進(jìn)行,當(dāng)本次全球多比例尺段的聚合解算全部結(jié)束后,服務(wù)器端保存當(dāng)次計(jì)算結(jié)果,以供所有前臺(tái)調(diào)用上顯。然后后臺(tái)獲取實(shí)時(shí)全球目標(biāo)數(shù)據(jù)進(jìn)行下一輪解算,當(dāng)下一輪解算結(jié)束后,替換當(dāng)前結(jié)果,再進(jìn)入下一輪。其具體的架構(gòu)圖如圖11所示。
圖11 后臺(tái)計(jì)算服務(wù)與前臺(tái)n對(duì)n架構(gòu)
在數(shù)據(jù)通信傳輸方面,最常用的方式是一段一段地單獨(dú)發(fā)送報(bào)文,最終接收到全部報(bào)文;但是該方案效率較低,對(duì)實(shí)時(shí)性要求較高的百萬(wàn)批次目標(biāo)的實(shí)時(shí)顯控來(lái)說(shuō)需要進(jìn)一步提升效率[5]。
根據(jù)1.2小節(jié)可知,8M/s的數(shù)據(jù)傳輸速率需求對(duì)通信方式的要求較為嚴(yán)格,具有一定的挑戰(zhàn)性,不解決此問(wèn)題就意味著各種信息交互的卡頓,嚴(yán)重影響系統(tǒng)性能,導(dǎo)致功能無(wú)法實(shí)現(xiàn)。
為解決這一問(wèn)題,本文采用將一條一條報(bào)文合并為一批,并一次全部發(fā)送完畢的方式進(jìn)行報(bào)文發(fā)送。該方式經(jīng)過(guò)試驗(yàn)可大幅提升數(shù)據(jù)通信傳輸?shù)男?,很好解決了數(shù)據(jù)傳輸效率較低問(wèn)題。
多臺(tái)位情況下,如果各臺(tái)位均以簡(jiǎn)易樣式顯示目標(biāo),則存在多臺(tái)位同時(shí)向后臺(tái)請(qǐng)求目標(biāo)列表的情況,且查詢(xún)并發(fā)量隨臺(tái)位數(shù)量增加而線(xiàn)性增加[6]。
考慮后臺(tái)顯示數(shù)據(jù)服務(wù)/進(jìn)程與前臺(tái)臺(tái)位n對(duì)n的情況,后臺(tái)顯示數(shù)據(jù)服務(wù)/進(jìn)程需要提供的服務(wù)有:
(1)定時(shí)向內(nèi)存庫(kù)查詢(xún)目標(biāo)列表,定時(shí)間隔暫定1S(情報(bào)接收的時(shí)間粒度是秒級(jí)),查詢(xún)條件是當(dāng)前對(duì)應(yīng)前臺(tái)臺(tái)位的視圖經(jīng)緯度范圍。
(2)在服務(wù)器端保存一份目標(biāo)顯示數(shù)據(jù)集,保存前臺(tái)曾指定過(guò)樣式(如目標(biāo)顏色大小指定、位置、顯隱等)且當(dāng)前不顯示,一段時(shí)間在前臺(tái)未使用而以后可能會(huì)使用的目標(biāo)數(shù)據(jù),該數(shù)據(jù)集也可考慮使用內(nèi)存數(shù)據(jù)庫(kù)組織。在后臺(tái)保存顯示數(shù)據(jù)集的原因是:前臺(tái)漫游縮放導(dǎo)致當(dāng)前視圖范圍內(nèi)顯示的目標(biāo)集在不斷變化,對(duì)目標(biāo)的干預(yù)操作導(dǎo)致部分目標(biāo)不按默認(rèn)樣式顯示,而指定過(guò)樣式的目標(biāo)數(shù)量會(huì)隨操作量的增加而增加,當(dāng)這一目標(biāo)數(shù)量超過(guò)前臺(tái)負(fù)荷時(shí),前臺(tái)的存儲(chǔ)及查詢(xún)等均會(huì)遭遇性能瓶頸,以至于影響前臺(tái)顯示進(jìn)程的顯示與繪制效果,所以前臺(tái)可定時(shí)向后臺(tái)備份當(dāng)前已存儲(chǔ)且并不在使用的目標(biāo)顯示數(shù)據(jù),當(dāng)下次再使用時(shí)再?gòu)姆?wù)器查詢(xún)或提前緩存[7]。其結(jié)構(gòu)示意圖如圖12、13所示。
圖12 顯示數(shù)據(jù)集流向圖
圖13 顯示數(shù)據(jù)并發(fā)查詢(xún)流程圖
本文從海量數(shù)據(jù)的存儲(chǔ)、傳輸與展示三個(gè)方向入手,設(shè)計(jì)了整體的流程架構(gòu),并針對(duì)數(shù)據(jù)具體的存儲(chǔ)方式、目標(biāo)聚合、數(shù)據(jù)通信以及多臺(tái)位顯示數(shù)據(jù)并行查詢(xún)等四個(gè)關(guān)鍵問(wèn)題提出了具體而高效的解決方案。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,采用本文方案后的原型系統(tǒng):
(1)具備百萬(wàn)批目標(biāo)PB級(jí)歷史數(shù)據(jù)的高效存儲(chǔ)管理能力,單個(gè)目標(biāo)單月歷史數(shù)據(jù)的查詢(xún)速度在1.5s以?xún)?nèi);具備百萬(wàn)目標(biāo)實(shí)時(shí)數(shù)據(jù)的高效處理與存儲(chǔ)能力,1.5分鐘可實(shí)現(xiàn)100萬(wàn)批實(shí)時(shí)目標(biāo)報(bào)文的處理和入庫(kù),100萬(wàn)目標(biāo)的查詢(xún)效率在2s以?xún)?nèi),15萬(wàn)目標(biāo)的查詢(xún)效率在1s以?xún)?nèi),單個(gè)目標(biāo)的查詢(xún)效率在1ms以?xún)?nèi)。
(2)具備全球百萬(wàn)量級(jí)的實(shí)時(shí)渲染能力,在Win?dows環(huán)境下(CPU:Intel i7-4790,內(nèi)存:8G,顯卡:NVID?IA GTX960,操作系統(tǒng):Windows 7),聚合目標(biāo)視角下平均幀率不低于55幀,簡(jiǎn)易目標(biāo)視角下平均幀率不低于45幀,模型視角下平均幀率不低于35幀。相比萬(wàn)級(jí)目標(biāo)使用的技術(shù),優(yōu)化后平均幀率分別提升350%、250%、150%以上;
(3)在任意視角下,具備視口范圍內(nèi)目標(biāo)的0.5s內(nèi)快速上圖的能力,不出現(xiàn)操作卡頓、切換延遲的現(xiàn)象;
(4)系統(tǒng)可穩(wěn)定運(yùn)行7×24小時(shí)。
同時(shí),經(jīng)過(guò)實(shí)用系統(tǒng)的驗(yàn)證,滿(mǎn)足用戶(hù)的性能需求,實(shí)時(shí)目標(biāo)數(shù)據(jù)處理、顯示性能處于國(guó)內(nèi)領(lǐng)先地位。該項(xiàng)技術(shù)能夠支撐百萬(wàn)級(jí)海量目標(biāo)態(tài)勢(shì)處理與展示。