技术文章

利用数据分发服务应对分布式交互式仿真的挑战

时间:2024-01-25

作者·赵鹏

在以网络为中心的通信中,信息的实时可用性在大规模分布式交互式仿真中至关重要。从多个模块生成的信息必须分发并提供给相关方,并提供一致的通信所需的 QoS。数据分发服务(DDS)实现高性能分布式交互式仿真应用的设计替代方案,DDS 是一种支持 QoS 的发布/订阅平台标准,适用于时间关键型、以数据为中心的大规模分布式网络。在军用、民用领域,均有较强的使用前景。

一、数据分布式服务

 

数据分发服务(DDS)是一种用于分布式实时应用程序的网络中间件,它简化了应用程序的开发、部署和维护,并在异构网络上提供实时关键数据的快速、可预测的分发。

DDS 规范提供两个级别的接口:一是低级别层,即以数据为中心的发布者订阅者(DCPS),高度可配置,与数据密切相关,并具有丰富的 QoS 策略来确定应用程序所需的行为。二是数据本地重建层(DLRL)是规范的较高层,旨在为开发人员提供易于使用的 DCPS 元素。它总结了应用程序使用面向编程对象通过其适当的类连接到 DCPS 的方式。

DDS 指定了一组连贯的配置文件,其目标是从小规模嵌入式控制系统到大规模企业管理系统等领域的实时信息可用性。每个 DDS 配置文件都添加了不同的功能,定义了 DDS 提供的服务级别,以实现“在正确的时间、正确的地点提供正确的数据范例”

  • 最小配置文件使用发布/订阅模型在小范围到大规模的通信环境中的多个发
  • 布者和订阅者之间提供高效的信息交换。该配置文件还涉及允许中间件匹配请求和提供的 QoS 参数的 QoS 策略。
  • 所有权概况为复制发布者提供了向感兴趣的各方表达细粒度特定信息的能力。
  • 内容订阅配置文件提供了改进内容过滤器信息的功能,如 SQL 语言中使用的功能。
  • 持久性配置文件提供交换信息的透明且宽容的持久性。

此外,DDS涉及旨在满足分布式实时应用程序需求的功能:以最小延迟进行高效数据传输,管理同一数据的多个源/接收器;每个使用 DDS 的多个独立通信网络(域)可用于通过相同的网络传输协议。应用程序只能参与其所属的域,也可以单独配置为参与多个域。

DDS 提供了一个用于在参与者之间共享信息的虚拟数据空间(全局数据空间)。应用程序可以读取和/或写入由标识符字段(域ID)、主题名称和密钥寻址的数据对象。

分布式应用程序之间的信息交换的组织基于发布/订阅(PS)系统,并借助以下结构:发送方的发布者和数据写入器,接收方的订阅者和数据读取器。下图说明了这些对象之间的关系。

  • 发布者:是负责实际发送数据的对象。它拥有并管理 DataWriter。应用程序使用 DataWriter 发送数据。一个 DataReader 只能由一个发布者拥有,而一个发布者可以拥有多个 DataWriter
  • 订阅者:是负责实际接收发布数据的实际对象。订户拥有并管理 DataReader。一个 DataReader 只能由单个订阅者拥有,而一个订阅者可以拥有多个 DataReader
  • Topic:DataWriter和DataReader的关联是通过Topic来进行的。主题将系统中的单个名称(ID 或 Key)、数据类型以及特定于每个数据的 QoS 参数关联起来。
  • 域:它提供了一个全局虚拟数据空间,具有相同域ID的参与者(发布者/订阅者)可以在其中交换信息。域由多个 DomainParticipant 组成,这些 DomainParticipant 将参与者隔离到多个子域中。
  • DomainParticipant:它是代表与域关联的DDS应用程序参与的实体。它充当 DDS 实体的容器和管理器。

 

二、分布式交互式仿真

 

分布式仿真旨在提出一种通用的通信架构,允许大规模模拟器的集成和互连。建模和仿真(M&S)包括用于测试、分析和训练的技术和工具,其中通过模型再现现实世界和概念系统。它可以减少原型设计、开发、测试和改进生命周期的时间和成本。此外,它还提供了评估模型性能的实用方法。分布式仿真的实现方法包括将系统框架中的 FMU 模型分配给不同 IP 的仿真引擎进行计算,以及将不同的 FMU 模型分配给当前仿真引擎中不同计算机线程进行更高效率地计算资源利用。同时,分布式仿真具有多源异构模型集成、第三方软件联合仿真、可视化与人机交互等特点。

