SCI论文(www.lunwensci.com)
摘 要 :随着国家航天技术的迅猛发展和广泛应用,数字化控制、数据化分析已经广泛应用于具体实践中,数据资源的地 位作用日益凸显。本文通对航天领域航天器飞行控制数据实时分析平台的软件架构研究,结合现有航天器飞行控制系统发展情 况,阐述了 C/S、虚拟机、隐式调用软件架构风格在航天领域的应用,探讨了在大型信息系统工程项目中软件架构风格对于指 导软件系统功能的实现、成本的降低、质量的改进、按时按需交付产品所起到的关键作用。
On the Role of Software Architecture Style inAerospace Software
JI Taotao, ZHAO Dongwei, LI Xiaopeng, JIA Zongxiu, LIU Yao
(Tianjin Shenzhou General Data Technology Co., Ltd. Beijing Branch, Beijing 100089)
【Abstract】:With the rapid development and widespread application of national aerospace technology, digital control and data analysis have been widely used in specific practices, and the role of data resources has become increasingly prominent. This article studies the software architecture of the real-time analysis platform for spacecraft flight control data in the aerospace field, and combined with the development of existing spacecraft flight control systems, expounds the application of C/S, virtual machines, and implicit call software architecture styles in the aerospace field. This paper discusses the key role that software architecture style plays in guiding the realization of software system functions, cost reduction, quality improvement, and delivery of products on time and on demand in large-scale information system engineering projects.
【Key words】:manned spaceflight;data storage platform;data analysis;multi-layer architecture design;software architecture style
0 引言
近几年,随着我国航天事业的蓬勃发展,相继开展 了载人航天、探月工程、火星探测、空间站等项目。信息 化系统为这些项目信息的组织、存储、管理提供了强力支 撑,承载着我国安全和航天事业顺利发展的重任。对于软 件系统而言, 好的架构风格可以大大降低软件实现的复杂 程度。特别是航天领域软件具有高可靠性、高安全性、高 寿命、维修难度大、约束条件多等特点,软件设计之初便 选择合适的软件架构风格对于保障航天员的安全健康、保 障任务的成功、提高软件系统的生命周期具有重要意义。
1 背景
项目中涉及到陈旧硬件平台改造和软件系统的改造 两个方面,主要建设目标有 :(1)国产化 ARM 硬件平台改造 ;(2)分布式数据存储建设,将原有数据从某数 据库迁移至新的自主研发分布式数据存储平台 ;(3)新 的数据存储平台需具备高并发、强实时性数据分析计算 能力 ;(4)将传感器数据以流的形式发布到企业总线上 以兼容旧有大数据计算平台 ;(5)实现管理人员和操作 人员对系统的方便控制,并可快速进行大数据分析。航天 器的数据通常有非常强的时效性,科研人员可以监控航天 器飞行状况并对最新数据进行实时的聚合分析。因此, 项 目具有技术复杂度较高、费用较大、过程文档要求齐 全、数据正确性要求严格、规模较大、硬件平台不够成 熟等特点。这是一项任务重、风险大、挑战性强的工作。 在架构中我们对架构风格进行了充分的评估和论证选 型,通过使用合理的软件架构,项目最终成功上线并稳定运行,对后续一系列的发射任务进行了高质量支撑。
2 总体架构
架构设计的一个核心问题是能否达到架构级别的软件 复用, 软件架构的选择是软件体系结构设计的最初阶段。 选择合适的架构风格能够极大地提高软件设计的重用度, 加快软件系统的建设速度 [1]。软件项目中常见的架构风格 主要有数据流风格、调用 / 返回风格、独立构件风格、虚 拟机风格、仓库风格、数据流风格。数据流风格中程序按 照一定顺序从前向后执行,代表的风格有批处理序列和管 道 - 过滤器 ;调用/ 返回风格的构件之间存在互相调用的关 系, 一般是显式的调用,其代表的风格有主程序/ 子程序、 面向对象、层次结构 ;独立构件风格的构件之间是互相独 立的,不存在显式的调用关系,而是通过某个事件触发、 异步来执行,代表的风格有进程通信、事件驱动系统 ;虚 拟风格自己定义了一套规则供使用者使用,使用者基于这 个规则来开发构件,能够跨平台适配,代表的风格有解释 器、基于规则的系统 ;仓库风格以数据为中心,所有的操 作都是围绕在数据中心进行建立的,代表的风格有数据库 系统、超文本系统、黑板系统。正交架构风格是一种以垂 直线索构件作为基础的层次化结构,包括组织和线索。在 本系统设计中主要使用了分层、正交、C/S、B/S 架构风格。
本项目的飞控数据分析平台是一个比较精细化的软 件应用系统,在设计针对本业务系统的软件体系结构风 格的过程中,对软件应用系统中的不同部分进行了详细 分析,以实现良好的风格匹配。根据上述基于需求分析 的内容,整个数据平台管理系统采用了分层的软件体 系结构风格,分层结构可以保证不同系统构件的扩展与 增删、使整体系统框架设计变得简单,也能够有效解决 复杂功能模块之间的高耦合问题、提高计算机软件接口 调用、业务及服务管理质量 [2]。之后针对每个子层的特 点采用不同的软件体系结构风格实现了应用于飞控平台 的混合软件体系结构设计风格。
3 层次化架构
整个软件架构分为六层(如图 1 所示)。
(1)接入层包括客户的数据加载程序、Qt 客户端 以及浏览器等多个平台或终端的视图应用。接入层系统 负责数据的大容量加载,并且通过客户端和网页与使用 者进行交互。其中 Qt 客户端通过 C/S 风格,用户可以 编辑业务处理规则对下层返回的数据进一步加工最终生 成报告并自动存储在云平台。浏览器使用 B/S 风格主要 是对固定业务进行查询,并对实时生成的图表进行展示。
(2)业务预处理层可以快速处理航天器下传的数 据,实现对最新数据的分类、纠错、栅格化,并对参数 进行有效性验证、在日志中记录异常数据。这些来自不同平台的数据通过预处理和归一化处理后将具有统一的 格式、特定的标签、正确的数值范围。加快数据收敛、 提高数据精度、为数据进入数据总线做好准备、明显减 少后端设计的复杂性 [3]。
(3)消息总线层统一各个构件的消息模式,并且承 担前后端业务通信的桥梁。利用消息总线可以将不同类 型的数据加载器接入到当前系统对后端提供数据。对于 后端而言可以通过消息总线接入日志、权限等共用模 块。并有效地支撑同层同架构的实现和上下层异架构的 实现,优化业务实现、提高业务灵活性、实现数据规范 化、高效利用系统资源。
(4)业务逻辑层可以处理复杂的操作,航天系统支 持的飞行器型号众多,数据类型众多,用户对数据进行 查询分析时往往要进行分组或者绘制目标状态曲线图, 这些操作都要求返回给前端的数据为有序的,业务逻辑 层通过对数据的分层处理可以在多并发执行过程中实现 结果的有序和正确。
(5)存储访问层负责封装底层的数据操作过程,具 体操作对象包括关系型数据库和非关系型数据库等数据存 储系统。存储访问层封装了对存储层访问的基本操作、规 范了数据调用方式、提供了计算下放存储的相关操作接口、 自上而下优化存储的访问效率、为上层提供高效的数据存 储与访问服务。存储访问层的数据缓存可加速数据的存取 性能并根据内置的规则或配置进行必要的预检查和预处 理,在保证数据准确无误后写入数据持久化存储。
(6)数据层主要采用了自研的一款分布式数据库产 品,具备弹性扩展能力,能够提供海量数据存储能力, 以及多维并行计算能力,以保证用户可以基于最新的数 据进行实时聚合分析并决策。采用分层架构可以使得整 个系统的研制复杂度大为降低,每一层可以保持最大独 立,只要保证接口兼容,各层可以单独修改迭代,同时 也便于并行研制。
4 每层架构风格
接入层和数据层处于软件系统的上下边界,连接用户和存储数据库,不会涉及到软件系统本身的设计。下 面重点对中间四层的架构风格进行讨论。
4.1 业务预处理层的软件体系结构
航天器上的传感器产生的消息数据都有对应的格 式,我们称为数据模式。但是航天器上的这些传感器是 可以编程的,通过地面人员控制,可以使得传感器产生 的数据格式发生变化,我们称为动态数据模式。业务预 处理层针对每一次数据接入的请求进行不同类型的数据 预处理,其主要包含 :模式分析、模式类型验证、数据 解析、数据版本日志记录、权限验证。这种数据处理的 流程整体适合使用正交软件架构风格,在数据解析时适 合使用虚拟机解释器的软件架构风格。
4.2 消息总线层的软件体系结构风格
构件是指语义完整、语法正确和有可重用价值的单 位软件,是软件复用过程中可以明确辨识的系统 ;结构 上, 它是语义描述、通讯接口和实现代码的复合体 [4]。 消息总线层的目标主要是为了提升系统的扩展性、降低 模块间的耦合度。方便实现前端与前端的数据通信、前 端与后端的数据通信以及后端与后端的数据通信,采用 订阅-发布模型非常适合对象间一对多的关系 [5] 实现 消息件之间的多对多数据传输提升软件的高内聚低耦 合,在软件系统的维护阶段也可以非常方便地对已有系 统进行功能扩展。本系统中总线屏蔽前端 ( 后端 ) 的差 异,实现业务逻辑的复用,总线开放的服务都对应于总 线上的不同模块,而正交架构风格可以应用于模块间的 协同。主要包含前后端数据通信、接口与服务的发布与 订阅、数据加载缓冲区加速、数据展示算法与数据流的 协同,因此我们在消息总线层采用正交架构风格。
4.3 业务逻辑层的软件体系结构风格
逻辑层采用分层结构对业务进行了规划,分为了核 心组件层、基础功能构件和复杂功能构件三个层次。可 以在核心组件层对数据存储时进行并发压缩操作或者在 数据读取时对数据进行并发解压操作 ;在基础功能构件 层对流水数据或者并行数据流进行归一化和排序等操 作 ;复杂功能构件层对数据进行分组、聚集、去重等分 析计算操作,最后从数据总线将结果发送到其他组件。 综上所述并结合层次架构的风格特点,在业务逻辑层采 用分层架构设计风格(如图 2 所示)。
4.4 存储访问层的软件体系结构
存储访问层主要满足存取方对持久化数据的保存和 提取需求。当前系统的存储分为结构化和非结构化数 据,为了提高软件的可复用性,将数据的存储、读取、 数据调用进行了函数封装,并根据不同的存储是否具有 计算能力,分别重写了存储可优化层、本地存储优化层、DirectAccess 层、CacheAccess 层。通过对这些函数 和操作进行封装,作为存储层的基本构件,上层业务基 于这些构件进行开发,最终决定在存储访问层采用层次 化的软件架构风格。
5 结语
经过对以上架构风格的选择,已经实现了预期的效 果。系统分析师、系统架构设计师、程序开发人员、程 序测试人员之间通过对架构的理解达成了共识,方便了 人员之间的交流。在软件的开发过程和测试环节极大地 提高了软件的开发、测试效率,同时也极大地降低了项 目成本。本系统的层次、调用接口都进行了标准化,为 日后系统的扩展和升级也打下了良好的基础。
该项目于 2021 年完工,系统上线后一直运行良好, 且经历过多次重要任务。从最初的 2 个型号约 40TB 的 数据规模到 2022 年已经增长到了 14 个目标,数据规模 也达到了 200TB,整个系统始终能够保证数据的实时处 理,保持稳定的服务能力,且本系统具有很好的扩展能 力。在软件运行期间又陆续接入了冷热数据分级管理、 负载管理等业务,且对原有主业务没有任何影响。顺 利完成了火星探测、嫦娥五号月壤取样返回、天和核心 舱、问天实验舱、梦天实验舱的发射和运行保障任务, 为国家建设航天强国发展发挥了积极作用。
参考文献
[1] 张少玉.基于信息化的软件开发策略[J].信息技术与信息化, 2022(11):94-97.
[2] 方刚,王静,张波波.工业企业智慧能源管理技术研究[J].能源 研究与利用,2023(2):43-48.
[3] 刘欣,朱剑冰,郝维宁.空间站数据管理软件设计与实现方法 [J].航天器工程,2022.31(4):68-75.
[4] 张友生.软件体系结构原理、方法与实践(第2版)[M].北京: 清华大学出版社,2014:4-7.
[5] 刘凌云.观察者模式在面向抽象编程中的应用[J].计算机与 数字工程,2016.44(8):1474-1477+1522.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/68502.html