分布式系统原理与范型

《分布式系统原理与范型(第2版)》是2008年5月出版的图书,作者是Andrew S. Tanenbaum等。
- 书名 分布式系统原理与范型(第2版)
- 作者 Andrew S. Tanenbaum等
- 出版时间 2008年5月4日
- 定价 69 元
- 装帧 平装
图书简介
本书是著名作者Tanenbaum关于分布式系统的最新力作,是分布式系统的权威教材。本书分成了两大部分。第2~9章讨论的是分布式系统的的原理、概念和技术,包括通信、进程、命名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,本书没有在讨论范型的章节中完整地介绍每个案例研究,而是通过一个有代表性的案例来解释原理。这种介绍方法不仅精简了素材,而且可以使得读者在阅读和学习时更愉快些。全书结构清晰,内容全面经典,系统性与先进性并茂。
本书适用对象广泛,不仅可以作为学习分布式计算机的本科生和研究生的教材,对于从事分布式计算研究和工程应用的科技人员和工程技术人员来说,本书也是一本优秀的读物。
图书目录
概述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分布式系统原理与范型(第2版)目录第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 异步RPC95
4.2.4 示例: DCE RPC96
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 分层实现: LDAP158
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 示例: Kerberos298
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 Bean322
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 RMI332
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 示例: Globe348
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中的RPC362
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