求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code
会员   
订购 | 案例 | 建模扩展语言 | 模型框架 | 学习资源 | 培训&咨询 | 解决方案 | 用户组 | 客户专区 | 联系我们
  2768 次浏览  14 次
模型库 > 模型库
在线模型库

模型库简介  
WebEA
学习资料
产品购买
DDS元模型、应用模型
作者:俎涛(火龙果软件工程)
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完整的示例,更多请浏览 : 模型库  
如果您希望了解更多信息:
  • 欢迎访问建模者频道 http://modeler.org.cn/
  • 也欢迎直接联系我们 zhgx@uml.net.cn ,010-62670969
  • 2768 次浏览  14 次