DDS (Data Distribution Service) 数据分发服务-规范中文翻译_002

DDS (Data Distribution Service) 数据分发服务-规范中文翻译_002

2.以数据为中心的订阅发布(DCPS)

2.1.概述

本节描述了DCPS。 DCPS定义应用程序用于发布和订阅数据对象值的功能。 它允许:

  • 发布应用程序以标识要发布的数据对象,然后为这些对象提供值。
  • 订阅应用程序以识别他们感兴趣的数据对象,然后访问其数据值。
  • 应用程序,用于定义主题,将类型信息附加到主题,创建发布者和订阅者实体,将QoS策略附加到所有这些实体,以及总结,使所有这些实体运行。

描述分为两个子章节:

  • 平台无关模型(PIM)。
  • 基于PIM的OMG IDL平台的平台特定模型(PSM)。

2.2 平台无关模型(Platform Independent Model ,PIM)

2.2.1概述和设计原理

2.2.1.1格式和约定

本子条款的目的是提供以数据为中心的发布订阅模型的平台无关模型的操作概述。为此,本子条款引入了很多术语。其中一些是常见术语,其在发布/订阅的上下文环境中的含义与常见用法不同。在合适的情况下,这些条款将用斜体 表示。其他术语在发布/订阅模型和本规范中的含义是唯一的,并作为类模型的关键元素。第一次使用这些术语时,它们将以粗体格式展示。后续再出现不再以任何方式突出显示。

除了UML图之外,构成服务的所有类都使用表格来记录。用于记录这些类的文档格式如下所示。
在这里插入图片描述

类方法部分的参数可以在参数名前面包含修饰符“in”,“out”或“inout”。 如果修饰符省略,则暗示参数是“in”参数。

在某些情况下,方法的参数或返回值是由包含部分元素的给定<类型>的集合。这表明了存在符号“<类型> []。”这种表示法并不意味着它将以数组形式实现。实际执行情况由平台特定模型(PSM)定义:它最终可能被映射到序列,列表或其他类型的集合。

例如,下面名为“MyClass”的类有一个属性,名为“my_attribute”,类型为“long”,一个简单的返回值类型为“long”的方法“my_operation”。该方法有四个参数。第一个参数“param1”是“long”型的输出参数; 第二个参数“param2”是“long”型的输入输出参数。第三个参数“param3”是“long”型的输入参数(in修饰符缺省)。第四个参数“param4”是“long”型的输入参数。
在这里插入图片描述
在平台无关模型(PIM)这一级别,我们将错误建模为类型为ReturnCode_t的返回码。每一种平台特定模型(PSM)可以将这些映射到任意返回码或异常。完整的返回码列表如下所示。

返回码 含义
OK 成功返回
ERROR 一般的、未指明的错误
BAD_PARAMETER 非法的参数值
UNSUPPORTED 不支持的方法,只能通过可选的方法返回
ALREADY_DELETED 此方法的对象目标已经被删除
OUT_OF_RESOURCES 服务耗完了完成方法所需的资源
NOT_ENABLED 某个实体的方法还未使能就被调用了
IMMUTABLE_POLICY 应用程序尝试修改一个不可变的QoS策略
INCONSISTENT_POLICY 应用程序指定一组互相之间不一致的策略
PRECONDITION_NOT_MET 方法的前置条件未满足
TIMEOUT 方法超时
ILLEGAL_OPERATION 在不适当的对象上或在不适当的时间(由规范或服务实现设置的策略确定)调用方法,没有可以改变的前提条件能够使方法调用成功
NO_DATA 表示方法在没有出现内部错误时未返回任何数据的短暂状况

任意返回类型为ReturnCode_t的方法都可能返回OK,ERROR或ILLEGAL_OPERATION。使用输入参数的任何方法都可以额外返回BAD_PARAMETER。任意工厂创建的对象的任何方法都可能额外返回ALREADY_DELETED。任何声明为可选的操作可以额外返回UNSUPPORTED。返回码OK,ERROR,ILLEGAL_OPERATION,ALREADY_DELETED,UNSUPPORTED和BAD_PARAMETER是标准返回码,本规范不会为每个方法明确提及它们。可能返回上述任何其他(非标准)错误码的方法本规范将明确说明。

应用程序使用已通过工厂上相应的删除方法删除的实体是错误的。如果应用程序执行此操作,则结果未指定,并且将取决于实现和平台特定模型(PSM)。在可以检测到使用已删除实体的情况下,方法调用应该失败并返回ALREADY_DELETED。


译文连载

上一篇:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_001

下一篇:DDS (Data Distribution Service) 数据分发服务-规范中文翻译_003


相关链接

《一文读懂DDS(数据分发服务)》

《BLUE DCS分布式数据连接解决方案》

【产品试用地址:海蓝云平台-Blue DCS】

发布了3 篇原创文章 · 获赞 5 · 访问量 987

猜你喜欢

转载自blog.csdn.net/DDS_CSIT/article/details/104673791
dds