分布式實時系統(tǒng)數(shù)據(jù)分發(fā)服務(wù)
定 價:69 元
- 作者:楊京禮 等
- 出版時間:2021/1/1
- ISBN:9787121403217
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TN911.72
- 頁碼:344
- 紙張:
- 版次:01
- 開本:16開
隨著分布式實時系統(tǒng)規(guī)模的日益增大,對于系統(tǒng)內(nèi)部通信實時性的要求也越來越高。數(shù)據(jù)分發(fā)服務(wù)(Data Distribution Service,DDS)是對象管理組織(Object Management Group,OMG)為分布式實時系統(tǒng)制定的新一代數(shù)據(jù)傳輸規(guī)范,能夠為各種不同類型的分布式應(yīng)用提供良好的解決方案。本書從DDS技術(shù)規(guī)范的核心內(nèi)容、擴展標(biāo)準(zhǔn)和工程應(yīng)用三個方面介紹了作者所在研究團隊在該領(lǐng)域的最新研究工作和多年技術(shù)積累。
楊京禮,1984年生,工學(xué)博士,副研究員,博士生導(dǎo)師。哈爾濱工業(yè)大學(xué)電子與信息工程學(xué)院,信息與通信工程學(xué)科。測控工程系副主任。
第1章 緒論 1
1.1 分布式實時系統(tǒng) 1
1.1.1 分布式系統(tǒng)的定義與特征 1
1.1.2 分布式系統(tǒng)的軟硬件結(jié)構(gòu) 4
1.1.3 分布式系統(tǒng)的實時性需求 9
1.2 分布式實時系統(tǒng)通信模型 10
1.2.1 點對點模型 11
1.2.2 客戶端/服務(wù)器模型 11
1.2.3 分布式對象模型 12
1.2.4 發(fā)布/訂閱模型 14
1.3 數(shù)據(jù)分發(fā)服務(wù)概述 16
1.3.1 設(shè)計目標(biāo) 17
1.3.2 標(biāo)準(zhǔn)結(jié)構(gòu) 18
1.3.3 發(fā)展歷程 22
1.3.4 應(yīng)用領(lǐng)域 24
第2章 以數(shù)據(jù)為中心的發(fā)布/訂閱 28
2.1 概念模型 28
2.2 組成模塊 30
2.2.1 基礎(chǔ)設(shè)施模塊 31
2.2.2 域模塊 35
2.2.3 主題模塊 39
2.2.4 發(fā)布模塊 42
2.2.5 訂閱模塊 46
2.3 實體關(guān)系 53
2.4 QoS策略 54
2.5 監(jiān)聽、狀態(tài)、條件與等待集 58
2.5.1 通信狀態(tài)及狀態(tài)更改 58
2.5.2 基于監(jiān)聽器獲取狀態(tài) 62
2.5.3 基于條件和等待集獲取狀態(tài) 63
2.6 內(nèi)置主題 66
第3章 數(shù)據(jù)域和域參與者 68
3.1 數(shù)據(jù)域和域參與者的關(guān)系 68
3.2 域參與者工廠 69
3.2.1 創(chuàng)建與刪除域參與者 70
3.2.2 獲取域參與者工廠實例 70
3.2.3 查詢域參與者 71
3.2.4 設(shè)置與獲取域參與者默認QoS策略 71
3.2.5 設(shè)置與獲取域參與者工廠QoS策略 71
3.3 域參與者 72
3.3.1 創(chuàng)建與刪除發(fā)布者 72
3.3.2 創(chuàng)建與刪除訂閱者 73
3.3.3 創(chuàng)建與刪除主題 73
3.3.4 創(chuàng)建與刪除內(nèi)容過濾主題 74
3.3.5 創(chuàng)建與刪除多重主題 75
3.3.6 查找主題與主題描述 76
3.3.7 獲取內(nèi)置訂閱者 77
3.3.8 忽略域參與者、主題、發(fā)布與訂閱 77
3.3.9 刪除包含的所有實體 78
3.3.10 斷言活躍度 78
3.3.11 設(shè)置與獲取發(fā)布者默認QoS策略 78
3.3.12 設(shè)置與獲取訂閱者默認QoS策略 79
3.3.13 設(shè)置與獲取主題默認QoS策略 80
3.3.14 獲取數(shù)據(jù)域唯一標(biāo)識 82
3.3.15 獲取已發(fā)現(xiàn)的所有域參與者 82
3.3.16 獲取已發(fā)現(xiàn)的域參與者數(shù)據(jù) 82
3.3.17 獲取已發(fā)現(xiàn)的所有主題 82
3.3.18 獲取已發(fā)現(xiàn)的主題數(shù)據(jù) 83
3.3.19 判斷是否包含實體 83
3.3.20 獲取當(dāng)前時間 83
3.4 域參與者監(jiān)聽器 83
第4章 主題、內(nèi)容過濾主題與多重主題 85
4.1 主題描述 85
4.1.1 獲取所屬域參與者 85
4.1.2 獲取類型名稱 85
4.1.3 獲取名稱 85
4.2 主題 85
4.2.1 獲取主題不兼容狀態(tài) 87
4.2.2 主題、實例和樣本的區(qū)別與聯(lián)系 87
4.3 內(nèi)容過濾主題 89
4.3.1 過濾表達式 89
4.3.2 獲取相關(guān)主題 90
4.3.3 設(shè)置與獲取表達式參數(shù) 90
4.3.4 內(nèi)容過濾主題示例 91
4.4 多重主題 92
4.4.1 多重主題表達式 92
4.4.2 設(shè)置與獲取表達式參數(shù) 93
4.4.3 多重主題示例 94
4.5 主題監(jiān)聽器 95
第5章 發(fā)布者與數(shù)據(jù)發(fā)送 96
5.1 數(shù)據(jù)發(fā)送流程 96
5.2 發(fā)布者 97
5.2.1 創(chuàng)建、查找與刪除數(shù)據(jù)寫入者 98
5.2.2 掛起與恢復(fù)發(fā)布狀態(tài) 99
5.2.3 開始與結(jié)束一套連貫的修改 100
5.2.4 等待應(yīng)答 100
5.2.5 獲取所屬域參與者 101
5.2.6 刪除包含的所有實體 101
5.2.7 設(shè)置與獲取數(shù)據(jù)寫入者默認QoS策略 101
5.2.8 復(fù)制主題QoS策略 103
5.3 數(shù)據(jù)寫入者 104
5.3.1 注冊與注銷數(shù)據(jù)對象實例 104
5.3.2 帶時戳注冊與注銷數(shù)據(jù)對象實例 105
5.3.3 獲取實例的鍵值 106
5.3.4 查找實例 106
5.3.5 數(shù)據(jù)寫入 106
5.3.6 帶時戳數(shù)據(jù)寫入 107
5.3.7 丟棄數(shù)據(jù) 107
5.3.8 帶時戳丟棄數(shù)據(jù) 108
5.3.9 等待確認 108
5.3.10 獲取活躍度丟失狀態(tài) 108
5.3.11 獲取提供的生存期丟失狀態(tài) 108
5.3.12 獲取提供的QoS策略不兼容狀態(tài) 109
5.3.13 獲取發(fā)布者匹配狀態(tài) 109
5.3.14 獲取主題 109
5.3.15 獲取所屬發(fā)布者 109
5.3.16 斷言活躍度 109
5.3.17 獲取匹配的訂閱信息 109
5.3.18 獲取匹配的訂閱者 110
5.4 發(fā)布者監(jiān)聽器 110
5.5 數(shù)據(jù)寫入者監(jiān)聽器 111
第6章 訂閱者與數(shù)據(jù)接收 112
6.1 數(shù)據(jù)接收流程 112
6.2 數(shù)據(jù)樣本信息分析 115
6.3 數(shù)據(jù)樣本訪問方式 118
6.4 訂閱者 119
6.4.1 創(chuàng)建、查找與刪除數(shù)據(jù)讀取者 119
6.4.2 開始與結(jié)束數(shù)據(jù)訪問 121
6.4.3 獲取數(shù)據(jù)讀取者 121
6.4.4 通知數(shù)據(jù)讀取者 122
6.4.5 獲取數(shù)據(jù)樣本丟失狀態(tài) 122
6.4.6 獲取所屬域參與者 122
6.4.7 刪除包含的所有實體 122
6.4.8 設(shè)置與獲取數(shù)據(jù)讀取者的默認QoS策略 123
6.4.9 復(fù)制主題QoS策略 124
6.5 數(shù)據(jù)讀取者 125
6.5.1 創(chuàng)建與刪除讀取條件 126
6.5.2 創(chuàng)建數(shù)據(jù)查詢條件 126
6.5.3 讀取數(shù)據(jù)樣本 127
6.5.4 提取數(shù)據(jù)樣本 129
6.5.5 帶條件讀取數(shù)據(jù)樣本 130
6.5.6 帶條件提取數(shù)據(jù)樣本 130
6.5.7 讀取下一個數(shù)據(jù)樣本 131
6.5.8 提取下一個數(shù)據(jù)樣本 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 獲取活躍度改變狀態(tài) 136
6.5.17 獲取請求的生存期丟失狀態(tài) 136
6.5.18 獲取請求的QoS策略不兼容狀態(tài) 136
6.5.19 獲取數(shù)據(jù)樣本丟失狀態(tài) 136
6.5.20 獲取數(shù)據(jù)樣本拒絕狀態(tài) 136
6.5.21 獲取訂閱者匹配狀態(tài) 136
6.5.22 獲取主題描述 137
6.5.23 獲取所屬訂閱者 137
6.5.24 獲取鍵值 137
6.5.25 查找實例 137
6.5.26 刪除包含的所有實體 137
6.5.27 等待接收所有歷史數(shù)據(jù)樣本 137
6.5.28 獲取匹配的發(fā)布信息 138
6.5.29 獲取匹配的發(fā)布者 138
6.6 讀取條件 138
6.6.1 獲取數(shù)據(jù)讀取者 138
6.6.2 獲取樣本狀態(tài)掩碼 139
6.6.3 獲取視圖狀態(tài)掩碼 139
6.6.4 獲取實例狀態(tài)掩碼 139
6.7 查詢條件 139
6.7.1 獲取查詢表達式 140
6.7.2 設(shè)置和獲取查詢參數(shù) 140
6.8 訂閱者監(jiān)聽器 140
6.9 數(shù)據(jù)讀取者監(jiān)聽器 141
第7章 QoS策略與關(guān)聯(lián)性 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 注冊、活躍度與所有權(quán)之間的關(guān)系 160
7.2.1 冗余系統(tǒng)的所有權(quán)解析 160
7.2.2 拓撲連接性中的損耗檢測 161
7.3 QoS策略示例 162
第8章 DDS-RTPS協(xié)議 163
8.1 DDS-RTPS概述 163
8.2 結(jié)構(gòu)模塊 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實體的關(guān)系 170
8.3 消息模塊 173
8.3.1 類型定義 173
8.3.2 RTPS消息結(jié)構(gòu) 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協(xié)議的實現(xiàn) 183
8.4.3 寫入者在每個匹配的讀取者上的行為 184
8.4.4 符號約定 185
8.4.5 類型定義 185
8.4.6 RTPS寫入者的參考實現(xiàn) 185
8.4.7 RTPS無狀態(tài)寫入者的行為 190
8.4.8 RTPS有狀態(tài)寫入者的行為 192
8.4.9 RTPS讀取者的參考實現(xiàn) 194
8.4.10 RTPS無狀態(tài)讀取者的行為 197
8.4.11 RTPS有狀態(tài)讀取者的行為 198
8.4.12 寫入者活躍度協(xié)議 199
8.5 發(fā)現(xiàn)模塊 201
8.5.1 RTPS內(nèi)置發(fā)現(xiàn)端點 202
8.5.2 SPDP協(xié)議 202
8.5.3 SEDP協(xié)議 206
8.5.4 交互過程 210
第9章 DDS-RPC機制 213
9.1 DDS-RPC概述 213
9.2 服務(wù)的定義與表示 214
9.2.1 服務(wù)定義規(guī)則 214
9.2.2 服務(wù)定義示例 215
9.3 服務(wù)映射 216
9.3.1 服務(wù)到DDS主題名稱映射 216
9.3.2 服務(wù)到DDS主題數(shù)據(jù)類型映射 216
9.4 服務(wù)發(fā)現(xiàn)與匹配處理 220
9.4.1 DDS內(nèi)置主題擴展 220
9.4.2 服務(wù)發(fā)現(xiàn)算法改進 222
9.5 請求與應(yīng)答關(guān)聯(lián) 223
第10章 Web-Enable DDS規(guī)范 225
10.1 Web-Enable DDS規(guī)范概述 225
10.2 WebDDS對象模型 227
10.2.1 對象模型概覽 228
10.2.2 對象模型訪問控制 229
10.2.3 DDS實體代理 235
10.3 REST架構(gòu)下的Web-Enable DDS實現(xiàn) 259
10.3.1 資源映射 259
10.3.2 操作映射 259
10.3.3 返回值映射 263
10.3.4 對象表示 263
10.3.5 HTTP幀頭格式 264
第11章 DDS規(guī)范的典型實現(xiàn)—OpenDDS 266
11.1 OpenDDS概述 266
11.1.1 兼容性 266
11.1.2 組成架構(gòu) 267
11.2 使用OpenDDS 270
11.2.1 定義數(shù)據(jù)類型 270
11.2.2 處理IDL 272
11.2.3 實現(xiàn)發(fā)布端應(yīng)用程序 274
11.2.4 實現(xiàn)訂閱端應(yīng)用程序 277
11.2.5 運行程序 281
11.3 運行時配置 281
11.3.1 配置方式 282
11.3.2 通用配置 283
11.3.3 發(fā)現(xiàn)配置 285
11.3.4 傳輸配置 296
第12章 基于OpenDDS的分布式實時系統(tǒng)開發(fā)與運行 307
12.1 開發(fā)環(huán)境搭建 307
12.1.1 開發(fā)工具選擇 307
12.1.2 源代碼下載 307
12.1.3 環(huán)境變量設(shè)置 307
12.1.4 源代碼編譯 308
12.2 應(yīng)用程序開發(fā) 308
12.2.1 建立數(shù)據(jù)類型定義工程 309
12.2.2 建立發(fā)布端應(yīng)用程序工程 310
12.2.3 建立訂閱端應(yīng)用程序工程 314
12.2.4 編寫運行時配置文件 319
12.3 應(yīng)用程序運行 319
12.3.1 使用DCPSInfoRepo運行應(yīng)用程序 319
12.3.2 使用DDS-RTPS運行應(yīng)用程序 321
參考文獻 323