当前: 首页 - 图书专区 - 分布式系统概念与设计(原书第4版)
分布式系统概念与设计(原书第4版)


  在线购买
George Coulouris;Jean Dollimore;Tim Kindberg
7-111-22438-9
69.00
568
2008年01月10日
金蓓弘 曹冬磊
计算机 > 操作系统 > 操作系统理论
Addison-Wesley
2602
简体中文
16开
Distributed Systems: Concepts and Design (4th Edition)
教材
计算机科学丛书







本书是衡量所有其他分布式系统教材的标准。
                           ——Amazon.com.uk评

  从移动电话到因特网,我们的生活越来越依赖于以无缝和透明的方式将计算机和其他设备链接在一起的分布式系统。本书全面介绍分布式系统的设计原理和实践及其新进展,并使用大量最新的实例研究来阐明分布式系统的设计与开发方法。
  本书的前几版已经被爱丁堡大学、伊利诺伊大学、卡内基-梅隆大学、南加州大学、得克萨斯A&M大学、多伦多大学、罗切斯特理工学院、北京大学等名校采纳为高级操作系统、计算机网络、分布式系统课程的教材。
  本书网站www.cdk4.net和www.pearsoned.co.uk/coulouris为学生和教师提供了丰富的学习及教学资源(源代码、参考文献、教学幻灯片、勘误等)。

第4版的新内容:
  ●全新的三章内容,分别介绍对等系统、Web服务、移动与无处不在计算系统。
  ●超过25个常见系统的实例研究,其中8个是全新的,包括对网格、Cooltown、蓝牙以及WiFi WEP协议的研究。
  ●全面更新XML及其安全扩展的内容以及用于无处不在系统的AES加密标准与安全设计。
在因特网和Web走向成熟、能够支持多种分布式系统之际,本书的第4版问世了。如今,分布式系统的规模已远远超过了本书第3版出版时的预期。
  本书旨在介绍因特网和其他分布式系统所蕴涵的原理、体系结构、算法和设计。前两章是概念上的简介,概括分布式系统的特征和必须在设计中解决的挑战:可伸缩性、异构性、安全性和故障处理。这两章也给出了理解进程交互、故障和安全的抽象模型。后续几章关注连网、进程间通信、远程调用和中间件、操作系统和命名。
