1、设计与应用计算机测量与控制 ()收稿日期:;修回日期:。作者简介:崔北鹏(),男,安徽合肥人,硕士研究生,工程师,主要从事导弹武器测试方向的研究。引用格式:崔北鹏,张宝欣,关凯元,等基于 架构的通用型数据处理软件的设计与实现计算机测量与控制,():文章编号:():中图分类号:文献标识码:基于 架构的通用型数据处理软件的设计与实现崔北鹏,张宝欣,关凯元,李坤龙,陈昕(上海机电工程研究所,上海 )摘要:原始数据的解析处理是科研生产的重要环节,也是试验分析与决策的重要依据;针对型号研制数量、研制阶段层级、系统设备种类不断增多的现状,文章基于 架构,使用语言平台,设计并实现了一种通用型数据处理软件,能
2、够分析处理不同来源的原始数据,极大地提高了软件的通用化程度,并减少了软件版本的数量;同时,增加了软件维护更新的速度,降低了平台管理开发的成本;目前已成功应用在多个型号任务中,有力地支撑与推进了型号任务的发展。关键词:架构;数据处理;翻译器;数据库;,(,):,:;引言科研生产各环节中产生的原始数据通过传感器被遥测终端接收到的实时数据,反馈参试设备在各类试验的状态,是科研决策分析的重要数据依据,属于高成本价值数据资源;但是原始数据不仅数量庞大而且十分耗费存储空间,单个原始文件一般在百兆字节左右存储空间,单机版解析软件生成的各参数文件一般在一至十几字节存储空间;该类数据一般不能够直接用于科研分析,
3、需要经过一定的处理和解析;然而,随着型号业务的拓展、产品系列化快速发展、型号研制的数量激增、历史试验数据分析利用的需求越来越强烈,不同型号、不同阶段、不同设备的数据文件若采用不同的软件进行处理,将会大大增加软件版本的数量,这样的处理方式给软件使用、管理和维护带来了极大的困难;我们迫切需要一种通用化的、容易维护的、简捷快速的、灵活部署的软件以适应当今和未来日趋紧迫数据处理任务形势。虽然各类软件根据相同的通信协议进行编码,但是由于不同软件解包方法、处理步骤和实现平台均不相同,为了处理各个设备采集到的数据,不仅需要部署不同的使用环境,而且需要协调多个单位和部门的工作,同时,也增加了软件发布和维护的工
4、作量。当前原始数据数据处理软件常见问题如下:)现有原始数据及解析数据库没有统一有效的管理和规范,历史数据不能正确的还原和解析;)没有统一的数据分析工具,存在分析对象不对等、数据溯源不便捷等情况;)各类产品数据处理软件通用性差,软件功能简单,只能完成基础的参数曲线显示和数据文本输出,不具备参数相关性计算;投稿网址:计算机测量与控制第 卷 )原始数据较为分散且缺失相应的分析工具,设计师无法便捷地对多次试验、不同产品的同类参数数据进行横向、纵向比对分析,数据共享性差;)缺乏数据处理分析手段,不能充分挖掘数据资源的价值;)数据显示耗时较长,不能满足设计师大批量、高频次的数据查询及分析需求。架构及原理(
5、即 )是 在 世纪 年代为编程语言 发明的一种软件设计模式,提供了一种按功能对软件进行模块划分的方法。早期的 可以单独开发出数据库访问系统,即在 层就包含有数据库的读写操作。这种模式最大的优势就是可以为一个模型在运行时同时建立和使用多个视图,变化传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。架构的含义是将一个软件分为模型层、视图层和控制层个相对独立的层次;模型层主要包含数据处理的具体逻辑及算法、用于数据处理的类及方法,视图层主要包括数据处理结果的显示、接收及响应用户的不同请求,控制层主要用于控制软件的整体运行,从视图层获知用户的需求,送入模型层解
6、算,再将解算的结果反馈在视图层中;总之,模型层是软件的运算中心,视图层是软件的交互中心,控制层是软件的总控中心,各层次之间的关系见图。图 架构通用数据处理软件采用 架构,以控制层 为软件核心,负责调配视图层 和模型层 以实现软件的各个功能。其中视图层主要包含软件界面和数据显示模块;模型层主要包括对数据文件的建模,文件的参数数据库、特性关系数据库的建模(数据库并非唯一选项,亦可采用其他配置方式)以及数据处理模块的建模;控制层主要包括对上述的模块进行有效地调度和资源分配,以及为提升用户体验所必须的处理过程的时间上的合理配置。通过 架构可以将软件的功能最大限度的解耦开来,每个层级专注于自身的任务,针
7、对不同的场景,最大程度的复用软件的各个层级,比如视图层可以使用、等不同环境开发,模型层不需要任何改变,更重要的是,不同型号的原始数据,通过整理与总结,可以化归为几种模型进行解算,而不需要改变视图层,如此,大大提高了软件的扩展性、降低了维护的成本。系统设计 总体设计虽然科研生产各环节中产生的原始数据量较大,但是各类产品测量的参数类别、参数特性等共通性较大,具有较好的参考价值和借鉴性,采用 架构可以高效的处理原始数据、管理解析数据库和灵活的显示交互。基于 架构,可以将模型层和视图层继续细分为翻译器、数据库连接器、关联器和绘图器,如图所示。从用户的角度看,关联器是软件的输入,绘图器是输出的结果,进一
8、步的,关联器主要用于接受用户的关联指令,明确用户需要分析哪些数据及需要的输出形式,绘图器将分析的结果以图片的形式显示出来,同时,响应用户对显示曲线的缩放、对比、标记、统计等操作。图总体架构模型层是软件的运算中心,除了一些基础算法与数据结构,它的核心是种类多样的翻译器与数据库连接器。数据库连接器是配合翻译器工作的模块,它可以针对不同的翻译器,找到对应的数据库,并正确的提取其中的信息,接着,翻译器借助数据库中的信息对原始数据进行拆分、还原,得到用户需要的结果。控制层是软件的中枢,它从关联器中得到了用户的需求,送入对应的翻译器进行解算,解算的参数从数据库连接器中获取,最后将解算的结果反馈在绘图器中,
9、如此,在用户、原始数据、数据库个元素之间搭建起了结构清晰、适应性广、扩展性强的软件桥梁 。翻译器设计根据目前的数据来源,翻译器主要分为 翻译器、遥测翻译器、记录仪翻译器、翻译器等类型,如图所示。翻译器主要实现了数据预处理(含时码修正、数据剔野等功能)、模拟量还原、数字量还原、解析结果标准化输出等功能,可以适应不同来源的数据,同种来源的数据若处理方法略有区别,可以通过继承方法,大大减少软件开发的代码量,提高代码的复用性及维护的速度。针对数据来源多样、硬件资源差异较大的情况,采用抽象类的技术进行翻译器的设计,根据 翻译器、遥测翻译器、记录仪翻译器、翻译器等具体翻译器抽象出基础翻译器;基础翻译器主要
10、实现个功能:数据提取、数据清洗、数据还原和标准输出;其中,数据提取是基础翻译器的一个抽象的方法,具体实现在各类子翻译器中,投稿网址:第期崔北鹏,等:基于 架构的通用型数据处理软件的设计与实现 图翻译器类图提取好数据利用基础翻译器中通用方法进行数据清洗和数据还原,最后再根据用户需求进行标准化输出。数据库连接器设计为了覆盖科研在用的数据库类型,主要设计了 数据库连接器、数据库连接器和 数据库连接器等,如图所示。图数据库连接器类图在数据库连接器的设计过程中主要采用了标准数据库技术,通过对模型层的进一步分析,可以将模型层进一步细分为解析方法和解析参数两大类,针对不同型号、不同阶段、不同设备的原始数据,
11、通过设计统一的标准数据库,可以将模型层所需的解析参数细致的区分并存储下来,这样一来,在解析方法完备的情况下,只需根据通信协议更新数据库,便可以实现软件的快速维护。标准数据库主要分为个部分如表所示;其中,设备表包含原始数据所含的设备类别,浮动波道帧格式表定义了所有设备浮动波道的帧格式,浮动波道占位表罗列了所有设备浮动波道在主帧中的位置,数字量参数表和模拟量参数表分别存储了数字量与模拟量的还原系数、设备类型、数据类型等一系列信息,帧结构表存储了主帧帧格式、码速率等信息,帧标识表罗列了所有帧标识的类型和定义,用于解析具有分时复用功能的复杂数据帧。设备收录下来的帧数据会存储在 文件中,格式基本按照遥测
12、设备研制任务书中关于子帧波道表的描述。表标准数据库序号表名说明 设备表 浮动波道帧格式表 浮动波道占位表 数字量参数表 模拟量参数表 帧结构表 帧标识表 关联器设计通过对用户的需求进行深入分析,对于原始数据,科研人员主要有数据检查、图线查看、批量输出等需求,进一步的,用户既需要软件具有原始数据品质检查的功能,又需要针对部分参数能够快速的绘制曲线进行分析,也需要软件能够一键化、标准化输出全部处理后的数据,方便输入其他平台进行更加深入的分析。为了满足用户的种需求,关联器实现了设置关联、预处理、批量输出、曲线显示个主要功能,其中,设置关联明确原始数据和翻译器的对应关系,预处理实现了原始数据的零点修正
13、、时码修正和数据剔野,同时生成预处理报告,详细分析了数据的品质供用户参考,批量输出则完成了选定数据的一键解析,根据用户的选择生成对应的 、等格式的文件,最后,曲线显示完成了参数的快速查询及曲线绘制。为了后续型号、阶段提供可扩展配置的接口,在关联器的设计过程中采用了反射技术。反射是以自述方式表示系统的状态和行为。通常一个反射系统由两个逻辑空间组成基空间和元空间,其中基空间是被反射的系统运行的空间,元空间是对它进行反射的空间,通过“具体化”,系统从基空间映射到元空间,通过“反射”,系统从元空间映射到基空间,利用反射技术在运行时重新配置系统的行为可以实现系统运行时对环境和需求变化的自适应。模型层解析
14、方法的构建是一个不断完善迭代的过程,随着设备的新研、技术的更新,软件可以快速的继承或者新研更多的解析方法,而针对不同来源的原始数据,通过反射技术,可以从程序外部注入部分代码并灵活的配置软件所需要使用的解析方法,这样一来,和标准数据库组合使用,就实现了软件的型号通用性、阶段通用性以及设备通用性,即一个软件适应多个型号、多个阶段、多种设备,并为后续型号、后续阶段、新研设备留有扩展配置接口。绘图器设计绘图器主要用于选定参数的曲线绘制,同时满足用户的曲线交互分析需求,基于事件响应互锁结构和数据压缩显示技术,主要设计了鼠标滚轮缩放、鼠标拖曳放大、鼠标悬停、鼠标捕捉、自动幅值、数据统计、屏幕截图、屏幕标记
15、、屏幕数据截取等功能,功能全面,操作灵活,响应迅速,极大的提高了软件的交互性及数据分析的效率。由于原始数据的数量庞大,现有数据处理软件的显示方法响应很慢,不能满足各专业设计师的使用需求,所以需要一种数据压缩算法进行数据的高效交互,现有的数据压缩算法主要有:王鹤等人提出基于分布式压缩感知和边缘计算的配电网电能质量数据压缩存储方法,利用同步正交匹配追踪算法进行配电网电能质量数据压缩,通过 字典学习算法对配电网测量值进行分析,实现电能质量数据的高精度压缩;赵会群等人提出基于密度划分的数投稿网址:计算机测量与控制第 卷 据存储方法,通过密度区域划分算法降低高度重复数据的冗余度,利用缩 算法有效减少数据
16、存储空间;常会丽等人提出的基于多维矢量矩阵的 多维数据压缩方法通过压缩编码处理变化后的系数矩阵数据,提升多维数据压缩效果;常会丽等人还提出的基于关系数据库的多维数据存 储 方 法,是 利 用 关 系 数 据 库 存 储 压 缩 后 的 多 维数据。参考研究人员的成果,结合原始数据的特征,在绘图器的设计过程中创造性的采用了数据压缩显示技术,大大提高了显示的效率,提升了人机交互的效果。如果直接进行折线图的绘制,由于实时采集的数据量很大,参数分离解析后,可能会有百万级别的数据量,这将给软件前端带来很大压力,显示刷新的速度会非常慢;经过分析可以发现,实际上真正参与绘图的点数不会超过显示的分辨率,进一步的,往往与显示的横向分辨率呈正相关,故当点集密度大于显示分辨率时,按照像素排序进行绘图,反之,按照点集排序进行绘图,由此,采用这种基于像素的图像压缩显示技术,可以大幅增进了视图层显示刷新的速度,也就是说,软件的反应速度、人机交互的效率得到了提高 。功能实现与验证 总体功能实现与验证通用型数据处理软件主要在平台上开发实现,通过接口定义,明确了控制层、模型层和视图层之间传输的数据,利用工厂模式,在对应