分散式實時系統數據分發服務

分散式實時系統數據分發服務

《分散式實時系統數據分發服務》是2021年電子工業出版社出版的圖書,作者是楊京禮。本書講述了從DDS技術規範的核心內容、擴展標準和工程套用三個方面介紹了作者所在研究團隊在該領域的**研究工作和多年技術積累。

基本介紹

  • 書名:分散式實時系統數據分發服務 
  • 作者:楊京禮
  • 出版社: 電子工業出版社
  • ISBN:9787121403217
內容簡介,圖書目錄,作者簡介,

內容簡介

隨著分散式實時系統規模的日益增大,對於系統內部通信實時性的要求也越來越高。數據分發服務(Data Distribution Service,DDS)是對象管理組織(Object Management Group,OMG)為分散式實時系統制定的新一代數據傳輸規範,能夠為各種不同類型的分散式套用提供良好的解決方案。本書從DDS技術規範的核心內容、擴展標準和工程套用三個方面介紹了作者所在研究團隊在該領域的**研究工作和多年技術積累。

圖書目錄

第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

作者簡介

楊京禮,1984年生,工學博士,副研究員,博士生導師。哈爾濱工業大學電子與信息工程學院,信息與通信工程學科。測控工程系副主任。

相關詞條

熱門詞條

聯絡我們