DDS 将传输的数据指定为信号、流和状态。信号表征连续变化的数据,因此它们也被选为周期性流量。流是上下文先前发送的数据的快照;它们被选为零星数据。状态描述了分布式实体的最新状态,它们不会在固定周期发生变化,可以被选为非周期数据。

DDS 解决了 HLA 尚未解决的一些新方面,例如基于“请求/提供”合同的一组丰富的 QoS 策略,其中包括耐久性、活跃性、截止日期、传输优先级等,同时忽略了 HLA 解决的一些其他方面,例如时间管理和同盟管理。 QoS 策略为分布式应用程序提供了一种通用机制来控制实体的行为。

由于 QoS 包括单独的QoS 策略,它可能与系统中相应的实体相关联,例如Topic、DataWriter、DataReader、域参与者、发布者或订阅者。

DDS-DCPS 将多个 QoS 策略分为相关组。用户将采用所需的 QoS 策略来满足应用程序的特定需求。DDS 不支持时间管理服务,它主要是为并行和分布式系统(PADS)指定的。 HLA标准化 API 指定了保存/恢复服务,确保在分布式系统之间创建同步点,从而为应用程序提供更高的一致性和可靠性。

另一方面,HLA-RTI 允许应用程序选择它参与时间管理的程度。时间管理必须确保事件按正确的顺序传递到应用程序,但无法保证事件到达远程应用程序的顺序。事件并不按因果顺序发生。但这并不妨碍在多个分布式应用程序中获得非常好的性能。

 

三、PLATSIM仿真平台

 

基本上,PLATSIM 是一个分布式交互式仿真平台,用户通过发布/订阅中间件相互交互。 DDS 和 HLA 中间件均单独配置,以提供人在环仿真。

模拟器可以对车辆驱动进行视觉建模、评估单个驾驶员的动作、语音合成、语音识别和手势识别。

服务器支持根据教练或当前事件实施场景、周围交通计算、集体行动评估、符号信息(语音和手势)分析以及影响计算(交通环境)。

为了测量延迟,需要一个可靠的参考时间标准。模拟中使用的测试台使用网络时间协议(NTP)进行同步。 NTP 服务器用于使所有参与者与相同的参考时钟同步。

为了测量 HLA 中的单向延迟,开发了一种简单的参与者对象模型(FOM)和两个参与者。 FOM 由真实人机回路模拟器中使用的几个数据属性组成。发送方使用多播传输服务发布其数据。测量结果存储在跟踪文件中,然后单独分析。接收方订阅对象类和交互类。此外,还生成了包含发布者和订阅者的时间和数据信息引用的跟踪文件。

在基于 DDS 的模拟中,使用两个参与者进程测量网络延迟。订阅过程包括将订阅者与其匹配的发布者关联起来的操作,如下图所示。

事实上,DDS 使用实时发布/订阅有线协议 (RTPS) 来提供高数据速率通信。 RTPS 协议针对工业自动化领域,随后开发用于支持数据分发系统的要求。它被设计为能够在多播和无连接尽力而为传输协议(例如 UDP/IP)上运行。 RTPS 协议建立在 UDP(类似 RTP 的协议)之上。

此外,订阅过程选择了基于主题的订阅。因此,DDS 使用的每种数据类型都是使用 IDL 定义的。IDL 文件用于标识 DDS 处理的数据类型。这些数据类型由 RTIIDLGEN 编译器处理,生成使用 DDS 传输这些类型所需的代码。

基准测试的 IDL 结构

由于 DDS 允许使用不同的 QoS 级别,因此我们需要定义如何保证这些 QoS 级别。事实上,QoS 保证的匹配过程使用请求/提供(RxO)模型。订阅者 DataReader 请求的 QoS 小于发布者 DataWriter 提供的 QoS。主题已调整为使用与 DataReader 和 DataWriter 相同的 QoS。默认 QoS 设置同时应用于发布者和订阅者:可靠性 QoS 默认设置是尽力而为:DDS 将仅向 DataReader 发送一次数据样本。无需花费精力或资源来跟踪是否收到发送的样本。数据样本可能会丢失。

 

总结

DDS 的目的是促进大规模分布式系统中分布式数据的有效使用,他们试图统一几个特定供应商实现的通用做法,以实现现有应用程序的互操作性和可重用性。DDS 架构在某些方面很常见:使用发布/订阅范式和提供面向消息的去中心化通信模型。生产者和消费者之间的数据传播允许一对一、一对多、多对一和多对多的通信。HLA 是通用架构,旨在互操作非常多的分布式系统,而 DDS 是以数据为中心的通信框架,具有丰富的 QoS 策略集,解决了高性能通信系统中信息交换的挑战。

技术文章

姓名

公司

电话

邮箱