OpenDDS开发指南V3.20之前言

在这里插入图片描述

本文所有翻译采用谷歌翻译。最近要学习下openDDS,英文看起来有点麻烦,记录一下谷歌翻译的结果。

前言

什么是 OpenDDS?

OpenDDS 是一组相关的对象管理组 (OMG) 规范的开源实现。

1)实时系统数据分发服务 (DDS) v1.4(OMG 正式文件/2015-04-10)
本规范详细介绍了 OpenDDS 为实时发布和订阅应用程序实现的核心功能,并在本文档中进行了描述。

2)实时发布-订阅有线协议DDS互操作有线协议规范(DDSI-RTPS)v2.3(OMG文档正式/2019-04-03)
虽然文档编号是 v2.3,但它指定了协议版本 2.4。
本规范描述了 DDS 实现之间的互操作性要求。

3)DDS 安全 v1.1(OMG文件正式/2018-04-01)
通过身份验证和加密功能扩展 DDS。
OpenDDS 对 DDS 安全规范的支持在下面的第 14 章中描述。

4)DDS (XTypes) v1.3 的可扩展和动态主题类型(OMG 文件正式/2020-02-04)
定义了用于在 DDS 主题上交换的数据的类型系统的详细信息,包括如何对模式和数据进行编码以进行网络传输。
DDS-XTypes 的详细信息在第 16 章中。

OpenDDS 由 Object Computing, Inc. (OCI) 赞助,网址:https://www.opendds.org.

许可条款

OpenDDS 在开源软件模型下可用。源代码可以免费下载,并开放供检查、审查、评论和改进。可以在您和您客户的所有系统中自由安装。开发以及运行许可证不收费。 源代码的设计目的是在各种硬件和操作系统架构中进行编译和使用。 您可以根据自己的需要在许可协议的条款内对其进行修改。 您不得拥有 OpenDDS 软件的版权。 有关许可条款的详细信息,请参阅 OpenDDS 源代码分发中包含的名为 LICENSE 的文件或者访问 http://www.opendds.org/license.html

OpenDDS 使用了其他开源软件产品,包括 MPC(Make Project Creator)、ACE(自适应通信环境)和 TAO(ACE ORB)。

有关这些产品的更多信息,请访问 OCI 的网站:
http://www.objectcomputing.com/products

OpenDDS 是开源的,开发团队欢迎代码、测试和想法的贡献。 用户的积极参与确保了稳健的实施。 如果您有兴趣为 OpenDDS 的开发做出贡献,请联系 OCI。 请注意,任何贡献并成为 OpenDDS 开源代码库一部分的代码都受与 OpenDDS 代码库的其余部分相同的许可条款的约束。

关于本指南

本开发人员指南对应于 OpenDDS 版本 3.20。 本指南主要侧重于使用和配置 OpenDDS 以构建分布式发布订阅应用程序的细节。 虽然它确实提供了 OMG 数据分发服务的一般概述,但本指南并不旨在提供该规范的全面覆盖。 本指南的目的是帮助您尽快精通 OpenDDS。

3.20 版本的亮点