接着,我们论及一些比较成熟的主题,包括安全、数据复制、组通信、分布式文件系统、分布式事务、CORBA、分布式共享内存和多媒体系统。此外,还会讨论一些新的主题:Web服务、XML、网格、对等、移动和无处不在系统。与这些主题相关的算法将在相关主题中讨论。我们还将另辟几章讨论时序、协调和协定。
目的和读者群
本书可作为本科生教材和研究生的入门教材,也可作为自学教材。本书采用自顶向下的方法,首先叙述在分布式系统设计中要解决的问题,然后,通过抽象模型、算法和对广泛使用的系统实例进行详细研究的方式,描述成功开发系统的方法。本书覆盖的领域有足够的宽度和广度,使得读者在读完本书后能继续研究分布式系统文献中的大多数研究论文。
本书希望读者具有面向对象编程、操作系统以及基本的计算机体系结构知识。本书涵盖与分布式系统有关的计算机网络的知识,包括因特网、广域网、局域网和无线网的基本技术。本书中的大部分算法和接口用Java描述,有一小部分用ANSI C描述。为了表述上的简洁明了,还将使用一种从Java/C中派生出来的伪代码。
本书的组织
下图表明本书的各章可划分为六个主题。它说明了本书的结构,为教师、读者提供了一个推荐的导航路径,以便于他们理解分布式系统设计中的不同子领域。
参考文献
因特网的存在改变了书(比如本书)与源材料(包括研究论文、技术规约和标准)的连接方式。现在许多源文档可从Web上获取,有一些文档甚至只能从Web上获得。出于简洁和可读性方面的考虑,本书对Web参考材料采用了一种类似于URL的特殊的格式,诸如 [www.omg.org]和[www.rasecurity.com I] 指的是仅能从Web上获得的文档。在本书的参考文献中可以找到它们,但是完整的URL仅在本书参考文献的联机版本(www.cdk4.net/ref3)上给出。两个版本的参考文献都有对这种机制的详细解释。
第4版所做的修改
在开始编写新版之前,我们对使用本书第3版的老师做了一个调查。我们根据调查结果来确定新内容和要做的修改。为此,编写了全新的三章,并在书中插入了很多新内容。所有的章都做了改动,以反映所描述系统可用的新信息。不过,为了帮助使用本书第3版的老师,我们仍采用了已有章节的结构。下表给出了新的章和包含实质性改变的地方。第4版删除了Mach实例研究一章,但它和其他几个从本书第2版和第3版删除的实例均可从本书的网站上获得。
全新的章:
10 对等系统
16 移动和无处不在计算
19 Web服务
第4版从第10章起进行了重新编号
新增内容但没有改变结构的章节:
1 分布式系统的特征 1.3.1节:更新了对Web服务的介绍
2 系统模型 2.2.2节:更新了对等的介绍
3 网络和网际互连 有许多更新
新增3.5.3节:实例研究:蓝牙
4 进程间通信 新增4.3.3节:XML
7 安全性 若干更新
新增7.6.4:WiFi的弱点
9 名字服务 9.1.1:URI一节做了更新
20 CORBA实例研究 20.2.1:升级到Java 2 vn 1.4
20.2.6:与Web服务的集成
其他章节仅做了少量修改
致谢
感谢下列老师参与了我们的调查:Kay Robbins、Kohei Honda、Stefan Leue和Ian Wakeman。
感谢下列人员审阅了新增的章节或提供了其他有实质性的帮助:John Barton、Arne Glenstrup、Roy Logie、Friedemann Mattern、Christian Mortensen、Anthony Rowstron、Bo Sanden、Dave Scott、Ben Smyth、Mirjana Spasojevic、Salman Taherian、Andrew Twigg、Jim Waldo、Eiko Yoneki、Kan Zhang和Ben Zhao。
伦敦大学Queen Mary学院计算机科学系承担了本书第3版的Web站点的建设工作,也同意承担第4版的Web站点的建设。感谢该系提供的支持以及Keith Clarke和系统小组对建立和维护网站所提供的帮助。
最后,感谢Pearson Education/Addison-Wesley的公司Simon Plumtree、Bridget Allen、Mary Lince和Owen Knight为本书的出版付印全过程提供的支持。
本书网站
和以往一样,本书提供配套的网站,其中包含大量的材料,以便教师和读者教学和学习之用。读者可通过下列URL访问该网站:www.cdk4.net和www.pearsoned.co.uk/coulouris。
该Web网站包括以下内容:
1)教师指南,内容包括:
ナ本书的全部插图(PowerPoint文件)。
ナ练习的答案(需要密码,仅对注册的教师开放)。
ナ每章的教学提示。
ナ建议的实验室项目。
2)参考文献列表:本书结尾的参考文献列表也可在本书网站上找到。参考文献列表的Web版本包含可联机获得的材料的Web连接。读者也可登录华章网站www.hzbook.com下载参考文献。
3)勘误表:给出书中的错误和改正清单。和本书第3版一样,错误会在再次印刷时更正,每次印刷会提供一个单独的勘误表。
4)补充材料:我们为每一章提供一套补充材料,包括书中程序的源代码和相关的阅读材料,主要是本书上一版有的但在本版中因为篇幅的缘故而被删除的内容。补充材料在本书中用类似www.cdk4.net/ipc的链接表示。
5)为使用本书的课程建立的Web网站的链接:本书第3版的Web站点包括使用本书的15个课程的链接,这样可获得大量有用的课件、幻灯片、练习和实验室项目。我们希望获得教师的允许将这些参考资料放到本书的网站中。使用本书的其他教师可向我们告知URL,以便包含在我们的链接列表中。

