第1章 概述 1
1.1 分布式係統的定義 1
1.2 目標 3
1.2.1 使資源可訪問 3
1.2.2 透明性 4
1.2.3 開放性 6
1.2.4 可擴展性 7
1.3 分布式係統的類型 12
1.3.1 分布式計算係統 12
1.3.2 分布式信息係統 14
1.3.3 分布式普適係統 17
本章小結 21
習題 22
第2章 體係結構 23
2.1 體係結構的樣式 23
2.2 係統體係結構 25
2.2.1 集中式體係結構 25
2.2.2 非集中式體係結構 30
2.2.3 混閤體係結構 36
2.3 體係結構與中間件 38
2.3.1 中斷器 38
2.3.2 自適應軟件的常見方法 40
2.3.3 討論 40
2.4 分布式係統的自我管理 41
2.4.1 反饋控製模型 42
2.4.2 示例:用Astrolabe監視係統 43
2.4.3 示例:Globule中的差分復製策略 44
2.4.4 示例:Jade的自動組件修復管理 45
本章小結 46
習題 47
第3章 進程 48
3.1 綫程 48
3.1.1 綫程簡介 49
3.1.2 分布式係統中的綫程 52
3.2 虛擬化 55
3.2.1 虛擬化在分布式係統中的作用 55
3.2.2 虛擬機體係結構 56
3.3 客戶 57
3.3.1 網絡連接的用戶接口 58
3.3.2 客戶端軟件與分布透明性 61
3.4 服務器 62
3.4.1 常見的設計問題 62
3.4.2 服務器集群 65
3.4.3 管理服務器集群 69
3.5 代碼遷移 72
3.5.1 代碼遷移方案 72
3.5.2 遷移與本地資源 75
3.5.3 異構係統中的代碼遷移 77
本章小結 79
習題 80
第4章 通信 81
4.1 基礎知識 81
4.1.1 分層協議 82
4.1.2 通信類型 87
4.2 遠程過程調用 89
4.2.1 基本的RPC操作 89
4.2.2 參數傳遞 92
4.2.3 異步RPC 95
4.2.4 示例:DCE RPC 96
4.3 麵嚮消息的通信 101
4.3.1 麵嚮消息的瞬時通信 101
4.3.2 麵嚮消息的持久通信 104
4.3.3 示例:IBM WebSphere消息隊列係統 109
4.4 麵嚮流的通信 113
4.4.1 為連續媒體提供支持 114
4.4.2 流與服務質量 115
4.4.3 流同步 117
4.5 多播通信 120
4.5.1 應用層多播 120
4.5.2 基於gossip的數據通信 123
本章小結 126
習題 127
第5章 命名係統 129
5.1 名稱、標識符和地址 129
5.2 無層次命名 131
5.2.1 簡單方法 131
5.2.2 基於宿主位置的方法 134
5.2.3 分布式散列錶 135
5.2.4 分層方法 138
5.3 結構化命名 141
5.3.1 名稱空間 141
5.3.2 名稱解析 143
5.3.3 名稱空間的實現 146
5.3.4 示例:域名係統 151
5.4 基於屬性的命名 157
5.4.1 目錄服務 157
5.4.2 分層實現:LDAP 158
5.4.3 非集中式實現 161
本章小結 164
習題 165
第6章 同步化 167
6.1 時鍾同步 167
6.1.1 物理時鍾 168
6.1.2 全球定位係統 171
6.1.3 時鍾同步算法 172
6.2 邏輯時鍾 176
6.2.1 Lamport邏輯時鍾 176
6.2.2 嚮量時鍾 179
6.3 互斥 182
6.3.1 概述 182
6.3.2 集中式算法 182
6.3.3 非集中式算法 183
6.3.4 分布式算法 184
6.3.5 令牌環算法 186
6.3.6 四種算法的比較 187
6.4 結點的全局定位 188
6.5 選舉算法 190
6.5.1 傳統的選舉算法 190
6.5.2 無綫係統環境中的選舉算法 192
6.5.3 大型係統中的選舉算法 193
本章小結 195
習題 196
第7章 一緻性和復製 198
7.1 概述 198
7.1.1 進行復製的原因 198
7.1.2 作為擴展技術的復製 199
7.2 以數據為中心的一緻性模型 200
7.2.1 持續一緻性 201
7.2.2 一緻的操作順序 204
7.3 以客戶為中心的一緻性模型 209
7.3.1 最終一緻性 209
7.3.2 單調讀 211
7.3.3 單調寫 212
7.3.4 讀寫一緻性 213
7.3.5 寫讀一緻性 214
7.4 復製管理 214
7.4.1 副本服務器的放置 215
7.4.2 內容復製與放置 216
7.4.3 內容分發 219
7.5 一緻性協議 222
7.5.1 持續一緻性 222
7.5.2 基於主備份的協議 223
7.5.3 復製的寫協議 225
7.5.4 高速緩存相關性協議 227
7.5.5 實現以客戶為中心的一緻性 228
本章小結 230
習題 231
第8章 容錯性 233
8.1 容錯性概述 233
8.1.1 基本概念 233
8.1.2 故障模式 235
8.1.3 使用冗餘掩蓋故障 237
8.2 進程恢復 238
8.2.1 設計問題 238
8.2.2 故障掩蓋和復製 240
8.2.3 故障係統的協定 240
8.2.4 故障檢測 243
8.3 可靠的客戶-服務器通信 244
8.3.1 點對點通信 244
8.3.2 失敗時的RPC語義 244
8.4 可靠的組通信 248
8.4.1 基本的可靠多播方法 249
8.4.2 可靠多播中的可擴展性 249
8.4.3 原子多播 252
8.5 分布式提交 257
8.5.1 兩階段提交 257
8.5.2 三階段提交 262
8.6 恢復 263
8.6.1 概述 263
8.6.2 檢查點 266
8.6.3 消息日誌 268
8.6.4 麵嚮恢復的計算 270
本章小結 271
習題 271
第9章 安全性 273
9.1 安全性概述 273
9.1.1 安全威脅、策略和機製 273
9.1.2 設計問題 277
9.1.3 加密 281
9.2 安全通道 287
9.2.1 身份認證 287
9.2.2 消息的完整性和機密性 293
9.2.3 安全組通信 295
9.2.4 示例:Kerberos 298
9.3 訪問控製 299
9.3.1 訪問控製中的常見問題 299
9.3.2 防火牆 302
9.3.3 安全的移動代碼 304
9.3.4 拒絕服務 309
9.4 安全管理 310
9.4.1 密鑰管理 310
9.4.2 安全組管理 313
9.4.3 授權管理 314
本章小結 318
習題 319
第10章 基於對象的分布式係統 320
10.1 體係結構 320
10.1.1 分布式對象 320
10.1.2 示例:企業級Java Bean 322
10.1.3 示例:Globe分布式共享對象 324
10.2 進程 325
10.2.1 對象服務器 325
10.2.2 示例:Ice運行時係統 327
10.3 通信 329
10.3.1 把客戶綁定到對象上 329
10.3.2 靜態遠程方法調用與動態遠程方法調用 330
10.3.3 參數傳遞 331
10.3.4 示例:Java RMI 332
10.3.5 基於對象的消息傳遞 334
10.4 命名 337
10.4.1 CORBA對象引用 337
10.4.2 Globe對象引用 338
10.5 同步 340
10.6 一緻性與復製 341
10.6.1 入口一緻性 341
10.6.2 復製的調用 343
10.7 容錯性 344
10.7.1 示例:CORBA的容錯性 345
10.7.2 示例:Java的容錯性 346
10.8 安全性 348
10.8.1 示例:Globe 348
10.8.2 遠程對象的安全性 351
本章小結 352
習題 353
第11章 分布式文件係統 354
11.1 體係結構 354
11.1.1 客戶-服務器體係結構 354
11.1.2 基於群集的分布式文件係統 358
11.1.3 對稱式體係結構 360
11.2 進程 361
11.3 通信 362
11.3.1 NFS中的RPC 362
11.3.2 RPC2子係統 363
11.3.3 Plan 9中麵嚮文件的通信 365
11.4 命名 366
11.4.1 NFS中的命名 366
11.4.2 構造全局名稱空間 370
11.5 同步 371
11.5.1 文件共享的語義 371
11.5.2 文件鎖定 373
11.5.3 在Coda中共享文件 375
11.6 一緻性和復製 376
11.6.1 客戶端緩存 376
11.6.2 服務器端復製 379
11.6.3 對等文件係統中的復製 381
11.6.4 網格係統中的文件復製 382
11.7 容錯性 383
11.7.1 處理Byzantine故障 383
11.7.2 對等係統中的高度可用性 385
11.8 安全性 386
11.8.1 NFS中的安全性 386
11.8.2 分散式身份認證 388
11.8.3 安全的對等文件共享係統 391
本章小結 393
習題 394
第12章 基於Web的分布式係統 395
12.1 體係結構 395
12.1.1 傳統的基於Web的係統 396
12.1.2 Web服務 399
12.2 進程 402
12.2.1 客戶 402
12.2.2 Apache Web服務器 403
12.2.3 Web服務器群集 405
12.3 通信 406
12.3.1 超文本傳輸協議 407
12.3.2 簡單對象訪問協議 411
12.4 命名 412
12.5 同步 414
12.6 一緻性與復製 414
12.6.1 Web代理緩存 415
12.6.2 Web宿主係統的復製 417
12.6.3 Web應用程序的復製 421
12.7 容錯性 423
12.8 安全性 424
本章小結 425
習題 426
第13章 基於協作的分布式係統 428
13.1 協作模型介紹 428
13.2 體係結構 430
13.2.1 一般方法 430
13.2.2 傳統的體係結構 431
13.2.3 對等體係結構 434
13.2.4 移動性和協作 436
13.3 進程 437
13.4 通信 437
13.4.1 基於內容的路由 437
13.4.2 支持復閤訂閱 439
13.5 命名 439
13.5.1 描述復閤事件 440
13.5.2 匹配事件與訂閱 441
13.6 同步 442
13.7 一緻性和復製 442
13.7.1 靜態方法 442
13.7.2 動態復製 445
13.8 容錯性 447
13.8.1 可靠的發布-訂閱通信 447
13.8.2 共享數據空間中的容錯性 449
13.9 安全性 450
13.9.1 保密性 450
13.9.2 安全的共享數據空間 452
本章小結 452
習題 453
第14章 補充讀物與參考文獻 454
14.1 進一步閱讀的建議 454
14.1.1 介紹性和綜述性的著作 454
14.1.2 體係結構 455
14.1.3 進程 455
14.1.4 通信 456
14.1.5 命名 456
14.1.6 同步化 457
14.1.7 一緻性與復製 457
14.1.8 容錯性 458
14.1.9 安全性 458
14.1.10 麵嚮對象的分布式係統 459
14.1.11 分布式文件係統 459
14.1.12 基於Web的分布式係統 460
14.1.13 基於協作的分布式係統 460
14.2 參考文獻 461
· · · · · · (
收起)