补充:

  • 添加了 host_name 共享内存传输配置选项 (#3386)
  • 添加了用于演示问题的示例测试 (#3322)
  • 为 opendds_idl 添加了 --old-typeobject-encoding 选项与 OpenDDS 3.18.0 之前的 TypeObject 兼容 (#3263)
  • 为 ServiceParticipant::shutdown() 添加了返回码 (#3159, #3270)
  • CMake模块:
    • 改进了安装使用 OpenDDS 的 CMake 项目的支持 (#3315、#3354、#3367、#3368、#3393)
      • 如果使用 CMake 3.21 或之后版本,OpenDDS、ACE 和 TAO现在可以使用install(IMPORTED_RUNTIME_ARTIFACTS)安装
        • 为了帮助实现这一点,添加了一个名为 opendds_get_library_dependencies的新函数。
      • 为了帮助安装生成的文件,OPENDDS_TARGET_SOURCES 添加作为 PUBLICINTERFACE 范围的一部分传入和生成的文件列表到目标的属性上。
      • 有关更多这些功能的详细信息,请参阅 docs/cmake.md文件。
    • 添加了一个 OPENDDS_DEFAULT_SCOPE 选项,允许更改 OPENDDS_TARGET_SOURCES 的默认范围 (#3315)
    • 支持 INSTALL_LIBmake install 一起使用以更改 lib 目录的名称 (#2879)
      • 注意:这需要将 CMake 模块安装目标从 lib 更改为 share.\

平台支持和依赖项:

  • 支持 Visual Studio 2022 (#3267)
  • 更新为使用 C++20 标准库 (#3288)
  • 支持 OpenSSL 3.0.1 及更高版本(#3358、#3404)
  • 更新了 Wireshark 解析器以与 GLib 2.68 及更高版本一起使用 (#2918)
  • 移除 Boost 作为可选依赖项 (#3323)
  • 更新了 RapidJSON 子模块 (#3284)

修复:

  • 修复了阻止同一结构中的 2 个序列 匿名类型的问题 (#3415)
  • 修复了使用多播传输时实体关联的问题 (#3377)
  • 修复了问题 #3268,opendds_idl 中的段错误 (#3374)
  • 修复了 DataReaderImpl_T 分配器的线程安全性(#3335、#3403)
  • 改进数据表示的处理方式 (#3233)
  • 修复了 assert_liveliness 的实例生命周期问题 (#3241)
  • RTPS:
    • 改进了远程地址的内部处理以减少初始流量(#3375)
    • 通用 ICE 改进(#3298、#3218)
    • RtpsRelay 的改进(#3257、#3240、#3237)
    • 检查无效的 RTPS 参数长度 (#3405)
    • CMake 模块:
      • 修复了同时在一个目标上使用install(EXPORT)时候又使用OPENDDS_TARGET_SOURCES出现的问题 (#3315)
      • 修复了问题 #1297,因为 opendds_idl 生成了不正确的包含路径

(#3315)

ACE/TAO 版本兼容性

OpenDDS 3.20 兼容 OCI TAO 2.2a(包括 ACE)的当前补丁级别,以及 ACE 6.x / TAO 2.x 系列中当前的 DOC Group 微版本。 有关详细信息,请参阅 $DDS_ROOT/README.md 文件。

公约

本指南使用以下约定:

约定描述
Fixed pitch text表示用户将使用键盘输入的示例代码或信息。
Bold fixed pitch text表示已从先前示例修改的示例代码或出现在菜单或对话框中的文本。
斜体文字表示重点。
水平省略号表示该语句正在省略文本
垂直省略号垂直省略号表示示例中省略了一段代码。

Coding Examples

在本指南中,我们使用编码示例来说明主题。 本指南中的示例仅用于说明目的,不应被视为“生产就绪”代码。 特别是,有时将错误处理保持在最低限度,以帮助读者专注于示例中呈现的特定功能或技术。

所有这些示例的源代码都作为 OpenDDS 源代码分发的一部分在$DDS_ROOT/DevGuideExamples/ 目录中提供。 MPC 文件提供了用于生成构建工具特定文件的示例,例如 GNU Makefiles 或 Visual C++ 项目和解决方案文件。 每个示例都提供了一个名为 run_test.pl 的 Perl 脚本,因此您可以轻松地运行它。

相关文件

在本指南中,我们参考了由对象管理组 (OMG) 和其他来源发布的各种规范。

OMG 引用采用 group/number 形式,其中 group 代表负责制定规范的 OMG 工作组,如果规范已被正式采用,则为关键字formal,数字代表规范制定月份内的年、月和序列号 释放。

例如,OMG DDS 1.4 版规范被称为:formal/2015-04-10

您可以直接从 OMG 网站下载任何引用的 OMG 规范,方法是在 http://www.omg.org/cgi-bin/doc? 到规范的参考。 因此,规范formal/07-01-01变为http://www.omg.org/cgi-bin/doc?formal/07-01-01

将此目标提供给 Web 浏览器应该会将您带到一个站点,您可以从该站点下载引用的规范文档。

有关 OpenDDS 的其他文档由 Object Computing, Inc. 制作和维护,可从 OpenDDS 网站 https://www.opendds.org 获得。

以下是一些感兴趣的文件及其位置:

文件位置
Data Distribution Service (DDS) for Real-Time Systems v1.4 (OMG Document formal/2015-04-10)http://www.omg.org/spec/DDS/1.4/PDF
The Real-time Publish-Subscribe Wire Protocol DDS Interoperability Wire Protocol Specification (DDSIRTPS) v2.3 (OMG Document formal/2019-04-03)http://www.omg.org/spec/DDSI-RTPS/2. 3 /PDF
OMG Data Distribution Portalhttp://portals.omg.org/dds/
OpenDDS Build Instructions, Architecture, and Doxygen Documentationhttp://www.opendds.org/documentation.html
OpenDDS Frequently Asked Questionshttp://www.opendds.org/faq.html

支持的平台

OCI 定期在各种平台、操作系统和编译器上构建和测试 OpenDDS。 我们不断更新 OpenDDS 以支持更多平台。 有关最新的平台支持信息,请参阅发行版中的 $DDS_ROOT/README.md 文件。

客户支持

企业发现设计和构建强大且可扩展的复杂分布式应用程序需要大量经验、知识和金钱。 OCI 可以利用经验丰富的架构师的经验帮助您成功地构建和交付您的解决方案,这些架构师在当今的中间件技术方面拥有丰富的经验,并且了解如何利用 DDS 的强大功能。

我们的服务领域包括系统架构、大规模分布式应用架构和面向对象的设计和开发。 我们擅长 DDS (OpenDDS)、CORBA (ACE+TAO、JacORB 和 opalORB)、Java EE (JBoss)、FIX (QuickFIX) 和 FAST (QuickFAST) 等技术。

OpenDDS 的支持产品包括:
全天候支持,确保生产级系统的最高响应级别。

按需服务协议,用于识别和评估基于OpenDDS的解决方案开发和部署过程中可能出现的小错误和问题。

我们的架构师在安全、电信、国防、金融和其他实时分布式应用程序方面拥有特定而广泛的领域专业知识。

我们可以提供专业人员,他们可以在短期项目上为您提供帮助,如架构和设计审查、快速原型、故障排除和调试。

或者,对于更大的项目,我们可以提供导师、架构师和程序员与您的团队一起工作,在项目的整个生命周期中提供帮助和思想领导。

如需更多信息,请致电 +1.314.579.0066 或发送电子邮件至sales@objectcomputing.com 联系我们。

OCI技术培训

OCI提供了一个丰富的程序,它提供了50多个精益课程,旨在为开发者提供各种技术主题的坚实基础,如面向对象的分析和设计、C++编程、java编程、分布式计算技术(包括DDS)、模式、XML和UNIX/Linux。我们的课程清楚地解释了主要概念和技术,并通过实践练习演示了它们如何映射到现实世界的应用程序。

NOTE:
我们的培训服务不断变化,以满足客户的最新需求,并反映技术的变化。请务必访问我们的网站:http://www.objectcomputing.com/training了解我们教育项目的最新情况。

现场或远程课程

我们可以在贵公司的设施或远程提供以下课程,将它们与其他员工发展计划无缝集成。 有关 OCI 课程中的这些或其他课程的更多信息,请访问我们的在线课程目录 http://www.objectcomputing.com/training

CORBA 简介

在这个为期一天的课程中,您将了解分布式对象计算的好处; CORBA 在开发分布式应用程序中所起的作用; 何时何地应用 CORBA; CORBA 和未来的发展趋势.

使用 C++ 进行 CORBA 编程

在这个为期四天的实践课程中,您将学习:CORBA 在开发分布式应用程序中所起的作用;OMG 的对象管理架构; 如何用 C++ 编写 CORBA 客户端和服务器;如何使用 CORBA 服务,例如命名和事件;使用 CORBA 异常; 以及便携式对象适配器 (POA) 的基本和高级功能。

本课程还涵盖了使用 OMG 接口定义语言 (IDL) 的接口规范和 OMG IDL 到 C++ 语言映射的详细信息,并提供了在 C++ 中开发 CORBA 客户端和服务器的动手实践(使用 TAO).

使用 TAO 进行高级 CORBA 编程

在这个为期四天的密集实践课程中,您将学习:

  • 几个高级 CORBA 概念和技术以及 TAO 如何支持它们;
  • 如何配置 TAO 组件以优化性能和空间;
  • 如何使用 TAO 的各种并发模型来满足您的应用程序的端到端 QoS 保证;

该课程涵盖了最近对 CORBA 规范和 TAO 的新增内容,以支持实时 CORBA 编程,包括实时 CORBA。 它还涵盖了 TAO 的实时事件服务、通知服务和实施存储库,并提供了使用 C++ 开发高级 TAO 客户端和服务器的广泛实践。 本课程面向有经验且认真的 CORBA/C++ 程序员。

使用 ACE C++ 框架

在这个为期四天的实践课程中,您将学习如何使用 ACE(自适应通信环境)IPC 服务访问点 (SAP) 类和接受器/连接器模式来实现进程间通信 (IPC) 机制。 本课程还将向您展示如何在事件多路分解和调度中使用 Reactor; 如何使用 ACE 线程封装类类别实现线程安全应用程序; 以及如何确定合适的 ACE 组件以用于您的特定应用需求。

面向对象的设计模式和框架

在这个为期三天的课程中,您将学习与设计模式相关的关键语言和术语,了解关键设计模式,学习如何选择适当的模式以应用于给定的情况,并学习如何应用模式来构建强大的应用程序和框架。

该课程专为希望利用先进的面向对象设计技术的软件开发人员和具有强大编程背景的管理人员而设计,他们将参与设计和面向对象软件系统的实现。

使用 C++ 或 Java 进行 OpenDDS 编程

在这个为期四天的课程中,您将学习使用 OpenDDS 构建应用程序,OpenDDS 是用于实时系统的 OMG 数据分发服务 (DDS) 的开源实现。您将学习如何构建以数据为中心的系统,通过 OpenDDS 共享数据。 您还将学习配置 OpenDDS 以满足应用程序的服务质量要求。 本课程面向有经验的 C++ 或 Java 开发人员。

OpenDDS 建模软件开发工具包 (SDK)

在这个为期两天的课程中,开发人员和架构师获得了使用 OpenDDS 建模 SDK 设计和构建使用 OpenDDS 的发布/订阅应用程序的实践经验。

基于 Eclipse 的开源建模 SDK 使开发人员能够将应用程序的中间件组件和数据结构定义为 UML 模型,然后生成代码以使用 OpenDDS 实现模型。 然后可以编译生成的代码并将其与应用程序链接,从而为应用程序提供无缝的中间件支持。

使用 Boost 进行 C++ 编程

在这个为期四天的课程中,您将了解构成 Boost 的最广泛使用和最有用的库。 通过详细的专家指导培训和动手练习,学生将学习如何在自己的开发中轻松应用这些强大的库。 完成本课程后,学员将准备将 Boost 应用到他们的项目中,使他们能够更快地生成功能强大、高效且独立于平台的应用程序。

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bynull

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值