◆钟原 郑文龙 李祥 王希进
基于共享内存管理的海量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技术重点试验室.