第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