论文部分内容阅读
航空航天业领域,在型号试验数据的收集、存储、分析过程中,存在现有的数据量越来越大,数据类型越来越多元化,非结构化的数据越来越多等现状,以往的数据处理和分析方法时延超长并且效率低下,无法满足性能要求以解决现有问题。现有文件系统和传统关系型数据库均无法满足大数据量的实时存储和查询提取要求。除此以外,试验人员通常分散在不同地点,无法进行集中高效的数据判读。这些现状迫切地需要一套统一的数据管理系统进行试验数据的高效管理。本文研究内容来自中国航天科技某研究所与西安电子科技大学高可信软件实验室的重要合作项目,研究重点为海量试验数据管理系统客户端中数据通信的设计与实现。该客户端能够适应海量试验数据的处理和显示,在数据的统计计算和绘图展示上有高效的处理性能。该客户端使用Qt框架进行编写,使之具有一定的跨平台能力。该客户端使用了三层架构的设计思想,使得层与层之间耦合度低,应用的可扩展性强。在数据通信模块的设计中,首先对Qt框架的网络通信类进行封装,使得业务代码通过简单的配置即可完成网络访问并获取数据,在网络通信封装中实现了任务队列和网络连接池,提高了任务的并发能力。其次,对网络访问任务进行抽象,使得任务可以进行统一的调度和处理。进而,任务采用异步通信方式,业务逻辑发送任务时不会影响用户界面交互和接下来逻辑代码的执行。在通信设计中,有两类特殊的通信任务,一类是更新频率较高的文件目录结构的同步,另一类是海量数据的传输和展示。在应对高频率大数据量的通信中采用了增量更新、延迟加载和数据点采样的方式减少通信的数据量。最后,该通信功能还支持批量文件传输,文件传输采用了文件监视类、零散文件打包和内存缓冲区的设计。文件监视类将文件传输及其进度更新功能独立出来,方便批量文件传输任务的管理;零散文件通过打包的方式传输,在文件写入硬盘时采用了内存缓冲,减少了网络带宽的占用和磁盘的负担。海量试验数据管理系统经过实际应用的测试,数据上传解析效率提升了近150倍,可接受近亿条数据的显示和绘图功能,可以实时同步数十层文件组织结构和每层几万个文件的元数据信息,可同时支持数十个GB级别的文件传输或数百个MB级别的文件打包传输。目前,该系统已经成功交付使用,解决了海量试验数据管理中存在的数据处理效率低下、权限管理繁琐和数据展示不直观的弊端。上线运行期间参与了近两年来的重点火箭和导弹型号的研究和试射,达到了满意的效果,在数据的高效管理上起了中流砥柱的作用。