基于托管可扩展框架的武器试验数据计算平台

2020-06-16 10:40汤国防胡长城
计算机应用与软件 2020年6期
关键词:数据处理组件武器

汤国防 胡长城 姚 尚

1(中国电子科技集团公司第十五研究所 北京 100083)

2(甘肃酒泉十四支局565号 甘肃 酒泉 735018)

0 引 言

武器装备的试验鉴定往往需要大量实装试验以及事后重复性的数据处理,形成对武器功能性能指标的数据鉴定结论。武器装备的靶场试验一般具有测量手段多、测量参数多、数据量大、专业种类多样等特点[1-2];在事后数据处理方面,数据计算流程相对复杂,对算法要求高,但同时也具有较强的复用性。目前,靶场武器试验数据多使用电子文件和多种多样的自研计算软件进行保存和处理[3],导致试验数据计算处理效率低、过程不易追溯、数据存储分散,难以形成数据积累和知识积累。

当前云计算技术的发展应用带来了更易获得的计算资源和存储资源,后台基于分布式或大规模集群部署的计算服务极大提升了科学计算能力。在一些复杂系统协同设计或仿真分析领域,基于网络的计算服务方式提供了一种新的架构设计。文献[4-5]提出了一种基于分布式多学科计算服务平台(FIPER)的计算服务方式,FIPER主要采用C/S模式。在FIPER服务器端集成计算各类服务,服务需求者需要在注册以后,通过FIPER客户端查找服务器中相应的服务进行调用使用,但这种服务方式要求用户必须通过编程接口创建流程图。文献[6]提出了一种基于ModelCenter的仿真计算服务方式,ModelCenter架构采用C/S模式,在服务器端集成各种仿真分析软件,需求者注册后可以在客户端建立模型组件流程图,提交后由服务器端进行计算求解,并返回结果。文献[7]则提出了计算模型化的思路,根据对计算模型设置不同的参数和函数链接由计算分析模型进行分析计算。基于FIPER和ModelCenter架构设计和计算模型化的实现思路为武器试验数据计算平台的设计提供了借鉴。

本文结合武器试验数据处理计算的业务特点,针对数据处理算法特点、数据集群计算需求,设计一种基于托管可扩展框架的武器试验数据计算平台,实现对试验数据处理算法组件化、数据计算服务化以及对各类专业算法高效集成,提升武器试验数据处理效率。

1 数据处理模型设计

1.1 数据计算业务模型

武器试验数据处理一般需要经过选取数据、预处理、专业数值计算、结果输出等多个数据加工过程。其中:数据的预处理为常用的算法处理过程,如数据格式转换、数据插值、野值剔除等;专业数值计算根据武器试验类别、数据测量手段等不同而采用不同的算法实现数据处理过程并最终得到输出结果。武器试验的数据处理对计算过程中的参数设定、过程数据追溯、结果综合处理有较高的要求,以获得可信的处理结果和科学的评定报告。

基于武器试验数据处理业务的共性特点,通过对数据加工处理阶段、专业数值计算过程进行单元化分解,建立典型的数据处理业务模型,如图1所示。

图1 武器试验数据处理业务模型

在上述业务模型中,每个数据加工处理过程均抽象为功能最小化的算法实现,以便于进行算法组件化设计,通过合理编排算法的输入输出共同完成试验数据处理过程。该业务模型的主要特点包括:1) 具有一条或多条计算基线,以满足多专业数据综合处理过程,每条计算基线以输入数据为起点;2) 每个算法均有一个或多个输入数据和唯一的输出数据,算法输出数据可以多次参与其他算法计算,输入数据、输出数据和算法计算参数作为过程数据进行保存;3) 在遵循专业数据处理规则的基础上,算法可以按需编排和多次使用[8];4) 整个计算流程遵循一定执行顺序自动完成全部数值计算。

1.2 算法组件设计

(1) 算法组件模型。为满足算法灵活编排以及计算流程的自动化执行,算法组件采用可托管的插件模式设计,并遵循SOA的架构理念[9],将前端界面操作和后台计算服务分离。算法组件包括前端算法界面插件和后端计算服务插件,如图2所示。

图2 算法组件结构

