DDS元模型、应用模型

DDS简介

DDS (Data Distribution Service ,数据分发服务 ) 是一种基于数据的通信中间件标准,目的是建立分布式系统的高质量的数据通信。目前广泛应用于航空航天、汽车自动驾驶以及机器人、物联网等领域。 DDS 的本质是一个数据总线,通过在提供一个共享数据空间,实现各个系统之间的通信。

DDS 使用发布-订阅通信模式来创建去中心化、架构独立、可扩展的异步网络。DDS的标准框架中,系统之间可以通过对一个Topic的发布和订阅进行通信。在Topic上可以指定QoS以保证服务质量。

DDS 有什么

DDS 首先定义了通信的基础,也就是一个共享数据空间,有如下构成:

• 全局数据空间( Global Data Space )

• 域 (Domain)

• 主题( Topic )

全局数据空间 ( Global Data Space )

在 DDS 中, DDS 网络被称为全局数据空间( Global Data Space )。

域( Domain )

在全局数据空间内,您可以创建称为域( Domain )的网络的一部分.域( Domain )由域名( Domain Name )和数字域 ID ( Domain ID. ) 标识.全局数据空间( Global Data Space )内可以有一个或多个域( Domain )。

主题( Topic )

在域( Domain )中有主题 ( Topic ) .主题 ( Topic ) 描述网络上传输的数据的类型.例如,如果您有一个应用程序希望使用 DDS 接收有关天气的信息,那么主题 ( Topic ) 可以是温度.域( Domain )可以有一个或多个主题 ( Topic ) .如果您在不同的域( Domain )中有相同的主题 ( Topic ) ,则它们被视为不同的主题 ( Topic )。

DDS 标准模型然后定义了 基于数据的操作对象和服务质量参数,包括:

• 发布者和订阅者 ( Publisher 和 Suscriber )

• 数据读取器、数据写入器和数据样本 (DataReaders, DataWriters, and Data Samples)

• 服务质量 (QoS)

发布者和订阅者( Publisher 和 Suscriber )

使用 DDS 的应用程序被称为域参与者( Domain Participant ),因为它们参与了域( Domain ).发送数据的应用程序称为发布者 (Publisher) ,接收数据的应用程序称为订阅者 (Suscriber) .域参与者 (Domain Participant) 可以是发布者 (Publisher) 、订阅者 (Suscriber) 或两者兼而有之。

数据读取器、数据写入器和数据样本 (DataReaders, DataWriters, and Data Samples)

数据作为数据样本 (Data Sample) 在 DDS 网络上发送和接收,由 DDS 数据类型指定.一个主题 (Topic) 注册一个 DDS 数据类型,然后称为注册类型 (Registered Type) ,以指定必须用于就该主题 (Topic) 进行通信的数据类型. Publisher 使用 DataWriter 在 DDS 网络上发送数据.一个发布者 (Publisher ) 可以有一个或多个 DataWriters , 一个 DataWriter 可以发布一个或多个 Topic . Subscriber 使用 DataReader 从 DDS 网络接收数据. Subscriber 可以有一个或多个 DataReader ,一个 DataReader 可以订阅一个或多个 Topic。

服务质量 (QoS)

除了能够发送和接收数据之外,还可以为 Publisher 、 Subscriber, 或者 DataReaders 、 DataWriters 指定描述数据传输质量的服务质量 (QoS) .众所周知, DDS 有几个 QoS 策略来帮助确保对数据传输的精确控制.您可以为这些实体分配单独的 QoS 策略,也可以分配一组称为 QoS 配置文件的 QoS 策略。

为了更好的理解 DSS 的各种对象的逻辑关系, DSS 规范还提供了元模型,如下是 DSS DCPS 的元模型的简化图:

DDS 的工作过程

DDS 在各个系统之间的通信过程如下:

• Publisher 通过 DataWriter 写入数据到 Topic

• Subscriber 获得通知

• Subscriber 通过 DataReader 从 Topic 读取数据.

为了保证实时性和性能要求,可以在 Topic 上面定义能够满足性能需求的 QoS (服务质量参数),这样,订阅和通知就可以基于 QoS 参数确定交互的时机,进而保证实时性。

如下的 UML 顺序图说明了 DDS 的订阅通知场景中各个对象的交互过程。

DDS 的数据发布过程如下:

DDS 的数据接收过程如下:

DDS 的 实现

