航电系统数据发布订阅服务软件设计

2023-12-29 02:54吴晓斌
信息记录材料 2023年11期
关键词:航电参与者消息

李 康,闫 妍,吴晓斌

(航空工业西安航空计算技术研究所 陕西 西安 710065)

0 引言

目前机载航电系统已经从分立式、联合式逐步转变为以综合核心处理机(integrated core processor,ICP)为核心的综合化模块化航空电子结构,网络传输介质由单一传输介质转变为多种传输介质的集成,处于不同功能单元上的分布式机载软件之间的通信关系变得越来越复杂,系统复杂度越来越高[1-2]。 传统的机载通信中间件大多针对某一特定类型的传输介质,例如光纤、1394 总线等,这些传输介质可能是由多个厂商提供的硬件设备,采用不同的操作系统,具有特定的数据传输标准,提供给应用软件的接口也各不相同,无法做到传输介质对应用软件的透明化,而且通信关系大多需要静态配置,严重缺乏灵活性。

对象管理组织(object management group, OMG)制定的数据分发服务(data distribution service,DDS)标准定义了以数据为中心的发布/订阅机制,提供了一个与平台无关的数据通信模型,并且支持丰富的服务质量策略(quality of service,QoS)控制发布/订阅通信,指定所需要的数据传输的质量行为,能最大化满足用户对通信质量的需求[3]。 DDS 具有低时延、高吞吐量、松耦合等优点,主要应用在要求高性能、强实时、资源限制的关键领域[5-6]。因此,本文以DDS 为基础,结合机载分布式应用软件的实际需求,设计并实现出一种数据发布订阅服务软件,并在航电系统仿真环境下对软件进行系统的功能和性能验证。

1 总体设计

如图1 所示,数据发布订阅服务软件架构分为接口层、核心层、适配层[7-9]。

图1 软件架构

接口层向应用软件提供统一的满足未来机载能力环境(future airborne capacity environment, FACE)中间件标准v2.1 的传输服务段(transport services segment, TSS)接口,包括初始化、创建连接、删除连接、获取连接参数、发送消息、接收消息和注册回调函数,以支持应用软件以轮询和回调两种方式接收数据。

核心层提供以数据为中心的发布/订阅通信,支持基于主题进行数据通信,并支持多种QoS 策略,包括有效性、截止期、基于时间过滤、历史数据、资源限制、可靠性、持久化、所有权和所有权强度。 此外,核心层支持自发现机制,用于发布/订阅通信时写者和读者的动态组网。

操作系统和网络适配分别屏蔽操作系统和网络环境的差异,向应用软件提供统一的操作系统和网络通信接口,支持常用的Windows、Linux 以及国产天脉操作系统,支持机载常用的光纤总线、1394 总线以及用户数据报协议(user datagram protocol,UDP)网络,同时支持用户自行扩展操作系统适配和网络插件。

2 配置数据设计

对机载航电系统来说,数据通信通常采用静态配置方式,即相关的配置数据在软件实际部署前已经由系统综合人员预先确定下来。 数据发布订阅服务软件根据用户提供的配置数据完成发布/订阅服务初始化,如图2 所示,配置数据包括传输服务配置、连接配置以及QoS 配置。

图2 配置结构图

传输服务配置:处于不同功能单元上的分布式应用节点对应一份传输服务配置,由节点ID 唯一标识;发布/订阅服务需要对每种发布/订阅消息建立虚拟的连接,由用户指定所有需要处理的发布/订阅消息对应的连接信息,包括连接的总个数和每个连接具体的配置。

连接配置:航电系统基于主题进行数据传输,每个连接处理一种基于主题的发布/订阅消息,通过主题ID 唯一标识,根据连接方向确定该主题为发布主题还是订阅主题;由用户确定该连接对应的消息类型、能够传输的最大消息长度,以及本条消息相关的QoS 配置。

QoS 配置:设置本条发布/订阅消息具体的QoS 策略,包括9 种具体的策略,用户根据网络带宽、可靠传输、等待时间、资源配置等进行个性化配置。

3 发布/订阅服务设计

3.1 发布/订阅模型

DDS 标准定义了6 类实体对象完成发布/订阅通信,包括域参与者、发布者、订阅者、主题、数据写者和数据读者。 域参与者属于某个通信域,包括若干个发布者、订阅者和主题,负责创建、删除和管理这些实体;发布者负责发送数据,并创建、删除和管理数据写者;订阅者负责接收数据,并创建、删除和管理数据读者;主题定义数据写者和数据读者相互通信时消息的数据结构,每个数据写者和数据读者必须与一个主题绑定。 数据写者为应用软件提供发送接口,负责将应用数据放入发送缓冲区;数据读者为应用软件提供接收接口,负责从接收缓冲区读取数据;基于DDS 通信,只有处于同一个域的实体才可以通过主题进行通信,不同域的实体不能通信。 此外,6 类实体对象都具有各自的QoS 策略,共计22 种QoS 策略。

由于机载嵌入式环境下的计算资源、网络带宽等限制以及具体的使用场景,对DDS 标准进行裁剪和自主化定制:

(1)机载嵌入式环境下不再区分通信域,所有分布式应用均默认处于一个域,可以直接通过主题进行数据传输;

(2)主题不再作为实体对象,只作为消息的标识,且不再由主题定义消息的数据结构,由系统综合人员通过接口控制文件(interface control document,ICD)进行定义;

