目录 1
出版者的话 1
专家指导委员会 1
前言 1
第1章 分布式系统的特征 1
1.1 简介 1
1.2 分布式系统实例 2
1.2.1 因特网 2
1.2.2 企业内部网 3
1.2.3 移动计算和无处不在的计算 4
1.3 资源共享和Web 5
1.4 挑战 12
1.4.1 异构性 12
1.4.2 开放性 13
1.4.3 安全性 14
1.4.4 可伸缩性 14
1.4.5 故障处理 16
1.4.7 透明性 17
1.4.6 并发 17
1.5 小结 18
第2章 系统模型 21
2.1 简介 21
2.2 体系结构模型 22
2.2.1 软件层 22
2.2.2 系统体系结构 24
2.2.3 客户-服务器模型的变种 27
2.2.4 接口和对象 31
2.2.5 分布式体系结构的设计需求 32
2.3 基础模型 34
2.3.1 交互模型 35
2.3.2 故障模型 39
2.3.3 安全模型 42
2.4 小结 45
第3章 网络和网络互联 47
3.1 简介 47
3.2 网络类型 50
3.3 网络原理 52
3.3.1 数据包的传输 52
3.3.3 交换模式 53
3.3.2 数据流 53
3.3.4 协议 54
3.3.5 路由 59
3.3.6 拥塞控制 62
3.3.7 网络互联 62
3.4 因特网协议 65
3.4.1 IP寻址 67
3.4.2 IP协议 68
3.4.3 IP路由 70
3.4.4 IPv6 72
3.4.5 移动IP 74
3.4.6 TCP和UDP 75
3.4.7 域名 77
3.4.8 防火墙 77
3.5 网络实例研究:以太网、无线LAN 80
和ATM 80
3.5.1 以太网 81
3.5.2 IEEE 802.11无线LAN 84
3.5.3 异步传输模式网络 86
3.6 小结 88
第4章 进程间通信 91
4.1 简介 91
4.2 因特网协议的API 92
4.2.1 进程间通信的特征 92
4.2.2 套接字 93
4.2.3 UDP数据报通信 94
4.2.4 TCP流通信 96
4.3 外部数据表示和编码 101
4.3.1 CORBA的公共数据表示(CDR) 102
4.3.2 Java对象序列化 103
4.3.3 远程对象引用 105
4.4 客户-服务器通信 106
4.5 组通信 111
4.5.1 IP组播——组通信的实现 112
4.5.2 组播的可靠性和排序 113
4.6 实例研究:UNIX系统的进程间通信 115
4.6.1 数据报通信 115
4.6.2 流通信 116
4.7 小结 117
5.1 简介 121
第5章 分布式对象和远程调用 121
5.2 分布式对象间的通信 124
5.2.1 对象模型 124
5.2.2 分布式对象 125
5.2.3 分布式对象模型 126
5.2.4 RMI的设计问题 127
5.2.5 RMI的实现 129
5.2.6 分布式无用单元回收 133
5.3 远程过程调用 134
5.4 事件和通知 137
5.4.1 分布式事件通知的参与者 138
5.4.2 Jini分布式事件规范 141
5.5 Java RMI实例研究 142
5.5.1 创建客户程序和服务器程序 145
5.5.2 Java RMI的设计和实现 147
5.6 小结 148
第6章 操作系统支持 153
6.1 简介 153
6.2 操作系统层 154
6.3 保护 156
6.4 进程和线程 157
6.4.1 地址空间 158
6.4.2 新进程的创建 160
6.4.3 线程 162
6.5 通信和调用 171
6.5.1 调用性能 172
6.5.2 异步操作 177
6.6 操作系统体系结构 179
6.7 小结 182
7.1 简介 185
第7章 安全性 185
7.1.1 威胁和攻击 187
7.1.2 保护电子事务 189
7.1.3 设计安全系统 190
7.2 安全技术概述 192
7.2.1 密码学 192
7.2.2 密码学的应用 192
7.2.3 证书 195
7.2.4 访问控制 196
7.2.5 凭证 198
7.2.6 防火墙 199
7.3 加密算法 200
7.3.1 保密密钥(对称)算法 203
7.3.2 公开密钥(非对称)算法 205
7.3.3 混合密码协议 207
7.4 数字签名 207
7.4.1 公开密钥数字签名 209
7.4.2 保密密钥数字签名——MAC 209
7.4.3 安全摘要函数 210
7.4.4 证书标准和证书权威机构 212
7.5 密码实用学 213
7.5.1 加密算法的性能 213
7.5.2 密码学的应用和政治障碍 213
7.6 实例研究:Needham-Schroeder、Kerberos、SSL和Millicent 215
7.6.1 Needham-Schroeder认证协议 215
7.6.2 Kerberos 216
7.6.3 使用安全套接字确保电子交易安全 220
7.6.4 小额电子交易:Millicent协议 223
7.7 小结 226
8.1 简介 229
第8章 分布式文件系统 229
8.1.1 文件系统的特点 231
8.1.2 分布式文件系统的需求 233
8.1.3 实例研究 234
8.2 文件服务系统结构 235
8.3 Sun网络文件系统 239
8.4 Andrew文件系统 248
8.4.1 实现 250
8.4.2 缓存的一致性 253
8.5 最新进展 255
8.4.3 其他方面 255
8.6 小结 260
第9章 命名服务 263
9.1 简介 263
9.2 命名服务和域名系统 265
9.2.1 名字空间 266
9.2.2 名字解析 269
9.2.3 域名系统 271
9.3 目录服务和发现服务 277
9.4 实例研究:全局命名服务 279
9.5 实例研究:X.500目录服务 282
9.6 小结 285
第10章 时间和全局状态 289
10.1 简介 289
10.2 时钟、事件和进程状态 290
10.3 同步物理时钟 292
10.3.1 同步系统中的同步 293
10.3.2 同步时钟的Cristian方法 293
10.3.3 Berkeley算法 294
10.3.4 网络时间协议 295
10.4 逻辑时间和逻辑时钟 297
10.5 全局状态 300
10.5.1 全局状态和一致割集 301
10.5.2 全局状态谓词、稳定性、安全性和活性 303
10.5.3 Chandy和Lamport的“快照”算法 303
10.6 分布式调试 307
10.6.1 观察一致的全局状态 308
10.6.2 求解可能的φ 309
10.6.3 求解明确的φ 310
10.7 小结 311
10.6.4 在同步系统中求解可能的φ和明确的φ 311
11.1 简介 315
第11章 协调和协定 315
11.2 分布式互斥 318
11.3 选举 324
11.4 组播通信 327
11.4.1 基本组播 329
11.4.2 可靠组播 329
11.4.3 有序组播 332
11.5.1 系统模型和问题定义 339
11.5 共识和相关问题 339
11.5.2 同步系统中的共识问题 342
11.5.3 同步系统中的拜占庭将军问题 343
11.5.4 异步系统的不可能性 346
11.6 小结 347
第12章 事务和并发控制 351
12.1 简介 351
12.1.1 简单的同步机制(无事务) 352
12.1.2 事务的故障模型 353
12.2 事务 354
12.2.1 并发控制 357
12.2.2 事务放弃时的恢复 360
12.3 嵌套事务 362
12.4 锁 364
12.4.1 死锁 369
12.4.2 在加锁机制中增加并发度 372
12.5 乐观并发控制 374
12.6 时间戳排序 377
12.7 并发控制方法的比较 383
12.8 小结 384
第13章 分布式事务 389
13.1 简介 389
13.2 平面分布式事务和嵌套分布式事务 390
13.3 原子提交协议 392
13.3.1 两阶段提交协议 393
13.3.2 嵌套事务的两阶段提交协议 395
13.4 分布式事务的并发控制 398
13.4.1 锁 399
13.4.2 时间戳排序并发控制 399
13.4.3 乐观并发控制 400
13.5 分布式死锁 401
13.6 事务恢复 406
13.6.1 日志 408
13.6.2 影子版本 410
13.6.3 为何恢复文件需要事务状态 411
和意图列表 411
13.6.4 两阶段提交协议的恢复 411
13.7 小结 414
14.1 简介 417
第14章 复制 417
14.2 系统模型和组通信 419
14.2.1 系统模型 419
14.2.2 组通信 421
14.3 容错服务 425
14.3.1 被动(主备份)复制 427
14.3.2 主动复制 429
14.4 高可用服务 430
14.4.1 gossip系统 431
14.4.2 Bayou系统的操作变换方法 438
14.4.3 Coda文件系统 439
14.5 复制数据上的事务 444
14.5.1 用于复制事务的体系结构 445
14.5.2 可用拷贝复制 446
14.5.3 网络分区 448
14.5.4 带验证的可用拷贝 449
14.5.5 法定数共识方法 449
14.5.6 虚拟分区算法 451
14.6 小结 453
15.1 简介 457
第15章 分布式多媒体系统 457
15.2 多媒体数据的特征 460
15.3 服务质量管理 461
15.3.1 服务质量协商 464
15.3.2 许可控制 468
15.4 资源管理 469
15.5 流适应 470
15.5.1 调整 471
15.5.2 过滤 471
15.6 实例研究:Tiger视频文件服务器 472
15.7 小结 475
第16章 分布式共享内存 477
16.1 简介 477
16.1.1 消息传递机制和DSM的比较 478
16.1.2 DSM的实现方法 479
16.2 设计问题和实现问题 481
16.2.1 结构 481
16.2.2 同步模型 482
16.2.3 一致性模型 483
16.2.4 更新选项 486
16.2.5 粒度 487
16.2.6 系统颠簸 488
16.3 顺序一致性和Ivy 488
16.3.1 系统模型 488
16.3.2 写失效 489
16.3.3 失效协议 491
16.3.4 一个动态分布式管理器算法 492
16.3.5 系统颠簸 494
16.4 释放一致性和Munin 494
16.4.1 内存访问 495
16.4.2 释放一致性 496
16.4.3 Munin 497
16.5 其他一致性模型 499
16.6 小结 500
第17章 CORBA实例研究 503
17.1 简介 503
17.2 CORBA RMI 504
17.2.1 CORBA客户和服务器举例 506
17.2.2 CORBA体系结构 509
17.2.3 CORBA接口定义语言 511
17.2.5 CORBA语言映射 515
17.2.4 CORBA远程对象引用 515
17.3 CORBA服务 516
17.3.1 CORBA命名服务 517
17.3.2 CORBA事件服务 519
17.3.3 CORBA通知服务 520
17.3.4 CORBA安全服务 522
17.4 小结 522
第18章 Mach实例研究 527
18.1 简介 527
18.1.1 设计目标和主要设计特点 528
18.1.2 Mach主要的抽象概述 529
18.2 端口、命名和保护 530
18.3 任务和线程 531
18.4 通信模型 533
18.4.1 消息 533
18.4.2 端口 534
18.4.3 mach_msg系统调用 535
18.5 通信实现 535
18.5.1 透明消息传递 535
18.6 内存管理 537
18.5.2 开放性:协议和驱动程序 537
18.6.1 地址空间结构 538
18.6.2 内存共享:继承和消息传递 538
18.6.3 对写时复制的评价 539
18.6.4 外部分页 540
18.6.5 对访问内存对象的支持 541
18.7 小结 542
参考文献 545
索引 575