DDS 的标准 由对象管理组 (OMG) 标准指定.该标准提供了说明如何配置 DDS 网络以及应用程序应如何使用 DDS 网络的规范. DDS 标准由几个不同的 DDS 供应商实施.每个供应商都可以使用自己选择的编程语言来实施 DDS 标准.尽管有各种低级实现,各个 DDS 供应商的应用程序是可互操作的(使用一个供应商的应用程序可以与不同供应商的应用程序通信),因为它的供应商是按照 DDS 标准进行实现的. DDS 应用程序,由前面描述的定义组成(例如, Domain, Topic, Data Sample, Publisher, Subscriber )可以通过使用 XML 或 IDL 规格以与编程语言无关的方式定义.这些 XML 和 IDL 规格提供了在具有不同编程语言实现的不同供应商之间移植 DDS 应用程序的能力。

DDS模型样例

为了让读者更好的理解和使用 DDS ,我们建立了 DDS 的模型样例,内容如下

DDS 模型样例提供如下内容:

• DDS Example Models :提供 2 个模型示例的 PIM (平台无关的模型)

• 模型示例 1 : HelloWorld

• 模型示例 2 : Net Chat

• PSM – OSPLDDS :面向 OSPLDDS 的平台相关模型的映射

• PSM – RTIDDS :面向 RTIDDS 的平台相关模型的映射

• «qosPolicyLibrary» QoS Policies : QoS 策略库

下面逐一介绍。

DDS Example Models

这个 DDS 示例模型举例说明了 有效的使用 DDS 的 UML Profile 进行 DDS 应用的建模。

也举例说明了使用 UML 对数据为中心的发布订阅( DCPS )层和数据本地重建层 r (DLRL) 进行建模以便产生可执行的源代码模型,以便更好地集成。

模型示例1:HelloWorld

领域图:Hello World DCPS

如下是 Hello World DCPS 领域图:

这个图包含数据为中心发布订阅元素,这些元素用于 Hello World DDS 应用。

这个图定义 2 个参与者,分别负责发布和订阅主题数据,这些主题数据被 Hello World 主题所定义。

类型图:Hello World

这个图包含Hello World DDS应用的DCPS主题和IDL类型元素,它定义了DDS主题和它的 相应的数据结构。而这些数据结构被Hello World Type 定义。

应用图:Hello World

这个图包含了领域参与者和应用目标元素(这些元素定义了这Hello World 应用的每个实现) 每个应用目标定义了一个领域参与者的实现的“用法“。而这个领域参与者是为了定义软件语言和平台。

模型示例2: Net Chat

DCPS

领域图: Net Chat DCPS Domain Diagram

这个图包含以数据为中心的发布和订阅元素。这些元素是为 Net Chat DDS 应用定义的。

这个图定义了 2 个参与者,它们可以发布和订阅 主题数据,而这些主题数据被用户和消息主题所定义。

类型图:Net Chat

这个图包含 Net Chat DDS Application 的 DCPS 和 IDL 类型的元素,它定义了 DDS 的主题和他们的对应的数据结构(这些数据结构被定义为消息和用户类型)。

DLRL

Net Chat Local Reconstruction Diagram

这个图包含 Net Chat Application 的 DLRL 类和缓存元素(这些类和缓存元素定义了本地重建的内容),每个 DLRL 类定义了一个 DCPS 主题数据的本地重建,它们由 NetChat 的缓存元素提供服务,这些缓存元素为 ChatRoom 领域的参与者提供重建服务。

Mapping 图

这个图包含 Net Chat Application 的 DLRL 类和 IDL 类型元素。它们定义了在 DLRL 类和主题数据之间的映射。每个 DLRL 类定义了属性以便映射到特定的字段,这些字段被定义在对应的 IDL 主题类型。它们也定义了互相之间的“关系“,这些关系建立了在 2 各类之间的数据依赖。

Application

Net Chat Application 图

这个图包含领域参与者( Domain Participant )和应用目标 ( Application Target ) 元素。它们定义了 Net Chat Application 的每个实现。 每个应用目标( Application Target )为特定的软件编程语言和平台定义了一个领域参与者( Domain Participant )的实现的“ usage “ 。

PSM – OSPLDDS

特定平台的模型 ( Platform Specific Models,PSM )- OpenSplice DDS.

这个图包含为每个示例应用自动生成的模型集合。每个包包含软件类的集合。这些软件类为 Open Splice DDS 平台实现了每个应用。

PSM – RTIDDS

特定平台的模型 (Platform Specific Models,PSM)- RTI DDS 。

这个图包含为每个示例应用自动生成的模型集合。每个包包含软件类的集合。这些软件类为 RTI DDS 平台实现了每个应用。

«qosPolicyLibrary» QoS Policies

QoS Policy Library (服务质量 策略库)。

这个图包含 DoSe 策略元素,为一个 DDS 设计提供了一个 QoS 策略数值的“库“

通过定义由这些元素类型化的 qosProperty 项,每个 DCPS 元素都可以使用这些元素。

以上是采用EA建立的DDS完整的示例,更多请浏览 : 模型库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值