《分布式系统概念与设计》旨在全面介绍因特网及其他常用分布式系统的原理、体系结构、算法和设计,内容涵盖分布式系统的相关概念、安全、数据复制、组通信、分布式文件系统、分布式事务等,以及相关的前沿主题,包括web服务、网格、移动系统和无处不在系统等。
第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
参考文献
《JavaScript修炼之道》是JavaScript的实战秘籍。作者将自己多年的编程经验融入其中,不仅可以作为学习之用,更是日常JavaScript
《JavaScript入门经典(第4版)》对上一版本做了。全面更新,使JavaScript代码适用于最新版本的IE、Firefox和Safari浏览器。Java...
《Node.js》内容简介:Node.js作为近几年新兴的一种编程运行时,托V8引擎的福,在作为后端服务时有比较高的运行效率,在很多场景下
《青箱杂记:唐宋史料笔记》由朝散郎知汉阳军吴处厚撰,共十卷,多记宋及五代朝野杂事、诗话及掌故,书中引到的魏野、李淑、王禹伪
网页设计越做越难,有时会距离自己想要的结果越来越远,越来越焦急。其实,最重要的是信心,无论经历多少失败也能站起来的勇气,
《企业资本运营:投融资实战操作指南》内容简介:受到新冠肺炎疫情等的影响,全球经济形势较为严峻,中小型企业的生存压力日渐增大
《关键设计报告:改变过去影响未来的交互设计法则》讲述了交互设计所有最基本的东西:交互设计的发展历史和由来,交互设计领域里的
《安藤忠雄论建筑》是安藤忠雄根据自己给东京大学建筑系研究生讲课的内容写成的第一部著作。他在书中详细叙述了自己成长为一名建
《德国哲学(2016年下半年卷)》内容简介:本书是由湖北大学哲学学院主办、湖北大学德国哲学研究所协办的专门研究德国哲学及相关问
Continuinghisexplorationoftheorganizationofcomplexityandthescienceofdesign,thisn...
计算机科学哲学研究-认知.计算与目的性的哲学思考 本书特色 《计算机科学哲学研究:认知、计算与目的性的哲学思考》:国家社科基金后期资助项目。计算机科学哲学研究-...
《OKR使用手册》内容简介:作为《这就是OKR》完美配套产品,本书也是作者近几年辅导企业落地实施OKR的经验大公开。它会告诉你,如何
《绝非偶然:撬动星球的头部效应》内容简介:这是一部各行业翘楚在互联网技术革命到来时,借助新媒体将个人能量放大,一跃逆袭成为
Java 7 编程高级进阶 本书特色 《java7编程高级进阶》包含了众多专家级编程技术,学习这些技术可以让你的java水平上升至一个新的台阶。借助真实环境下的...
本书将与知识点、重点、难点和考点有关的典型题做全析全解,是具有解题题典性质的助学读物。但本书又优于解题题典,不仅展示解题
《从雄安到人工智能》内容简介:本书从政治经济、外交环境、文化教育、科技发展等几个领域的社会热点事件切入,细述事件背后的来龙
《守土育人:重大公共卫生事件中的高校学生工作》内容简介:高校人员密集、场所封闭、流动性强、社会关注度高,是突发公共卫生事件
《活着,本该有趣》内容简介:“中国人的生活意趣”系列精选老舍、汪曾祺和丰子恺的散文代表作130篇,在一篇篇历经时间淘洗的优美散
《旅行人信札》内容简介:这些是1981年旅行时寄给北京亲友的信。我哥哥嘉曜极喜欢这些信,说要发表。他不是出版家,说说罢了。1993
《天津滨海新区史话》内容简介:天津滨海新区地处海河下游、渤海湾西岸,河海相依,临海近都,区位优越。这里曾是中国人民抗击外侮