算法交互组件提供算法人机交互界面、计算参数配置和输入数据、输出数据的传递功能;后端算法服务组件接收算法交互组件传递的输入数据和计算参数,执行数据计算过程并生成输出数据,返回给算法交互组件。

(2) 算法组件分类设计。根据数据处理需要,算法组件可分为数据输入组件、数据适配组件、通用算法组件和专业算法组件。

数据输入组件为整个计算流程的数据入口,在实现方面可根据业务应用模式建立WebService输入组件、FTP输入组件、数据导入组件、数据编辑组件等。

数据适配组件用于完成组件间输出数据与输入数据之间的数据转换适配,如数据格式转换组件(时间、坐标、单位转换等)、数据属性更名组件、数据提取组件、数据拼接组件等。

通用算法组件为常用的公共数据处理算法,如数据插值组件、野值检测剔除组件、数据平滑组件、数据图表组件等。

专业算法组件针对专业性的数据处理过程进行单元化分解和重构,如将弹道数据解算过程分解为若干个逻辑算法单元,进而针对逻辑算法单元进行组件化重构。专业算法组件涉及各类学科、专业,需根据专业进行分类管理。

2 计算平台设计

2.1 托管可扩展框架设计

武器试验数据计算平台整体采用托管可扩展框架设计,将所有算法进行组件化封装后,由组件托管容器自动发现并管理组件实例,如图3所示。

图3 计算平台框架设计

计算平台客户端和后台算法计算服务均采用组件托管容器设计,对分类目录存储的算法组件进行自动发现和实例管理。计算平台客户端主要实现算法交互组件实例的可视化编排、算法组件间输入输出数据连接、计算参数配置、输入输出数据查看等功能;后台算法服务实现算法的核心计算和结果数据输出。前端组件与后台算法服务通过服务总线及XML/FTP进行服务交互和数据交互,以便构建支持多用户的集群计算服务[10]。

计算平台的算法库支持动态扩展,用户将遵循相应协议的算法组件上传至扩展算法组件库,通过平台的组件监控功能即可自动添加组件实例至算法组件托管容器。

2.2 计算平台框架协议

计算平台组件托管容器要求组件设计遵循一致的接口协议才能对组件实例进行统一托管,主要包括前端算法交互组件协议和算法服务组件协议。

(1) 算法交互组件协议。前端算法交互组件遵循统一的应用操作接口协议(IApplicationContract)设计,以实现对组件实例的定义、描述、界面操作、参数保存功能。IApplicationContract 接口约定如表1所示。

表1 算法交互组件接口协议

(2) 算法服务组件协议。算法服务组件遵循统一的计算服务接口协议(IServerContract)设计,完成数据的输入、数据计算和结果输出。IServerContract接口约定如表2所示。

表2 算法服务组件接口协议

在图3的计算平台框架中,后台算法服务组件托管容器通过Service Host模式将算法服务接口发布为对应名称的Webservice服务,并注册至SOA服务总线。前端算法交互组件与后台算法服务组件通过WebService请求实现服务调用和数据交互。

2.3 数据交互协议

考虑到武器试验数据具有数据属性多、数据规模大(如一次数据计算通常达到千万条记录)等特点,数据网络传输对计算执行效率影响极为明显,因此,算法组件间的数据交互采用XML+FTP协议设计。其中,XML用以定义输入输出数据的元数据,数据内容则以二进制序列化处理后通过FTP协议进行交互[11]。

在XML元数据中,输入输出数据的元数据项定义如表3所示。

表3 输入输出数据元数据项定义

组件进行数据调阅或计算时,通过XML元数据定义向FTP服务请求数据,根据数据组织格式解析序列化存储的二进制数据然后再进行处理。经测试验证,基于XML+FTP的数据交互模式相比传统的XML数据交互方式,在数据解析性能以及网络传输耗时方面优势明显,大规模数据时的计算执行效率可提升数十倍。

2.4 计算自动化执行设计

算法组件按照数据输入输出编排形成可执行的算法流程,能够单步执行和全流程自动化执行。全流程算法自动化执行设计如下:

1) 确定全流程算法执行顺序。以数据输入/数据导入组件作为流程中每条计算基线的执行起点,利用递归算法通过判断算法组件的前向输入和后项输出建立全流程算法执行队列。

2) 按照算法执行队列依次执行每个算法。单个算法执行包括计算条件检查、执行计算过程、生成输出数据三个过程。每个算法执行完成后,通过执行结果事件驱动后序算法执行。

3) 算法执行异常处理。当算法执行条件检查不满足或执行过程发生错误时,终止算法流程的执行,并抛出异常信息提示。

4) 算法执行数据存储。算法执行完成后,算法的全部数据均自动保存至FTP数据计算存储空间,用以过程回溯和数据检查。此外,当前处理任务的算法流程和配置参数可存为公共模板,实现任务重用和知识共享。

3 系统设计实现

3.1 武器试验数据计算平台

武器试验数据计算平台采用分布式C/S架构设计,构建形成公共的计算服务平台,支持多用户多任务并行数据处理。计算服务使用私有云部署或采用多机集群部署设计,根据计算规模及压力实现计算节点的弹性伸缩。

武器试验数据计算平台包括试验数据处理客户端和试验数据处理服务两部分,其中试验数据处理服务包括试验数据管理平台、FTP文件服务、数据库存储服务、数据计算服务和共享存储服务五部分。整个系统组成结构如图4所示。

图4 系统组成结构

试验数据管理平台提供全系统的原始测量数据访问服务,并以用户、数据处理任务为标识存储数据处理任务、算法流程、算法组件参数配置等信息。试验数据处理席配置试验数据处理软件,集成全部算法界面组件并按需加载,为用户提供数据处理任务管理、算法流程可视化编排、算法参数配置功能,并根据数据处理任务流程同后台计算服务进行交互。

3.2 试验数据计算处理示例

以光测视频弹道解算处理为例,整个数据处理流程包括数据输入、数据预处理、光测数据处理、弹道解算四部分,如图5所示。

图5 视频外弹道解算数据处理流程设计

利用试验数据处理软件,选择加载数据输入算法组件库、数据转换组件库、通用算法组件库、光测视频算法组件库,通过鼠标拖拽方式对算法流程进行编排,并通过算法组件的UI界面设置数据计算参数,执行完成视频弹道解算流程计算,计算流程界面如图6所示。该流程中同时配置计算多个弹道解算算法组件,以对比不同计算参数的弹道解算结果。

图6 视频外弹道解算算法组件执行编排设计

基于该武器试验数据处理平台,数据计算处理流程充分利用后台高性能服务器的强大计算能力,数据处理效率得到极大的提升,尤其应对多用户同时开展内测数据、动/静态RCS等大数据量计算时,数据执行效率为原单机计算模式的3~5倍。数据处理流程执行完毕后,整个计算任务的算法流程以及每个算法组件的计算参数、输入输出数据全部存储至服务器,实现了数据处理过程的全周期管理。同时,专业人员可以持续对算法库中的算法组件进行优化、更新和升级扩展,满足数据计算应用需求。

4 结 语

基于托管可扩展框架的武器试验数据计算平台实现了对所需数据算法的组件化重构、计算流程可视化编排和自动化执行,数据处理过程完整可追溯,达到了对试验数据高性能计算和集中管控目的。目前该平台已经应用于空军某靶场航空武器试验试飞的事后数据处理,实现了内外测、红外、姿态、RCS等多个专业三百多个算法组件集成和计算服务部署,满足多用户并行开展数据计算任务,在规范数据处理过程、提高数据处理效率、缩短武器试验周期方面发挥了积极作用。随着机器学习、人工智能等新技术的快速发展,武器试验数据计算平台在支撑机器学习迭代化流程计算、适配AI计算的后台计算服务设计以及平台的智能化计算任务调度等方面还需开展进一步的研究,以提升武器试验数据计算平台的普适性和智能化。

猜你喜欢
数据处理组件武器
无人机智能巡检在光伏电站组件诊断中的应用
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
无人机快速巡检光伏电站中异常光伏组件的方法
基于低频功率数据处理的负荷分解方法
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
无人机测绘数据处理关键技术及运用
一种嵌入式软件组件更新方法的研究与实现
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
一张图看懂武器发展史