(3)将DDS 标准规定的6 类实体裁剪到3 类,包括参与者、写者和读者。 每个写者和读者必须与一个主题绑定。 参与者与机载分布式应用一一对应,负责创建、删除和管理写者和读者;写者为应用软件提供发送接口,维护发送缓冲区,负责将应用数据放入发送缓冲区并发送主题数据;读者为应用软件提供接收接口,维护接收缓冲区,负责接收主题数据并放入接收缓冲区。

(4)将QoS 策略裁剪到9 种,且只与写者/读者绑定,每个写者/读者均需要配置自身的QoS 策略,用来对写者和读者之间的发布/订阅通信进行控制。

裁剪和自主化定制后的发布/订阅模型图如图3 所示,该模型相比于DDS 标准的发布/订阅模型具有以下优点:

图3 基于主题的发布/订阅模型图

(1)将主题与ICD 绑定,大幅度提高航电系统集成人员的可操作性,减少应用软件数据结构定义的冗余;

(2)简化数据发送和接收涉及的数据结构,缩短DDS协议包头长度,减少软件自身及网络传输占用的内存;

(3)优化发送、接收和自发现流程,减少内存拷贝次数,缩减数据发送和接收的协议处理时间,提高动态组网效率。

3.2 状态转换设计

数据发布订阅服务软件状态包括初始化、就绪、匹配及停止4 种,各状态间的转换关系如图4 所示。

图4 软件状态转换图

(1)系统上电,操作系统启动后,软件处于初始化状态;

(2)根据应用软件传入的传输服务配置进行初始化,记录配置数据并申请所需的系统资源,如果初始化成功则软件处于就绪状态,此时等待远程主题上线;如果初始化失败则软件转入停止状态;

(3)如果通过自发现完成主题发现,判断远程主题上线,则软件处于匹配状态,此时已建立数据传输通道,用户可以通过写者和读者发送和接收消息;

(4)如果连接中断导致远程主题下线,则软件回到就绪状态,此时需要重新等待远程主题上线;

(5)如果初始化失败或者运行过程中系统掉电或崩溃,软件停止工作,不再提供服务。

3.3 发送/接收过程

3.3.1 航电系统应用软件发送主题消息的详细流程如下:

(1)应用软件调用初始化接口完成数据发布订阅服务初始化,并调用创建连接接口创建主题对应的写者/读者,此后参与者开始接收消息;

(2)数据发布订阅服务软件在航电系统内通过自发现机制动态组网,完成参与者和主题的自发现;

(3)应用软件调用获取连接参数接口获取连接id,此时根据连接对应的主题id 检索参与者的本地写者表,如果不存在该主题返回错误;如果存在该主题返回其对应的连接id;

(4)应用软件调用发送消息接口,由主题对应的写者发送消息;

(5)编者将用户消息放入发送缓冲区,并检索远程读者表,如果存在已经建立自发现的远程读者,则通过网络向这些远程读者发送用户消息,否则,忽略本条主题消息。

3.3.2 航电系统应用软件接收主题消息的详细流程如下:

(1)应用软件调用初始化接口完成数据发布订阅服务初始化,并调用创建连接接口创建主题对应的写者/读者,此后参与者开始接收消息;

(2)数据发布订阅服务软件在航电系统内通过自发现机制动态组网,完成参与者和主题的自发现;

(3)参与者收到主题消息,首先检索参与者的本地读者表,如果不存在该主题,直接忽略本条主题消息;如果存在该主题,再检索该主题的远程写者表,若存在且远程写者已上线,则放入接收缓冲区,否则,忽略本条主题消息;

(4)应用软件调用获取连接参数接口获取连接id,此时根据连接对应的主题id 检索参与者的本地读者表,如果不存在该主题返回错误;如果存在该主题返回其对应的连接id;

(5)应用软件调用接收消息接口,从主题对应的读者接收缓冲区读取消息。

4 功能及性能测试

数据发布订阅服务软件已经在航电系统地面仿真环境下完成系统集成和功能、性能测试。 硬件环境为ICP 的通用输入输出(general process input/output, GPIO)模块,软件环境包括国产天脉1、天脉3 嵌入式操作系统,网络环境包括光纤通道(fibre channel,FC)总线和UDP 网络,测试情况如表1 所示。

表1 数据发布订阅服务软件测试

通过以上测试结果可以看出,数据发布订阅服务软件发布/订阅功能正常,时延及吞吐量性能满足要求,且长时间运行仍能保持稳定状态,充分证明设计方案的可行性。

5 结语

本文在DDS 的基础上,根据机载嵌入式环境限制及需求,设计了一种航电系统数据发布订阅服务软件,支持以数据为中心的基于主题的发布/订阅通信,为应用软件屏蔽操作系统和网络差异,提供统一的传输服务端接口,大大提高了机载分布式应用软件的可移植性。 同时基于主题的发布/订阅服务增加了机载分布式节点的网络灵活性,满足机载分布式应用的低时延、高可靠性、松耦合的要求。 在下一步研究工作中,将进一步扩展支持的QoS 策略,优化数据通信过程,同时扩展传输服务以支持其他通信模式。

猜你喜欢
航电参与者消息
休闲跑步参与者心理和行为相关性的研究进展
一张图看5G消息
民用飞机航电系统虚拟教学资源建设
浅析打破刚性兑付对债市参与者的影响
某型无人直升机航电舱热设计优化
航电枢纽清污系统改造
海外侨领愿做“金丝带”“参与者”和“连心桥”
消息
消息
消息