书籍详情

分布式实时系统数据分发服务

分布式实时系统数据分发服务

作者:杨京礼 等 著

出版社:电子工业出版社

出版时间:2021-01-01

ISBN:9787121403217

定价:¥69.00

购买这本书可以去
内容简介
  随着分布式实时系统规模的日益增大,对于系统内部通信实时性的要求也越来越高。数据分发服务(Data Distribution Service,DDS)是对象管理组织(Object Management Group,OMG)为分布式实时系统制定的新一代数据传输规范,能够为各种不同类型的分布式应用提供良好的解决方案。本书从DDS技术规范的核心内容、扩展标准和工程应用三个方面介绍了作者所在研究团队在该领域的**研究工作和多年技术积累。
作者简介
  杨京礼,1984年生,工学博士,副研究员,博士生导师。哈尔滨工业大学电子与信息工程学院,信息与通信工程学科。测控工程系副主任。
目录
第1章 绪论 1
1.1 分布式实时系统 1
1.1.1 分布式系统的定义与特征 1
1.1.2 分布式系统的软硬件结构 4
1.1.3 分布式系统的实时性需求 9
1.2 分布式实时系统通信模型 10
1.2.1 点对点模型 11
1.2.2 客户端/服务器模型 11
1.2.3 分布式对象模型 12
1.2.4 发布/订阅模型 14
1.3 数据分发服务概述 16
1.3.1 设计目标 17
1.3.2 标准结构 18
1.3.3 发展历程 22
1.3.4 应用领域 24
第2章 以数据为中心的发布/订阅 28
2.1 概念模型 28
2.2 组成模块 30
2.2.1 基础设施模块 31
2.2.2 域模块 35
2.2.3 主题模块 39
2.2.4 发布模块 42
2.2.5 订阅模块 46
2.3 实体关系 53
2.4 QoS策略 54
2.5 监听、状态、条件与等待集 58
2.5.1 通信状态及状态更改 58
2.5.2 基于监听器获取状态 62
2.5.3 基于条件和等待集获取状态 63
2.6 内置主题 66
第3章 数据域和域参与者 68
3.1 数据域和域参与者的关系 68
3.2 域参与者工厂 69
3.2.1 创建与删除域参与者 70
3.2.2 获取域参与者工厂实例 70
3.2.3 查询域参与者 71
3.2.4 设置与获取域参与者默认QoS策略 71
3.2.5 设置与获取域参与者工厂QoS策略 71
3.3 域参与者 72
3.3.1 创建与删除发布者 72
3.3.2 创建与删除订阅者 73
3.3.3 创建与删除主题 73
3.3.4 创建与删除内容过滤主题 74
3.3.5 创建与删除多重主题 75
3.3.6 查找主题与主题描述 76
3.3.7 获取内置订阅者 77
3.3.8 忽略域参与者、主题、发布与订阅 77
3.3.9 删除包含的所有实体 78
3.3.10 断言活跃度 78
3.3.11 设置与获取发布者默认QoS策略 78
3.3.12 设置与获取订阅者默认QoS策略 79
3.3.13 设置与获取主题默认QoS策略 80
3.3.14 获取数据域唯一标识 82
3.3.15 获取已发现的所有域参与者 82
3.3.16 获取已发现的域参与者数据 82
3.3.17 获取已发现的所有主题 82
3.3.18 获取已发现的主题数据 83
3.3.19 判断是否包含实体 83
3.3.20 获取当前时间 83
3.4 域参与者监听器 83
第4章 主题、内容过滤主题与多重主题 85
4.1 主题描述 85
4.1.1 获取所属域参与者 85
4.1.2 获取类型名称 85
4.1.3 获取名称 85
4.2 主题 85
4.2.1 获取主题不兼容状态 87
4.2.2 主题、实例和样本的区别与联系 87
4.3 内容过滤主题 89
4.3.1 过滤表达式 89
4.3.2 获取相关主题 90
4.3.3 设置与获取表达式参数 90
4.3.4 内容过滤主题示例 91
4.4 多重主题 92
4.4.1 多重主题表达式 92
4.4.2 设置与获取表达式参数 93
4.4.3 多重主题示例 94
4.5 主题监听器 95
第5章 发布者与数据发送 96
5.1 数据发送流程 96
5.2 发布者 97
5.2.1 创建、查找与删除数据写入者 98
5.2.2 挂起与恢复发布状态 99
5.2.3 开始与结束一套连贯的修改 100
5.2.4 等待应答 100
5.2.5 获取所属域参与者 101
5.2.6 删除包含的所有实体 101
5.2.7 设置与获取数据写入者默认QoS策略 101
5.2.8 复制主题QoS策略 103
5.3 数据写入者 104
5.3.1 注册与注销数据对象实例 104
5.3.2 带时戳注册与注销数据对象实例 105
5.3.3 获取实例的键值 106
5.3.4 查找实例 106
5.3.5 数据写入 106
5.3.6 带时戳数据写入 107
5.3.7 丢弃数据 107
5.3.8 带时戳丢弃数据 108
5.3.9 等待确认 108
5.3.10 获取活跃度丢失状态 108
5.3.11 获取提供的生存期丢失状态 108
5.3.12 获取提供的QoS策略不兼容状态 109
5.3.13 获取发布者匹配状态 109
5.3.14 获取主题 109
5.3.15 获取所属发布者 109
5.3.16 断言活跃度 109
5.3.17 获取匹配的订阅信息 109
5.3.18 获取匹配的订阅者 110
5.4 发布者监听器 110
5.5 数据写入者监听器 111
第6章 订阅者与数据接收 112
6.1 数据接收流程 112
6.2 数据样本信息分析 115
6.3 数据样本访问方式 118
6.4 订阅者 119
6.4.1 创建、查找与删除数据读取者 119
6.4.2 开始与结束数据访问 121
6.4.3 获取数据读取者 121
6.4.4 通知数据读取者 122
6.4.5 获取数据样本丢失状态 122
6.4.6 获取所属域参与者 122
6.4.7 删除包含的所有实体 122
6.4.8 设置与获取数据读取者的默认QoS策略 123
6.4.9 复制主题QoS策略 124
6.5 数据读取者 125
6.5.1 创建与删除读取条件 126
6.5.2 创建数据查询条件 126
6.5.3 读取数据样本 127
6.5.4 提取数据样本 129
6.5.5 带条件读取数据样本 130
6.5.6 带条件提取数据样本 130
6.5.7 读取下一个数据样本 131
6.5.8 提取下一个数据样本 131
6.5.9 读取实例 131
6.5.10 提取实例 132
6.5.11 读取下一个实例 132
6.5.12 提取下一个实例 133
6.5.13 带条件读取下一个实例 134
6.5.14 带条件提取下一个实例 135
6.5.15 返回租借 135
6.5.16 获取活跃度改变状态 136
6.5.17 获取请求的生存期丢失状态 136
6.5.18 获取请求的QoS策略不兼容状态 136
6.5.19 获取数据样本丢失状态 136
6.5.20 获取数据样本拒绝状态 136
6.5.21 获取订阅者匹配状态 136
6.5.22 获取主题描述 137
6.5.23 获取所属订阅者 137
6.5.24 获取键值 137
6.5.25 查找实例 137
6.5.26 删除包含的所有实体 137
6.5.27 等待接收所有历史数据样本 137
6.5.28 获取匹配的发布信息 138
6.5.29 获取匹配的发布者 138
6.6 读取条件 138
6.6.1 获取数据读取者 138
6.6.2 获取样本状态掩码 139
6.6.3 获取视图状态掩码 139
6.6.4 获取实例状态掩码 139
6.7 查询条件 139
6.7.1 获取查询表达式 140
6.7.2 设置和获取查询参数 140
6.8 订阅者监听器 140
6.9 数据读取者监听器 141
第7章 QoS策略与关联性 143
7.1 QoS策略详解 143
7.1.1 USER_DATA策略 143
7.1.2 TOPIC_DATA策略 144
7.1.3 GROUP_DATA策略 144
7.1.4 DURABILITY策略 144
7.1.5 DURABILITY_SERVICE策略 146
7.1.6 PRESENTATION策略 146
7.1.7 DEADLINE策略 147
7.1.8 LATENCY_BUDGET策略 148
7.1.9 OWNERSHIP策略 149
7.1.10 OWNERSHIP_STRENGTH策略 150
7.1.11 LIVELINESS策略 151
7.1.12 TIME_BASED_FILTER策略 152
7.1.13 PARTITION策略 153
7.1.14 RELIABILITY策略 154
7.1.15 TRANSPORT_PRIORITY策略 155
7.1.16 LIFESPAN策略 156
7.1.17 DESTINATION_ORDER策略 156
7.1.18 HISTORY策略 157
7.1.19 RESOURCE_LIMITS策略 158
7.1.20 ENTITY_FACTORY策略 159
7.1.21 WRITER_DATA_LIFECYCLE策略 159
7.1.22 READER_DATA_LIFECYCEL策略 160
7.2 注册、活跃度与所有权之间的关系 160
7.2.1 冗余系统的所有权解析 160
7.2.2 拓扑连接性中的损耗检测 161
7.3 QoS策略示例 162
第8章 DDS-RTPS协议 163
8.1 DDS-RTPS概述 163
8.2 结构模块 164
8.2.1 RTPS历史记录缓存 166
8.2.2 RTPS缓存更改 168
8.2.3 RTPS实体 168
8.2.4 RTPS参与者 169
8.2.5 RTPS端点 169
8.2.6 RTPS写入者 170
8.2.7 RTPS读取者 170
8.2.8 RTPS实体与DDS实体的关系 170
8.3 消息模块 173
8.3.1 类型定义 173
8.3.2 RTPS消息结构 173
8.3.3 RTPS消息接收器 175
8.3.4 RTPS子消息元素 176
8.3.5 RTPS帧头 180
8.3.6 RTPS子消息 181
8.4 行为模块 182
8.4.1 互操作的行为需求 183
8.4.2 RTPS协议的实现 183
8.4.3 写入者在每个匹配的读取者上的行为 184
8.4.4 符号约定 185
8.4.5 类型定义 185
8.4.6 RTPS写入者的参考实现 185
8.4.7 RTPS无状态写入者的行为 190
8.4.8 RTPS有状态写入者的行为 192
8.4.9 RTPS读取者的参考实现 194
8.4.10 RTPS无状态读取者的行为 197
8.4.11 RTPS有状态读取者的行为 198
8.4.12 写入者活跃度协议 199
8.5 发现模块 201
8.5.1 RTPS内置发现端点 202
8.5.2 SPDP协议 202
8.5.3 SEDP协议 206
8.5.4 交互过程 210
第9章 DDS-RPC机制 213
9.1 DDS-RPC概述 213
9.2 服务的定义与表示 214
9.2.1 服务定义规则 214
9.2.2 服务定义示例 215
9.3 服务映射 216
9.3.1 服务到DDS主题名称映射 216
9.3.2 服务到DDS主题数据类型映射 216
9.4 服务发现与匹配处理 220
9.4.1 DDS内置主题扩展 220
9.4.2 服务发现算法改进 222
9.5 请求与应答关联 223
第10章 Web-Enable DDS规范 225
10.1 Web-Enable DDS规范概述 225
10.2 WebDDS对象模型 227
10.2.1 对象模型概览 228
10.2.2 对象模型访问控制 229
10.2.3 DDS实体代理 235
10.3 REST架构下的Web-Enable DDS实现 259
10.3.1 资源映射 259
10.3.2 操作映射 259
10.3.3 返回值映射 263
10.3.4 对象表示 263
10.3.5 HTTP帧头格式 264
第11章 DDS规范的典型实现―OpenDDS 266
11.1 OpenDDS概述 266
11.1.1 兼容性 266
11.1.2 组成架构 267
11.2 使用OpenDDS 270
11.2.1 定义数据类型 270
11.2.2 处理IDL 272
11.2.3 实现发布端应用程序 274
11.2.4 实现订阅端应用程序 277
11.2.5 运行程序 281
11.3 运行时配置 281
11.3.1 配置方式 282
11.3.2 通用配置 283
11.3.3 发现配置 285
11.3.4 传输配置 296
第12章 基于OpenDDS的分布式实时系统开发与运行 307
12.1 开发环境搭建 307
12.1.1 开发工具选择 307
12.1.2 源代码下载 307
12.1.3 环境变量设置 307
12.1.4 源代码编译 308
12.2 应用程序开发 308
12.2.1 建立数据类型定义工程 309
12.2.2 建立发布端应用程序工程 310
12.2.3 建立订阅端应用程序工程 314
12.2.4 编写运行时配置文件 319
12.3 应用程序运行 319
12.3.1 使用DCPSInfoRepo运行应用程序 319
12.3.2 使用DDS-RTPS运行应用程序 321
参考文献 323
猜您喜欢

读书导航