第1章概述1
1.1体系集成需求1
1.1.1系统集成的问题2
1.1.2耦合性问题2
1.1.3复杂数据流问题3
1.2什么是数据分发服务4
1.3什么是中间件5
1.4网络通信模型5
1.5什么是“以数据为中心”7
1.6DDS对开发者有什么帮助8
第2章DDS架构11
2.1设计理念12
2.2可扩展的传输框架12
2.2.1以数据为中心的发布/订阅14
2.2.2数据本地重构层15
2.3DDS的发现15
2.4线程处理17
2.5配置17
2.6DCPS通信17
2.6.1DCPS通信概述17
2.6.2域和域参与者21
2.6.3数据写入者和发布者23
2.6.4数据读取者和订阅者23
2.6.5主题、实例与关键字24
2.6.6服务质量(QoS)策略控制通信行为27
2.6.7监听器28
2.6.8条件28
第3章数据类型和数据样本29
3.1数据类型概述30
3.1.1序列31
3.1.2字符串和宽字符串31
3.1.3类型代码31
3.2内置数据类型32
3.2.1注册内置类型32
3.2.2为内置类型创建主题33
3.2.3字符串内置类型34
3.2.4关键字字符串内置类型36
3.2.5管理内置数据类型的内存39
3.2.6内置数据类型的类型代码41
3.3使用IDL创建用户数据类型42
3.3.1可变长度类型43
3.3.2值类型44
目录数据分发服务——以数据为中心的发布/订阅式通信3.4与用户数据类型动态互动45
3.4.1类型代码概述45
3.4.2定义新类型46
3.5使用数据样本46
3.5.1具体类型的对象47
3.5.2动态定义数据类型的对象47
第4章服务质量(QoS)策略49
4.1QoS策略概述49
4.1.1默认QoS策略49
4.1.2DEADLINE(截止期限(T,DR,DW))54
4.1.3DESTINATION_ORDER(目标顺序(T,DR))54
4.1.4DURABILITY(持久性(T,DR,DW))55
4.1.5ENTITY_FACTORY(实体工厂(DP,Pub,Sub))56
4.1.6GROUP_DATA(组数据(Pub,Sub))57
4.1.7HISTORY(历史(T,DW,DR))58
4.1.8LATENCY_BUDGET(时延预算(T,DR,DW))59
4.1.9LIFESPAN(寿命(T,DW))61
4.1.10LIVELINESS(活跃度(T,DW,DR))62
4.1.11OWNERSHIP、OWNERSHIP STRENGTH(所有权(T)、
所有权强度(DW)) 63
4.1.12PARTITION(分割(Pub,Sub))64
4.1.13PRESENTATION(呈现(Pub,Sub))65
4.1.14READER_DATA_LIFECYCLE(读取者数据生命周期(DR))66
4.1.15RELIABILITY(可靠性(T,DW,DR))67
4.1.16RESOURCE_LIMITS(资源限制(T,DW,DR))68
4.1.17TIME_BASED_FILTER(基于时间的过滤(DR))69
4.1.18TOPIC_DATA(主题数据(T))69
4.1.19TRANSPORT_PRIORITY(传输优先级(T,DW))70
4.1.20USER_DATA(用户数据(T,DP,DR,DW))71
4.1.21WRITER_DATA_LIFECYCLE(写入者数据生命周期(DW))72
4.1.22DURABILITY_SERVICE(持久性服务(DW))72
4.1.23OWNERSHIP_STRENGTH(所有权强度(DW))73
4.2策略示例73
第5章实体75
5.1所有实体的一般操作75
5.1.1创建和删除实体76
5.1.2启用实体76
5.1.3获取实体的实例句柄77
5.1.4获取状态和状态改变77
5.1.5获取和设置监听器78
5.1.6获取状态条件78
5.1.7获取和设置服务质量策略78
5.2实体的服务质量策略79
5.2.1QoS请求vs.提供兼容性——RxO属性79
5.2.2C语言的特殊服务质量策略处理80
5.3通信状态81
5.4监听器实体83
5.4.1监听器的类型83
5.4.2创建和删除监听器84
第6章主题86
6.1主题概述86
6.1.1创建主题86
6.1.2删除主题89
6.1.3设置主题的服务质量策略89
6.2内容过滤主题92
6.2.1内容过滤主题概述92
6.2.2过滤器适用的地方——发布与订阅方93
6.2.3创建内容过滤主题93
6.2.4删除内容过滤主题95
6.2.5使用内容过滤主题95
第7章发送数据96
7.1发送数据的步骤96
7.2发布者97
7.2.1显式与隐式地创建发布者97
7.2.2创建发布者100
7.2.3删除发布者101
7.2.4设置发布者的服务质量策略101
7.2.5创建发布者监听器107
7.2.6寻找一个发布者的相关实体108
7.2.7等待应答109
7.2.8发布者状态109
7.2.9暂停和恢复发布109
7.3数据写入者109
7.3.1创建数据写入者111
7.3.2获取所有数据写入者113
7.3.3删除数据写入者113
7.3.4创建数据写入者监听器113
7.3.5检查数据写入者的状态114
7.3.6数据写入者的状态115
7.3.7使用一个类型特定数据写入者(FooDataWriter)121
7.3.8写入数据122
7.3.9刷新批量数据样本124
7.3.10写入相关数据样本组124
7.3.11等待应答125
7.3.12管理数据实例(使用关键字控数据类型)125
7.3.13设置数据写入者服务质量策略128
7.3.14实体间的导航关系135
7.3.15断言活跃度136
第8章接收数据137
8.1接收数据的步骤137
8.1.1接收数据的准备137
8.1.2使用一种机制接收数据138
8.2订阅者139
8.2.1显式与隐式地创建订阅者141
8.2.2创建订阅者142
8.2.3删除订阅者143
8.2.4设置订阅者服务质量策略144
8.2.5开始和终止组顺序的访问149
8.2.6设置订阅者监听器149
8.2.7用特定样本获取数据读取者151
8.2.8寻找一个订阅者的相关实体152
8.2.9订阅者的状态152
8.3数据读取者153
8.3.1创建数据读取者155
8.3.2获取所有数据读取者157
8.3.3删除数据读取者157
8.3.4建立数据读取者监听器157
8.3.5检查数据读取者状态和状态条件158
8.3.6等待历史数据160
8.3.7数据读取者的状态160
8.3.8设置数据读取者服务质量策略168
8.3.9实体间的导航关系172
8.4使用数据读取者访问数据(读取或获取)173
8.4.1使用类型指定数据读取者(FooDataReader)173
8.4.2借出和返回数据以及样本信息序列174
8.4.3用读取或提取访问数据样本175
第9章使用域178
9.1域和域参与者的基本原理178
9.2域参与者工厂180
9.2.1设置域参与者工厂QoS策略181
9.2.2获取和设置域参与者的默认QoS策略182
9.2.3释放域参与者工厂所用资源183
9.2.4查找域参与者183
9.2.5从QoS策略配置文件获取QoS策略值183
9.3域参与者184
9.3.1创建域参与者187
9.3.2删除域参与者189
9.3.3删除包括的实体189
9.3.4选择域ID和创建多个域189
9.3.5建立域参与者监听器190
9.3.6设置域参与者QoS策略192
9.3.7查找主题描述197
9.3.8寻找主题197
9.3.9获取隐式发布者或订阅者198
9.3.10断言活跃度199
第10章条件和监听器200
10.1条件和监听器概述200
10.2通信状态类型200
10.2.1主题状态类型200
10.2.2订阅者状态类型201
10.2.3数据读取者状态类型201
10.2.4数据写入者状态类型203
10.3定义监听器205
10.3.1主题监听器206
10.3.2数据写入者监听器206
10.3.3发布者监听器207
10.3.4数据读取者监听器207
10.3.5订阅者监听器207
10.3.6域参与者监听器207
10.4定义条件208
10.4.1状态条件208
10.4.2附加的条件类型209
第11章配置OpenDDS210
11.1配置方式210
11.2通用配置选项211
11.3发现配置213
11.3.1域配置213
11.3.2为DCPSInfoRepo配置应用程序215
11.3.3为DDSRTPS发现配置219
11.4传输配置221
11.4.1传输配置概述222
11.4.2配置文件示例222
11.4.3传输注册示例225
11.4.4传输配置选项225
11.4.5传输实例选项226
11.5记录232
11.5.1DCPS层记录232
11.5.2传输层记录233
第12章开始使用234
12.1规定遵从234
12.1.1DDS规定遵从234
12.1.2DDSRTPS规定遵从234
12.2使用DCPS235
12.2.1定义数据类型235
12.2.2处理IDL236
12.2.3一个简单的消息发布者238
12.2.4建立订阅者242
12.2.5数据读取者监听器实行244
12.2.6清理OpenDDS客户端246
12.2.7运行示例247
12.2.8用RTPS运行示例248
12.3数据处理最佳化250
12.3.1在发布者中注册和使用实例250
12.3.2读取多个样本250
12.3.3零复制读取251
12.4构建一个应用程序252
12.4.1搭建开发环境252
12.4.2构建应用程序253
12.4.3数据类型定义254
12.4.4建立发布应用程序256
12.4.5建立订阅应用程序263
12.4.6运行应用程序269
参考文献275