本書(shū)是著(zhù)名作者Tanenbaum關(guān)于分布式系統的力作,是分布式系統的經(jīng)典教材。本書(shū)分成了兩大部分。第2~9章討論的是分布式系統的的原理、概念和技術(shù),包括通信、進(jìn)程、命名、同步化、一致性和復制、容錯性以及安全性等,而分布式應用的開(kāi)發(fā)方法(即范型)在第10~13章中進(jìn)行了討論。但是,與前一版不同的是,我們沒(méi)有在討論范型的章節中完整地介紹每個(gè)案例研究,而是通過(guò)一個(gè)有代表性的案例來(lái)解釋原理。這種介紹方法使得我們不僅精簡(jiǎn)了素材,而且可以使得讀者在閱讀和學(xué)習時(shí)更愉快些。全書(shū)結構清晰,內容全面經(jīng)典,系統性與先進(jìn)性并茂。
本書(shū)適用對象廣泛,不僅可以作為學(xué)習分布式計算機的本科生和研究生的教材,對于從事分布式計算研究和工程應用的科技人員和工程技術(shù)人員來(lái)說(shuō),本書(shū)也是一本優(yōu)秀的讀物。
第1章 概述
1.1 分布式系統的定義
1.2 目標
1.2.1 使資源可訪(fǎng)問(wèn)
1.2.2 透明性
1.2.3 開(kāi)放性
1.2.4 可擴展性
1.3 分布式系統的類(lèi)型
1.3.1 分布式計算系統
1.3.2 分布式信息系統
1.3.3 分布式普適系統
本章小結
習題
第2章 體系結構
2.1 體系結構的樣式
2.2 系統體系結構
2.2.1 集中式體系結構
2.2.2 非集中式體系結構
2.2.3 混合體系結構
2.3 體系結構與中間件
2.3.1 中斷器
2.3.2 自適應軟件的常見(jiàn)方法
2.3.3 討論
2.4 分布式系統的自我管理
2.4.1 反饋控制模型
2.4.2 示例:用Astrolabe監視系統
2.4.3 示例:Globule中的差分復制策略
2.4.4 示例:Jade的自動(dòng)組件修復管理
本章小結
習題
第3章 進(jìn)程
3.1 線(xiàn)程
3.1.1 線(xiàn)程簡(jiǎn)介
3.1.2 分布式系統中的線(xiàn)程
3.2 虛擬化
3.2.1 虛擬化在分布式系統中的作用
3.2.2 虛擬機體系結構
3.3 客戶(hù)
3.3.1 網(wǎng)絡(luò )連接的用戶(hù)接口
3.3.2 客戶(hù)端軟件與分布透明性
3.4 服務(wù)器
3.4.1 常見(jiàn)的設計問(wèn)題
3.4.2 服務(wù)器集群
3.4.3 管理服務(wù)器集群
3.5 代碼遷移
3.5.1 代碼遷移方案
3.5.2 遷移與本地資源
3.5.3 異構系統中的代碼遷移
本章小結
習題
第4章 通信
4.1 基礎知識
4.1.1 分層協(xié)議
4.1.2 通信類(lèi)型
4.2 遠程過(guò)程調用
4.2.1 基本的RPC操作
4.2.2 參數傳遞
4.2.3 異步RPC
4.2.4 示例:DCE RPC
4.3 面向消息的通信
4.3.1 面向消息的瞬時(shí)通信
4.3.2 面向消息的持久通信
4.3.3 示例:IBM WebSphere消息隊列系統
4.4 面向流的通信
4.4.1 為連續媒體提供支持
4.4.2 流與服務(wù)質(zhì)量
4.4.3 流同步
4.5 多播通信
4.5.1 應用層多播
4.5.2 基于gossip的數據通信
本章小結
習題
第5章 命名系統
5.1 名稱(chēng)、標識符和地址
5.2 無(wú)層次命名
5.2.1 簡(jiǎn)單方法
5.2.2 基于宿主位置的方法
5.2.3 分布式散列表
5.2.4 分層方法
5.3 結構化命名
5.3.1 名稱(chēng)空間
5.3.2 名稱(chēng)解析
5.3.3 名稱(chēng)空間的實(shí)現
5.3.4 示例:域名系統
5.4 基于屬性的命名
5.4.1 目錄服務(wù)
5.4.2 分層實(shí)現:LDAP
5.4.3 非集中式實(shí)現
本章小結
習題
第6章 同步化
6.1 時(shí)鐘同步
6.1.1 物理時(shí)鐘
6.1.2 全球定位系統
6.1.3 時(shí)鐘同步算法
6.2 邏輯時(shí)鐘
6.2.1 Lamport邏輯時(shí)鐘
6.2.2 向量時(shí)鐘
6.3 互斥
6.3.1 概述
6.3.2 集中式算法
6.3.3 非集中式算法
6.3.4 分布式算法
6.3.5 令牌環(huán)算法
6.3.6 四種算法的比較
6.4 結點(diǎn)的全局定位
6.5 選舉算法
6.5.1 傳統的選舉算法
6.5.2 無(wú)線(xiàn)系統環(huán)境中的選舉算法
6.5.3 大型系統中的選舉算法
本章小結
習題
第7章 一致性和復制
7.1 概述
7.1.1 進(jìn)行復制的原因
7.1.2 作為擴展技術(shù)的復制
7.2 以數據為中心的一致性模型
7.2.1 持續一致性
7.2.2 一致的操作順序
7.3 以客戶(hù)為中心的一致性模型
7.3.1 最終一致性
7.3.2 單調讀
7.3.3 單調寫(xiě)
7.3.4 讀寫(xiě)一致性
7.3.5 寫(xiě)讀一致性
7.4 復制管理
7.4.1 副本服務(wù)器的放置
7.4.2 內容復制與放置
7.4.3 內容分發(fā)
7.5 一致性協(xié)議
7.5.1 持續一致性
7.5.2 基于主備份的協(xié)議
7.5.3 復制的寫(xiě)協(xié)議
7.5.4 高速緩存相關(guān)性協(xié)議
7.5.5 實(shí)現以客戶(hù)為中心的一致性
本章小結
習題
第8章 容錯性
8.1 容錯性概述
8.1.1 基本概念
8.1.2 故障模式
8.1.3 使用冗余掩蓋故障
8.2 進(jìn)程恢復
8.2.1 設計問(wèn)題
8.2.2 故障掩蓋和復制
8.2.3 故障系統的協(xié)定
8.2.4 故障檢測
8.3 可靠的客戶(hù)-服務(wù)器通信
8.3.1 點(diǎn)對點(diǎn)通信
8.3.2 失敗時(shí)的RPC語(yǔ)義
8.4 可靠的組通信
8.4.1 基本的可靠多播方法
8.4.2 可靠多播中的可擴展性
8.4.3 原子多播
8.5 分布式提交
8.5.1 兩階段提交
8.5.2 三階段提交
8.6 恢復
8.6.1 概述
8.6.2 檢查點(diǎn)
8.6.3 消息日志
8.6.4 面向恢復的計算
本章小結
習題
第9章 安全性
9.1 安全性概述
9.1.1 安全威脅、策略和機制
9.1.2 設計問(wèn)題
9.1.3 加密
9.2 安全通道
9.2.1 身份認證
9.2.2 消息的完整性和機密性
9.2.3 安全組通信
9.2.4 示例:Kerberos
9.3 訪(fǎng)問(wèn)控制
9.3.1 訪(fǎng)問(wèn)控制中的常見(jiàn)問(wèn)題
9.3.2 防火墻
9.3.3 安全的移動(dòng)代碼
9.3.4 拒絕服務(wù)
9.4 安全管理
9.4.1 密鑰管理
9.4.2 安全組管理
9.4.3 授權管理
本章小結
習題
第10章 基于對象的分布式系統
10.1 體系結構
10.1.1 分布式對象
10.1.2 示例: 企業(yè)級Java Bean
10.1.3 示例: Globe分布式共享對象
10.2 進(jìn)程
10.2.1 對象服務(wù)器
10.2.2 示例: Ice運行時(shí)系統
10.3 通信
10.3.1 把客戶(hù)綁定到對象上
10.3.2 靜態(tài)遠程方法調用與動(dòng)態(tài)遠程方法調用
10.3.3 參數傳遞
10.3.4 示例: Java RMI
10.3.5 基于對象的消息傳遞
10.4 命名
10.4.1 CORBA對象引用
10.4.2 Globe對象引用
10.5 同步
10.6 一致性與復制
10.6.1 入口一致性
10.6.2 復制的調用
10.7 容錯性
10.7.1 示例: CORBA的容錯性
10.7.2 示例: Java的容錯性
10.8 安全性
10.8.1 示例: Globe
10.8.2 遠程對象的安全性
本章小結
習題
第11章 分布式文件系統
11.1 體系結構
11.1.1 客戶(hù)-服務(wù)器體系結構
11.1.2 基于群集的分布式文件系統
11.1.3 對稱(chēng)式體系結構
11.2 進(jìn)程
11.3 通信
11.3.1 NFS中的RPC
11.3.2 RPC2子系統
11.3.3 Plan 9中面向文件的通信
11.4 命名
11.4.1 NFS中的命名
11.4.2 構造全局名稱(chēng)空間
11.5 同步
11.5.1 文件共享的語(yǔ)義
11.5.2 文件鎖定
11.5.3 在Coda中共享文件
11.6 一致性和復制
11.6.1 客戶(hù)端緩存
11.6.2 服務(wù)器端復制
11.6.3 對等文件系統中的復制
11.6.4 網(wǎng)格系統中的文件復制
11.7 容錯性
11.7.1 處理Byzantine故障
11.7.2 對等系統中的高度可用性
11.8 安全性
11.8.1 NFS中的安全性
11.8.2 分散式身份認證
11.8.3 安全的對等文件共享系統
本章小結
習題
第12章 基于Web的分布式系統
12.1 體系結構395
12.1.1 傳統的基于Web的系統
12.1.2 Web服務(wù)
12.2 進(jìn)程
12.2.1 客戶(hù)
12.2.2 Apache Web服務(wù)器
12.2.3 Web服務(wù)器群集
12.3 通信
12.3.1 超文本傳輸協(xié)議
12.3.2 簡(jiǎn)單對象訪(fǎng)問(wèn)協(xié)議
12.4 命名
12.5 同步
12.6 一致性與復制
12.6.1 Web代理緩存
12.6.2 Web宿主系統的復制
12.6.3 Web應用程序的復制
12.7 容錯性
12.8 安全性
本章小結
習題
第13章 基于協(xié)作的分布式系統
13.1 協(xié)作模型介紹
13.2 體系結構
13.2.1 一般方法
13.2.2 傳統的體系結構
13.2.3 對等體系結構
13.2.4 移動(dòng)性和協(xié)作
13.3 進(jìn)程
13.4 通信
13.4.1 基于內容的路由
13.4.2 支持復合訂閱
13.5 命名
13.5.1 描述復合事件
13.5.2 匹配事件與訂閱
13.6 同步
13.7 一致性和復制
13.7.1 靜態(tài)方法
13.7.2 動(dòng)態(tài)復制
13.8 容錯性
13.8.1 可靠的發(fā)布-訂閱通信
13.8.2 共享數據空間中的容錯性
13.9 安全性
13.9.1 保密性
13.9.2 安全的共享數據空間
本章小結
習題
第14章 補充讀物與參考文獻
14.1 進(jìn)一步閱讀的建議
14.1.1 介紹性和綜述性的著(zhù)作
14.1.2 體系結構
14.1.3 進(jìn)程
14.1.4 通信
14.1.5 命名
14.1.6 同步化
14.1.7 一致性與復制
14.1.8 容錯性
14.1.9 安全性
14.1.10 面向對象的分布式系統
14.1.11 分布式文件系統
14.1.12 基于Web的分布式系統
14.1.13 基于協(xié)作的分布式系統
14.2 參考文獻