計算機領(lǐng)域經(jīng)典著作,被譽為是衡量所有其他分布式系統(tǒng)教材的標(biāo)準(zhǔn),已被愛丁堡大學(xué)、伊利諾伊大學(xué)、卡內(nèi)基-梅隆大學(xué)、南加州大學(xué)、得克薩斯A&M大學(xué)、多倫多大學(xué)、羅切斯特理工學(xué)院、北京大學(xué)等名校采納為高級操作系統(tǒng)、計算機網(wǎng)絡(luò)、分布式系統(tǒng)課程的教材。華章從第3版就開始引進這本《分布式系統(tǒng):概念與設(shè)計(原書第5版)》,每個版本翻譯版印量約為7000冊,影印版約為5000冊。雖然由于屬于高級課程,銷量有局限性,但本書在高等院校的師生和研究人員中具有很高的知名度,對于華章教育品牌也具有較大的支撐作用,所以確定繼續(xù)做這本教材。
《分布式系統(tǒng):概念與設(shè)計(原書第5版)》旨在全面介紹互聯(lián)網(wǎng)及其他常用分布式系統(tǒng)的原理、體系結(jié)構(gòu)、算法和設(shè)計,內(nèi)容涵蓋分布式系統(tǒng)的相關(guān)概念、安全、數(shù)據(jù)復(fù)制、組通信、分布式文件系統(tǒng)、分布式事務(wù)、分布式系統(tǒng)設(shè)計等,以及相關(guān)的前沿主題,包括Web服務(wù)、網(wǎng)格、移動系統(tǒng)和無處不在系統(tǒng)等。
George Coulouris,倫敦大學(xué)皇后瑪利學(xué)院榮譽教授,劍橋大學(xué)計算機實驗室訪問教授。
Jean Dollimore,倫敦大學(xué)皇后瑪利學(xué)院的高級講師。
Tim Kindberg,matter 2 media創(chuàng)新技術(shù)公司創(chuàng)始人,Pervasive Media Studio研究主任,英國布里斯托爾和美國帕洛阿爾托惠普實驗室高級研究員,英國巴斯大學(xué)計算機科學(xué)系訪問教授。
Gordon Blair,蘭卡斯特大學(xué)計算系分布式系統(tǒng)教授,挪威特羅姆瑟大學(xué)兼職教授。
Distributed Systems:Concepts and Design,F(xiàn)ifth Edition
出版者的話
譯者序
前言
第1章 分布式系統(tǒng)的特征
1.1 簡介
1.2 分布式系統(tǒng)的例子
1.2.1 Web搜索
1.2.2 大型多人在線游戲
1.2.3 金融交易
1.3 分布式系統(tǒng)的趨勢
1.3.1 泛在聯(lián)網(wǎng)和現(xiàn)代互聯(lián)網(wǎng)
1.3.2 移動和無處不在計算
1.3.3 分布式多媒體系統(tǒng)
1.3.4 把分布式計算作為一個公共設(shè)施
1.4 關(guān)注資源共享
1.5 挑戰(zhàn)
1.5.1 異構(gòu)性
1.5.2 開放性
1.5.3 安全性
1.5.4 可伸縮性
1.5.5 故障處理
1.5.6 并發(fā)性
1.5.7 透明性
1.5.8 服務(wù)質(zhì)量
1.6 實例研究:萬維網(wǎng)
1.7 小結(jié)
練習(xí)
第2章 系統(tǒng)模型
2.1 簡介
2.2 物理模型
2.3 體系結(jié)構(gòu)模型
2.3.1 體系結(jié)構(gòu)元素
2.3.2 體系結(jié)構(gòu)模式
2.3.3 相關(guān)的中間件解決方案
2.4 基礎(chǔ)模型
2.4.1 交互模型
2.4.2 故障模型
2.4.3 安全模型
2.5 小結(jié)
練習(xí)
第3章 網(wǎng)絡(luò)和網(wǎng)際互連
3.1 簡介
3.2 網(wǎng)絡(luò)類型
3.3 網(wǎng)絡(luò)原理
3.3.1 數(shù)據(jù)包的傳輸
3.3.2 數(shù)據(jù)流
3.3.3 交換模式
3.3.4 協(xié)議
3.3.5 路由
3.3.6 擁塞控制
3.3.7 網(wǎng)際互連
3.4 互聯(lián)網(wǎng)協(xié)議
3.4.1 IP尋址
3.4.2 IP協(xié)議
3.4.3 IP路由
3.4.4 IPv
3.4.5 移動IP
3.4.6 TCP和UDP
3.4.7 域名
3.4.8 防火墻
3.5 實例研究:以太網(wǎng)、WiFi、藍牙
3.5.1 以太網(wǎng)
3.5.2 IEEE 802.11無線LAN
3.5.3 IEEE 802.15.1藍牙無線PAN
3.6 小結(jié)
練習(xí)
第4章 進程間通信
4.1 簡介
4.2 互聯(lián)網(wǎng)協(xié)議的API
4.2.1 進程間通信的特征
4.2.2 套接字
4.2.3 UDP數(shù)據(jù)報通信
4.2.4 TCP流通信
4.3 外部數(shù)據(jù)表示和編碼
4.3.1 CORBA的公共數(shù)據(jù)表示
4.3.2 Java對象序列化
4.3.3 可擴展標(biāo)記語言
4.3.4 遠(yuǎn)程對象引用
4.4 組播通信
4.4.1 IP組播--組播通信的實現(xiàn)
4.4.2 組播的可靠性和排序
4.5 網(wǎng)絡(luò)虛擬化:覆蓋網(wǎng)絡(luò)
4.5.1 覆蓋網(wǎng)絡(luò)
4.5.2 Skype:一個覆蓋網(wǎng)絡(luò)的例子
4.6 實例研究:MPI
4.7 小結(jié)
練習(xí)
第5章 遠(yuǎn)程調(diào)用
5.1 簡介
5.2 請求-應(yīng)答協(xié)議
5.3 遠(yuǎn)程過程調(diào)用
5.3.1 RPC的設(shè)計問題
5.3.2 RPC的實現(xiàn)
5.3.3 實例研究:Sun RPC
5.4 遠(yuǎn)程方法調(diào)用
5.4.1 RMI的設(shè)計問題
5.4.2 RMI的實現(xiàn)
5.4.3 分布式無用單元收集
5.5 實例研究:Java RMI
5.5.1 創(chuàng)建客戶和服務(wù)器程序
5.5.2 Java RMI的設(shè)計和實現(xiàn)
5.6 小結(jié)
練習(xí)
第6章 間接通信
6.1 簡介
6.2 組通信
6.2.1 編程模型
6.2.2 實現(xiàn)問題
6.2.3 實例研究:JGroups工具箱
6.3 發(fā)布-訂閱系統(tǒng)
6.3.1 編程模型
6.3.2 實現(xiàn)問題
6.3.3 發(fā)布-訂閱系統(tǒng)的例子
6.4 消息隊列
6.4.1 編程模型
6.4.2 實現(xiàn)問題
6.4.3 實例研究:Java消息服務(wù)
6.5 共享內(nèi)存的方式
6.5.1 分布式共享內(nèi)存
6.5.2 元組空間通信
6.6 小結(jié)
練習(xí)
第7章 操作系統(tǒng)支持
7.1 簡介
7.2 操作系統(tǒng)層
7.3 保護
7.4 進程和線程
7.4.1 地址空間
7.4.2 新進程的生成
7.4.3 線程
7.5 通信和調(diào)用
7.5.1 調(diào)用性能
7.5.2 異步操作
7.6 操作系統(tǒng)的體系結(jié)構(gòu)
7.7 操作系統(tǒng)層的虛擬化
7.7.1 系統(tǒng)虛擬化
7.7.2 實例研究:系統(tǒng)虛擬化的Xen方法
7.8 小結(jié)
練習(xí)
第8章 分布式對象和組件
8.1 簡介
8.2 分布式對象
8.3 實例研究:CORBA
8.3.1 CORBA RMI
8.3.2 CORBA的體系結(jié)構(gòu)
8.3.3 CORBA遠(yuǎn)程對象引用
8.3.4 CORBA服務(wù)
8.3.5 CORBA客戶和服務(wù)器實例
8.4 從對象到組件
8.5 實例研究:企業(yè)JavaBeans和Fractal
8.5.1 企業(yè)JavaBeans
8.5.2 Fractal
8.6 小結(jié)
練習(xí)
第9章 Web服務(wù)
9.1 簡介
9.2 Web服務(wù)
9.2.1 SOAP
9.2.2 Web服務(wù)與分布式對象模型的比較
9.2.3 在Java中使用SOAP
9.2.4 Web服務(wù)和CORBA的比較
9.3 Web服務(wù)的服務(wù)描述和接口定義語言
9.4 Web服務(wù)使用的目錄服務(wù)
9.5 XML安全性
9.6 Web服務(wù)的協(xié)作
9.7 Web服務(wù)的應(yīng)用
9.7.1 面向服務(wù)的體系結(jié)構(gòu)
9.7.2 網(wǎng)格
9.7.3 云計算
9.8 小結(jié)
練習(xí)
第10章 對等系統(tǒng)
10.1 簡介
10.2 Napster及其遺留系統(tǒng)
10.3 對等中間件
10.4 路由覆蓋
10.5 路由覆蓋實例研究:Pastry和Tapestry
10.5.1 Pastry
10.5.2 Tapestry
10.5.3 從結(jié)構(gòu)化對等方法到非結(jié)構(gòu)化對等方法
10.6 應(yīng)用實例研究:Squirrel、OceanStore和Ivy
10.6.1 Squirrel Web緩存
10.6.2 OceanStore文件存儲
10.6.3 Ivy文件系統(tǒng)
10.7 小結(jié)
練習(xí)
第11章 安全性
11.1 簡介
11.1.1 威脅和攻擊
11.1.2 保護電子事務(wù)
11.1.3 設(shè)計安全系統(tǒng)
11.2 安全技術(shù)概述
11.2.1 密碼學(xué)
11.2.2 密碼學(xué)的應(yīng)用
11.2.3 證書
11.2.4 訪問控制
11.2.5 憑證
11.2.6 防火墻
11.3 密碼算法
11.3.1 密鑰(對稱)算法
11.3.2 公鑰(不對稱)算法
11.3.3 混合密碼協(xié)議
11.4 數(shù)字簽名
11.4.1 公鑰數(shù)字簽名
11.4.2 密鑰數(shù)字簽名--MAC
11.4.3 安全摘要函數(shù)
11.4.4 證書標(biāo)準(zhǔn)和證書權(quán)威機構(gòu)
11.5 密碼實用學(xué)
11.5.1 密碼算法的性能
11.5.2 密碼學(xué)的應(yīng)用和政治障礙
11.6 實例研究:Needham-Schroeder、Kerberos、TLS和802.11 WiFi
11.6.1 Needham-Schroeder認(rèn)證協(xié)議
11.6.2 Kerberos
11.6.3 使用安全套接字確保電子交易安全
11.6.4 IEEE 802.11 WiFi安全設(shè)計中最初的缺陷
11.7 小結(jié)
練習(xí)
第12章 分布式文件系統(tǒng)
12.1 簡介
12.1.1 文件系統(tǒng)的特點
12.1.2 分布式文件系統(tǒng)的需求
12.1.3 實例研究
12.2 文件服務(wù)體系結(jié)構(gòu)
12.3 實例研究:SUN網(wǎng)絡(luò)文件系統(tǒng)
12.4 實例研究:Andrew文件系統(tǒng)
12.4.1 實現(xiàn)
12.4.2 緩存的一致性
12.4.3 其他方面
12.5 最新進展
12.6 小結(jié)
練習(xí)
第13章 名字服務(wù)
13.1 簡介
13.2 名字服務(wù)和域名系統(tǒng)
13.2.1 名字空間
13.2.2 名字解析
13.2.3 域名系統(tǒng)
13.3 目錄服務(wù)
13.4 實例研究:全局名字服務(wù)
13.5 實例研究:X.500目錄服務(wù)
13.6 小結(jié)
練習(xí)
第14章 時間和全局狀態(tài)
14.1 簡介
14.2 時鐘、事件和進程狀態(tài)
14.3 同步物理時鐘
14.3.1 同步系統(tǒng)中的同步
14.3.2 同步時鐘的Cristian方法
14.3.3 Berkeley算法
14.3.4 網(wǎng)絡(luò)時間協(xié)議
14.4 邏輯時間和邏輯時鐘
14.5 全局狀態(tài)
14.5.1 全局狀態(tài)和一致割集
14.5.2 全局狀態(tài)謂詞、穩(wěn)定性、安全性和活性
14.5.3 Chandy和Lamport的“快照”算法
14.6 分布式調(diào)試
14.6.1 收集狀態(tài)
14.6.2 觀察一致的全局狀態(tài)
14.6.3 判定可能的
14.6.4 判定明確的
14.6.5 在同步系統(tǒng)中判定可能的和明確的
14.7 小結(jié)
練習(xí)
第15章 協(xié)調(diào)和協(xié)定
15.1 簡介
15.2 分布式互斥
15.3 選舉
15.4 組通信中的協(xié)調(diào)與協(xié)定
15.4.1 基本組播
15.4.2 可靠組播
15.4.3 有序組播
15.5 共識和相關(guān)問題
15.5.1 系統(tǒng)模型和問題定義
15.5.2 同步系統(tǒng)中的共識問題
15.5.3 同步系統(tǒng)中的拜占庭將軍問題
15.5.4 異步系統(tǒng)的不可能性
15.6 小結(jié)
練習(xí)
第16章 事務(wù)和并發(fā)控制
16.1 簡介
16.1.1 簡單的同步機制(無事務(wù))
16.1.2 事務(wù)的故障模型
16.2 事務(wù)
16.2.1 并發(fā)控制
16.2.2 事務(wù)放棄時的恢復(fù)
16.3 嵌套事務(wù)
16.4 鎖
16.4.1 死鎖
16.4.2 在加鎖機制中增加并發(fā)度
16.5 樂觀并發(fā)控制
16.6 時間戳排序
16.7 并發(fā)控制方法的比較
16.8 小結(jié)
練習(xí)
第17章 分布式事務(wù)
17.1 簡介
17.2 平面分布式事務(wù)和嵌套分布式事務(wù)
17.3 原子提交協(xié)議
17.3.1 兩階段提交協(xié)議
17.3.2 嵌套事務(wù)的兩階段提交協(xié)議
17.4 分布式事務(wù)的并發(fā)控制
17.4.1 加鎖
17.4.2 時間戳并發(fā)控制
17.4.3 樂觀并發(fā)控制
17.5 分布式死鎖
17.6 事務(wù)恢復(fù)
17.6.1 日志
17.6.2 影子版本
17.6.3 為何恢復(fù)文件需要事務(wù)狀態(tài)和意圖列表
17.6.4 兩階段提交協(xié)議的恢復(fù)
17.7 小結(jié)
練習(xí)
第18章 復(fù)制
18.1 簡介
18.2 系統(tǒng)模型和組通信的作用
18.2.1 系統(tǒng)模型
18.2.2 組通信的作用
18.3 容錯服務(wù)
18.3.1 被動(主備份)復(fù)制
18.3.2 主動復(fù)制
18.4 高可用服務(wù)的實例研究:閑聊體系結(jié)構(gòu)、Bayou和Coda
18.4.1 閑聊體系結(jié)構(gòu)
18.4.2 Bayou系統(tǒng)和操作變換方法
18.4.3 Coda文件系統(tǒng)
18.5 復(fù)制數(shù)據(jù)上的事務(wù)
18.5.1 復(fù)制事務(wù)的體系結(jié)構(gòu)
18.5.2 可用拷貝復(fù)制
18.5.3 網(wǎng)絡(luò)分區(qū)
18.5.4 帶驗證的可用拷貝
18.5.5 法定數(shù)共識方法
18.5.6 虛擬分區(qū)算法
18.6 小結(jié)
練習(xí)
第19章 移動和無處不在計算
19.1 簡介
19.2 關(guān)聯(lián)
19.2.1 發(fā)現(xiàn)服務(wù)
19.2.2 物理關(guān)聯(lián)
19.2.3 小結(jié)和前景
19.3 互操作
19.3.1 易變系統(tǒng)的面向數(shù)據(jù)編程
19.3.2 間接關(guān)聯(lián)和軟狀態(tài)
19.3.3 小結(jié)和前景
19.4 感知和上下文敏感
19.4.1 傳感器
19.4.2 感知體系結(jié)構(gòu)
19.4.3 位置感知
19.4.4 小結(jié)和前景
19.5 安全性和私密性
19.5.1 背景
19.5.2 一些解決辦法
19.5.3 小結(jié)和前景
19.6 自適應(yīng)
19.6.1 內(nèi)容的上下文敏感自適應(yīng)
19.6.2 適應(yīng)變化的系統(tǒng)資源
19.6.3 小結(jié)和前景
19.7 實例研究:Cooltown
19.7.1 Web存在
19.7.2 物理超鏈接
19.7.3 互操作和eSquirt協(xié)議
19.7.4 小結(jié)和前景
19.8 小結(jié)
練習(xí)
第20章 分布式多媒體系統(tǒng)
20.1 簡介
20.2 多媒體數(shù)據(jù)的特征
20.3 服務(wù)質(zhì)量管理
20.3.1 服務(wù)質(zhì)量協(xié)商
20.3.2 許可控制
20.4 資源管理
20.5 流自適應(yīng)
20.5.1 調(diào)整
20.5.2 過濾
20.6 實例研究:Tiger視頻文件服務(wù)器、BitTorrent和端系統(tǒng)多播
20.6.1 Tiger視頻文件服務(wù)器
20.6.2 BitTorrent
20.6.3 端系統(tǒng)多播
20.7 小結(jié)
練習(xí)
第21章 分布式系統(tǒng)設(shè)計:Google實例研究
21.1 簡介
21.2 實例研究簡介:Google
21.3 總體結(jié)構(gòu)和設(shè)計理念
21.3.1 物理模型
21.3.2 總的系統(tǒng)體系結(jié)構(gòu)
21.4 底層通信范型
21.4.1 遠(yuǎn)程調(diào)用
21.4.2 發(fā)布-訂閱
21.4.3 通信的關(guān)鍵設(shè)計選擇總結(jié)
21.5 數(shù)據(jù)存儲和協(xié)調(diào)服務(wù)
21.5.1 Google文件系統(tǒng)
21.5.2 Chubby
21.5.3 Bigtable
21.5.4 關(guān)鍵設(shè)計選擇總結(jié)
21.6 分布式計算服務(wù)
21.6.1 MapReduce
21.6.2 Sawzall
21.6.3 關(guān)鍵設(shè)計選擇總結(jié)
21.7 小結(jié)
練習(xí)
參考文獻
索引