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

楊京禮 等

  • 出版商: 電子工業
  • 出版日期: 2021-01-01
  • 定價: $414
  • 售價: 8.5$352
  • 語言: 簡體中文
  • 頁數: 344
  • 裝訂: 平裝
  • ISBN: 7121403218
  • ISBN-13: 9787121403217
  • 相關分類: Data Science資訊科學
  • 立即出貨 (庫存 < 4)

買這商品的人也買了...

商品描述

隨著分佈式實時系統規模的日益增大,對於系統內部通信實時性的要求也越來越高。數據分發服務(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