George Coulouris
Jean Dollimore
Tim Kindberg
伦敦,Bristol,2005年 3月
authors@cdk4.net
译者序
前言

第1章  分布式系统的特征 1
1.1  简介 1
1.2  分布式系统的实例 2
1.2.1  因特网 2
1.2.2  企业内部网 3
1.2.3  移动计算和无处不在计算 3
1.3  资源共享和Web 5
1.4  挑战 10
1.4.1  异构性 11
1.4.2  开放性 11
1.4.3  安全性 12
1.4.4  可伸缩性 13
1.4.5  故障处理 14
1.4.6  并发性 15
1.4.7  透明性 15
1.5  小结 16
练习 17
第2章  系统模型 19
2.1  简介 19
2.2  体系结构模型 20
2.2.1  软件层 20
2.2.2  系统体系结构 22
2.2.3  变体 23
2.2.4  接口和对象 27
2.2.5  分布式体系结构的设计需求 27
2.3  基础模型 30
2.3.1  交互模型 31
2.3.2  故障模型 34
2.3.3  安全模型 36
2.4  小结 39
练习 40
第3章  网络和网际互连 42
3.1  简介 42
3.2  网络类型 44
3.3  网络原理 46
3.3.1  数据包的传输 47
3.3.2  数据流 47
3.3.3  交换模式 47
3.3.4  协议 48
3.3.5  路由 52
3.3.6  拥塞控制 54
3.3.7  网际互连 55
3.4  因特网协议 57
3.4.1  IP寻址 59
3.4.2  IP协议 60
3.4.3  IP路由 62
3.4.4  IPv6 65
3.4.5  移动IP 67
3.4.6  TCP和UDP 68
3.4.7  域名 69
3.4.8  防火墙 70
3.5  实例研究:以太网、WiFi、
蓝牙和ATM 72
3.5.1  以太网 73
3.5.2  IEEE 802.11无线LAN 76
3.5.3  IEEE 802.15.1蓝牙无线PAN 78
3.5.4  异步传输模式网络 80
3.6  小结 82
练习 82
第4章  进程间通信 84
4.1  简介 84
4.2  因特网协议的API 85
4.2.1  进程间通信的特征 85
4.2.2  套接字 86
4.2.3  UDP数据报通信 87
4.2.4  TCP流通信 90
4.3  外部数据表示和编码 93
4.3.1  CORBA的公共数据表示 94
4.3.2  Java对象序列化 95
4.3.3  可扩展标记语言 97
4.3.4  远程对象引用 99
4.4  客户-服务器通信 100
4.5  组通信 105
4.5.1  IP组播—组通信的实现 106
4.5.2  组播的可靠性和排序 108
4.6  实例研究:UNIX中的进程间通信 108
4.6.1  数据报通信 109
4.6.2  流通信 110
4.7  小结 110
练习 111
第5章  分布式对象和远程调用 114
5.1  简介 114
5.2  分布式对象间的通信 116
5.2.1  对象模型 117
5.2.2  分布式对象 117
5.2.3  分布式对象模型 118
5.2.4  RMI的设计问题 120
5.2.5  RMI的实现 122
5.2.6  分布式无用单元收集 125
5.3  远程过程调用 126
5.4  事件和通知 129
5.4.1  分布式事件通知的参与者 131
5.4.2  实例研究:Jini分布式事件规约 132
5.5  实例研究:Java RMI 133
5.5.1  创建客户和服务器程序 136
5.5.2  Java RMI的设计和实现 138
5.6  小结 139
练习 139
第6章  操作系统支持 142
6.1  简介 142
6.2  操作系统层 143
6.3  保护 144
6.4  进程和线程 145
6.4.1  地址空间 146
6.4.2  新进程的生成 147
6.4.3  线程 149
6.5  通信和调用 157
6.5.1  调用性能 158
6.5.2  异步操作 162
6.6  操作系统的体系结构 164
6.7  小结 167
练习 167
第7章  安全性 169
7.1  简介 169
7.1.1  威胁和攻击 170
7.1.2  保护电子事务 172
7.1.3  设计安全系统 173
7.2  安全技术概述 174
7.2.1  密码学 175
7.2.2  密码学的应用 175
7.2.3  证书 177
7.2.4  访问控制 178
7.2.5  凭证 180
7.2.6  防火墙 181
7.3  密码算法 181
7.3.1  密钥(对称)算法 184
7.3.2  公钥(不对称)算法 186
7.3.3  混合密码协议 188
7.4  数字签名 188
7.4.1  公钥数字签名 189
7.4.2  密钥数字签名—MAC 189
7.4.3  安全摘要函数 190
7.4.4  证书标准和证书权威机构 191
7.5  密码实用学 192
7.5.1  密码算法的性能 192
7.5.2  密码学的应用和政治障碍 193
7.6  案例研究:Needham-Schroeder、
Kerberos、TLS和802.11 WiFi 194
7.6.1  Needham-Schroeder认证协议 194
7.6.2  Kerberos 195
7.6.3  使用安全套接字确保
电子交易安全 199
7.6.4  IEEE 802.11 WiFi 安全
设计中的缺陷 201
7.7  小结 203
练习 204
第8章  分布式文件系统 205
8.1  简介 205
8.1.1  文件系统的特点 207
8.1.2  分布式文件系统的需求 208
8.1.3  实例研究 209
8.2  文件服务体系结构 210
8.3  实例研究:SUN网络文件系统 214
8.4  实例研究:Andrew文件系统 222
8.4.1  实现 223
8.4.2  缓存的一致性 225
8.4.3  其他方面 227
8.5  最新进展 228
8.6  小结 232
练习 232
第9章  名字服务 234
9.1  简介 234
9.2  名字服务和域名系统 236
9.2.1  名字空间 237
9.2.2  名字解析 239
9.2.3  域名系统 241
9.3  目录服务 246
9.4  实例研究:全局名字服务 246
9.5  实例研究:X.500目录服务 248
9.6  小结 251
练习 252
第10章  对等系统 253
10.1  简介 253
10.2  Napster及其遗留系统 256
10.3  对等中间件 257
10.4  路由覆盖 259
10.5  路由覆盖实例研究:
Pastry和Tapestry 261
10.5.1  Pastry 261
10.5.2  Tapestry 266
10.6  应用实例研究:Squirrel、
OceanStore和Ivy 267
10.6.1  Squirrel  Web缓存 267
10.6.2  OceanStore文件存储 269
10.6.3  Ivy文件系统 272
10.7  小结 274
练习 275
第11章  时间和全局状态 277
11.1  简介 277
11.2  时钟、事件和进程状态 278
11.3  同步物理时钟 279
11.3.1  同步系统中的同步 280
11.3.2  同步时钟的Cristian方法 281
11.3.3  Berkeley算法 281
11.3.4  网络时间协议 282
11.4  逻辑时间和逻辑时钟 284
11.5  全局状态 286
11.5.1  全局状态和一致割集 287
11.5.2  全局状态谓词、稳定性、
安全性和活性 288
11.5.3  Chandy和Lamport的“快照”算法 289
11.6  分布式调试 291
11.6.1  观察一致的全局状态 293
11.6.2  判定可能的f 294
11.6.3  判定明确的f 294
11.6.4  在同步系统中判定可能的f
和明确的f 295
11.7  小结 296
练习 296
第12章  协调和协定 298
12.1  简介 298
12.2  分布式互斥 300
12.3  选举 305
12.4  组播通信 308
12.4.1  基本组播 309
12.4.2  可靠组播 310
12.4.3  有序组播 312
12.5  共识和相关问题 317
12.5.1  系统模型和问题定义 317
12.5.2  同步系统中的共识问题 320
12.5.3  同步系统中的拜占庭将军问题 320
12.5.4  异步系统的不可能性 323
12.6  小结 324
练习 325
第13章  事务和并发控制 327
13.1  简介 327
13.1.1  简单的同步机制(无事务) 328
13.1.2  事务的故障模型 329
13.2  事务 329
13.2.1  并发控制 332
13.2.2  事务放弃时的恢复 334
13.3  嵌套事务 336
13.4  锁 337
13.4.1  死锁 342
13.4.2  在加锁机制中增加并发度 345
13.5  乐观并发控制 346
13.6  时间戳排序 349
13.7  并发控制方法的比较 353
13.8  小结 354
练习 355
第14章  分布式事务 359
14.1  简介 359
14.2  平面分布式事务和嵌套分布式事务 359
14.3  原子提交协议 361
14.3.1  两阶段提交协议 362
14.3.2  嵌套事务的两阶段提交协议 364
14.4  分布式事务的并发控制 367
14.4.1  加锁 367
14.4.2  时间戳并发控制 368
14.4.3  乐观并发控制 368
14.5  分布式死锁 369
14.6  事务恢复 374
14.6.1  日志 375
14.6.2  影子版本 377
14.6.3  为何恢复文件需要事务
状态和意图列表 378
14.6.4  两阶段提交协议的恢复 378
14.7  小结 380
练习 381
第15章  复制 383
15.1  简介 383
15.2  系统模型和组通信 385
15.2.1  系统模型 385
15.2.2  组通信 386
15.3  容错服务 390
15.3.1  被动(主备份)复制 392
15.3.2  主动复制 393
15.4  高可用服务的实例研究:gossip
体系结构、Bayou和Coda 394
15.4.1  gossip体系结构 395
15.4.2  Bayou系统和操作变换方法 401
15.4.3  Coda文件系统 402
15.5  复制数据上的事务 407
15.5.1  复制事务的体系结构 407
15.5.2  可用拷贝复制 409
15.5.3  网络分区 410
15.5.4  带验证的可用拷贝 411
15.5.5  法定数共识方法 411
15.5.6  虚拟分区算法 413
15.6  小结 415
练习 415
第16章  移动计算和无处不在计算 417
16.1  简介 417
16.2  关联 423
16.2.1  发现服务 424
16.2.2  物理关联 427
16.2.3  小结和前景 428
16.3  互操作 428
16.3.1  易变系统的面向数据编程 429
16.3.2  间接关联和软状态 432
16.3.3  小结和前景 433
16.4  感知和上下文敏感 433
16.4.1  传感器 434
16.4.2  感知体系结构 434
16.4.3  位置感知 438
16.4.4  小结和前景 441
16.5  安全和私密性 442
16.5.1  背景 442
16.5.2  一些解决办法 443
16.5.3  小结和前景 447
16.6  自适应 447
16.6.1  内容的上下文敏感自适应 448
16.6.2  适应变化的系统资源 449
16.6.3  小结和前景 450
16.7  Cooltown实例研究 450
16.7.1  Web存在 451
16.7.2  物理超链接 452
16.7.3  互操作和eSquirt协议 454
16.7.4  小结和前景 455
16.8  小结 455
练习 456
第17章  分布式多媒体系统 458
17.1  简介 458
17.2  多媒体数据的特征 461
17.3  服务质量管理 462
17.3.1  服务质量协商 464
17.3.2  许可控制 467
17.4  资源管理 468
17.5  流适应 469
17.5.1  调整 470
17.5.2  过滤 471
17.6  实例研究:Tiger视频文件服务器 471
17.7  小结 474
练习 474
第18章  分布式共享内存 476
18.1  简介 476
18.1.1  消息传递机制和DSM 477
18.1.2  DSM的实现方法 478
18.2  设计和实现问题 479
18.2.1  结构 479
18.2.2  同步模型 480
18.2.3  一致性模型 481
18.2.4  更新选项 483
18.2.5  粒度 485
18.2.6  系统颠簸 485
18.3  顺序一致性和lvy实例研究 485
18.3.1  系统模型 486
18.3.2  写失效 487
18.3.3  失效协议 488
18.3.4  一个动态分布式管理器算法 489
18.3.5  系统颠簸 490
18.4  释放一致性和Munin实例研究 491
18.4.1  内存访问 491
18.4.2  释放一致性 492
18.4.3  Munin 493
18.5  其他一致性模型 494
18.6  小结 495
练习 496
第19章  Web服务 498
19.1  简介 498
19.2  Web服务 499
19.2.1  SOAP 501
19.2.2  Web服务与分布式对象
模型的比较 504
19.2.3  在Java中使用SOAP 505
19.2.4  Web服务和CORBA的比较 508
19.3  服务描述和Web服务接口定义语言 509
19.4  Web服务使用的目录服务 512
19.5  XML安全性 513
19.6  Web服务的协作 516
19.7  实例研究:网格 517
19.7.1  World-Wide Telescope—
一种网格应用 518
19.7.2  数据密集型科学应用的特征 518
19.7.3  开放的网格服务体系结构 519
19.7.4  一些网格应用的例子 521
19.7.5  Globus工具包 522
19.8  小结 523
练习 524
第20章  CORBA实例研究 526
20.1  简介 526
20.2  CORBA RMI 527
20.2.1  CORBA客户和服务器实例 529
20.2.2  CORBA体系结构 532
20.2.3  CORBA接口定义语言 534
20.2.4  CORBA远程对象引用 537
20.2.5  CORBA语言映射 538
20.2.6  CORBA与Web的集成 538
20.3  CORBA服务 539
20.3.1  CORBA名字服务 540
20.3.2  CORBA事件服务 542
20.3.3  CORBA通知服务 543
20.3.4  CORBA安全服务 544
20.4  小结 544
练习 545
索引 548
参考文献
随着网络技术的发展和计算机应用的深入,分布式系统已成为目前主流的软件系统。
  本书介绍了分布式系统的概念、基本原理和核心技术,内容涉及通信、中间件、系统基础设施、分布式数据处理以及分布式算法等。通过阅读本书,读者既可以从系统层面上了解分布式系统构造的基本原理,又可以从算法层面上获知分布式系统构造的核心技术。
  本书素材广泛、内容充实、叙述深入浅出、条理清楚,每章后都配有练习题,并有配套网站提供大量学习和教学资料。因此,本书可以作为高等院校高年级本科生和研究生“分布式计算”及相关课程的教材或参考书,也可供分布式计算领域的科研人员阅读、参考。
  本书第3版和第4版都是由中国科学院软件研究所金蓓弘研究员组织和主持翻译的。
  本书第3版由若干同仁通力合作、共同翻译而成。前言、第1、2、4、10、11章由金蓓弘翻译,第6、8、15、16、18章由李剑博士翻译,第12、13、14章由丁柯博士翻译,第5、17章由刘绍华博士翻译,第3、9章由阮彤博士翻译,第3章由王仲玉翻译,第7章由刘志军翻译,由金蓓弘通校了第3版全部译文。
  本书第4版新增了三章。其中,第10章由张发恩翻译,第16章由张英翻译,第19章由臧志翻译。由金蓓弘、曹冬磊博士通校了第4版全部译文。
  由于时间和水平所限,翻译中不当之处在所难免,欢迎广大读者提出批评和指正。
  感谢机械工业出版社华章分社在引进、编辑、出版本书中所做的努力。

  译 者
  2007年8月于北京
读者书评
发表评论



高级搜索
操作系统教程
操作系统:精髓与设计原理(原书第6版)
操作系统实用教程:螺旋方法(英文版)


版权所有© 2008 北京华章图文信息有限公司 京ICP备08102525号 京公网安备110102004606号
通信地址:北京市百万庄南街1号 邮编:100037
电话:(010)68318309, 88378998 传真:(010)68311602, 68995260