《分布式系统原理与范型》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:Andrew S.Tanenbaum,Maarten van Steen著;杨剑峰等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302089612
  • 页数:616 页
图书介绍:本书是Tanebaum先生所著的《分布式操作系统》的升级更新,是分布式系统的权威教材。全书分为两部分:原理和范型。第一部分详细讨论了分布式系统的原理、概念和技术,其中包括通信、进程、命名、同步、一致性和复制、容错以及安全。第二部分给出一些实际的分布式系统,介绍了一些实际系统的设计思想和实现技术。全书结构清晰,内容全面经典,系统性与先进性并茂。本书适用对象广泛,对于学习分布式计算的本科生和研究生,本书是优选教材。对于从事分布式计算研究和工程应用的科研人员和工程技术人员,本书也是一本优秀的基础性读物。

第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 多处理器系统 13

1.3.2 同构式多计算机系统 15

1.3.3 异构式多计算机系统 16

1.4 分布式系统的软件 17

1.4.1 分布式操作系统 18

1.4.2 网络操作系统 26

1.4.3 中间件 28

1.5 客户-服务器模型 33

1.5.1 客户与服务器 33

1.5.2 应用程序的分层 38

1.5.3 客户-服务器体系结构 40

习题 43

1.6 小结 43

第2章 通信 45

2.1 分层协议 45

2.1.1 低层协议 48

2.1.2 传输协议 50

2.1.3 高层协议 52

2.2 远程过程调用 54

2.2.1 基本的RPC操作 55

2.2.2 参数传递 58

2.2.3 扩展的RPC模型 61

2.2.4 实例:DCE RPC 64

2.3 远程对象调用 68

2.3.1 分布式对象 68

2.3.2 将客户绑定到对象 70

2.3.3 静态远程方法调用与动态远程方法调用 72

2.3.4 参数传递 73

2.3.5 实例1:DCE远程对象 74

2.3.6 实例2:Java RMI 76

2.4 面向消息的通信 79

2.4.1 通信中的持久性和同步性 79

2.4.2 面向消息的暂时通信 83

2.4.3 面向消息的持久通信 86

2.4.4 示例:IBM MQSeries 91

2.5 面向流的通信 95

2.5.1 为连续媒体提供支持 95

2.5.2 流与服务质量 98

2.5.3 流同步 101

2.6 小结 103

习题 104

3.1.1 线程简介 107

3.1 线程 107

第3章 进程 107

3.1.2 分布式系统中的线程 112

3.2 客户 114

3.2.1 用户界面 114

3.2.2 客户端软件与分布透明性 116

3.3 服务器 117

3.3.1 设计上常见的重要问题 117

3.3.2 对象服务器 120

3.4 代码迁移 125

3.4.1 代码迁移方案 125

3.4.2 迁移与本地资源 128

3.4.3 异构系统中的代码迁移 131

3.4.4 实例:D'Agents 132

3.5 软件代理 136

3.5.1 分布式系统中的软件代理 136

3.5.2 代理技术 138

3.6 小结 140

习题 141

4.1 实体的命名 144

4.1.1 名称、标识符和地址 144

第4章 命名 144

4.1.2 名称解析 148

4.1.3 名称空间的实现 152

4.1.4 示例:域名系统 158

4.1.5 示例:X.500 161

4.2 移动实体的定位 165

4.2.1 实体命名与定位 165

4.2.2 简单方法 167

4.2.3 基于起始位置的方法 169

4.2.4 分层方法 171

4.3 删除无引用的实体 176

4.3.1 无引用对象的问题 177

4.3.2 引用计数 178

4.3.3 引用列表 181

4.3.4 标识不可到达实体 182

4.4 小结 187

习题 188

第5章 同步 190

5.1 时钟同步 190

5.1.1 物理时钟 191

5.1.2 时钟同步算法 194

5.1.3 使用同步时钟 197

5.2 逻辑时钟 198

5.2.1 Lamport时间戳 199

5.2.2 向量时间戳 201

5.3 全局状态 203

5.4 选举算法 206

5.4.1 欺负(Bully)算法 206

5.4.2 环算法 207

5.5 互斥 208

5.5.1 集中式算法 208

5.5.2 分布式算法 209

5.5.3 令牌环算法 211

5.5.4 三个算法的比较 212

5.6 分布式事务 213

5.6.1 事务模型 213

5.6.2 事务的分类 216

5.6.3 实现 218

5.6.4 并发控制 220

5.7 小结 226

习题 227

6.1 简介 229

第6章 一致性和复制 229

6.1.1 复制的目的 230

6.1.2 对象复制 230

6.1.3 作为扩展技术的复制 232

6.2 以数据为中心的一致性模型 233

6.2.1 严格一致性 234

6.2.2 线性化和顺序一致性 236

6.2.3 因果一致性 239

6.2.4 FIFO一致性 240

6.2.5 弱一致性 242

6.2.6 释放一致性 244

6.2.7 入口一致性 245

6.2.8 一致性模型小结 247

6.3 以客户为中心的一致性模型 248

6.3.1 最终一致性 249

6.3.2 单调读 250

6.3.3 单调写 251

6.3.4 写后读 252

6.3.5 读后写 253

6.3.6 实现 254

6.4.1 副本放置 256

6.4 分发协议 256

6.4.2 更新传播 259

6.4.3 epidemic协议 262

6.5 一致性协议 264

6.5.1 基于主备份的协议 264

6.5.2 复制的写协议 267

6.5.3 高速缓存相关性协议 270

6.6 实例 271

6.6.1 Orca 272

6.6.2 因果一致的懒惰复制 276

6.7 小结 279

习题 280

第7章 容错性 283

7.1 容错性简介 283

7.1.1 基本概念 283

7.1.2 典型故障 285

7.1.3 使用冗余来掩盖故障 287

7.2 进程恢复 288

7.2.1 设计问题 288

7.2.3 故障系统的协议 290

7.2.2 故障掩盖和复制 290

7.3 可靠的客户-服务器通信 293

7.3.1 点到点通信 293

7.3.2 出现失败时的RPC语义 293

7.4 可靠的组通信 298

7.4.1 基本的可靠多播方法 298

7.4.2 可靠多播中的可扩展性 299

7.4.3 原子多播 301

7.5 分布式提交 307

7.5.1 两阶段提交 307

7.5.2 三阶段提交 312

7.6 恢复 313

7.6.1 简介 314

7.6.2 检查点 316

7.6.3 消息日志 318

7.7 小结 320

习题 321

第8章 安全性 323

8.1 安全性介绍 323

8.1.1 安全威胁、策略和机制 323

8.1.2 设计问题 328

8.1.3 加密 331

8.2 安全通道 337

8.2.1 身份验证 338

8.2.2 消息完整性和机密性 344

8.2.3 安全组通信 346

8.3 访问控制 349

8.3.1 访问控制中的一般问题 349

8.3.2 防火墙 352

8.3.3 保护移动代码 354

8.4.1 密钥管理 359

8.4 安全管理 359

8.4.2 安全组管理 363

8.4.3 授权管理 364

8.5 实例:KERBEROS 368

8.6 实例:SESAME 370

8.6.1 SESAME组件 370

8.6.2 PAC 372

8.7 实例:电子付费系统 373

8.7.1 电子付费系统 373

8.7.2 电子付费系统中的安全性 375

8.7.3 协议实例 377

8.8 小结 381

习题 382

第9章 基于对象的分布式系统 384

9.1 CORBA 384

9.1.1 CORBA概述 385

9.1.2 通信 390

9.1.3 进程 395

9.1.4 命名 399

9.1.5 同步 402

9.1.6 缓存与复制 403

9.1.7 容错性 404

9.1.8 安全性 406

9.2 分布式组件对象模型(DCOM) 408

9.2.1 DCOM概述 408

9.2.2 通信 413

9.2.3 进程 415

9.2.4 命名 417

9.2.5 同步 420

9.2.6 复制 420

9.2.7 容错性 420

9.2.8 安全性 421

9.3 Globe 423

9.3.1 Globe概述 423

9.3.2 通信 430

9.3.3 进程 430

9.3.4 命名 432

9.3.5 同步 435

9.3.6 复制 435

9.3.7 容错性 437

9.3.8 安全性 438

9.4.1 基本原理 439

9.4 CORBA、DCOM和Globe的比较 439

9.4.2 通信 440

9.4.3 进程 441

9.4.4 命名 441

9.4.5 同步 442

9.4.6 缓存与复制 442

9.4.7 容错性 442

9.4.8 安全性 442

9.5 小结 444

习题 444

10.1 SUN网络文件系统 446

第10章 分布式文件系统 446

10.1.1 NFS概述 447

10.1.2 通信 450

10.1.3 进程 451

10.1.4 命名 452

10.1.5 同步 458

10.1.6 缓存和复制 462

10.1.7 容错性 464

10.1.8 安全性 466

10.2.1 Coda概述 469

10.2 Coda文件系统 469

10.2.2 通信 471

10.2.3 进程 472

10.2.4 命名 473

10.2.5 同步 474

10.2.6 缓存和复制 477

10.2.7 容错性 480

10.2.8 安全性 482

10.3 其他分布式文件系统 484

10.3.1 Plan 9:资源统一为文件 485

10.3.2 xFS:无服务器的文件系统 489

10.3.3 SFS:可扩展的安全性 494

10.4 分布式文件系统的比较 496

10.4.1 设计理念 497

10.4.2 通信 497

10.4.3 进程 497

10.4.4 命名 498

10.4.6 缓存和复制 499

10.4.7 容错性 499

10.4.5 同步 499

10.4.8 安全性 500

10.5 小结 501

习题 501

第11章 基于文档的分布式系统 503

11.1 WWW 503

11.1.1 WWW概述 504

11.1.2 通信 511

11.1.3 进程 515

11.1.4 命名 520

11.1.6 缓存和复制 522

11.1.5 同步 522

11.1.7 容错性 526

11.1.8 安全性 526

1 1.2 Lotus Notes 527

11.2.1 Lotus Notes概述 527

11.2.2 通信 529

11.2.3 进程 530

11.2.4 命名 531

11.2.5 同步 533

11.2.6 复制 533

11.2.8 安全性 535

11.2.7 容错性 535

11.3 WWW和Lotus Notes的比较 538

11.4 小结 542

习题 542

第12章 基于协作的分布式系统 544

12.1 协作模型介绍 544

12.2 TIB/Rendezvous 546

12.2.1 TIB/Rendezvous概述 546

12.2.2 通信 548

12.2.4 命名 551

12.2.3 进程 551

12.2.5 同步 553

12.2.6 缓存和复制 554

12.2.7 容错性 554

12.2.8 安全性 556

12.3 Jini 557

12.3.1 Jini概述 558

12.3.2 通信 560

12.3.3 进程 561

12.3.4 命名 563

12.3.5 同步 565

12.3.6 缓存和复制 567

12.3.7 容错性 567

12.3.8 安全性 567

12.4 TIB/Rendezvous和Jini的比较 568

12.5 小结 571

习题 571

第13章 阅读材料和参考书目 573

13.1 对进一步阅读的建议 573

13.1.1 介绍性和综述性的著作 573

13.1.2 通信 574

13.1.3 进程 575

13.1.4 命名 576

13.1.5 同步 576

13.1.6 一致性与复制 577

13.1.7 容错性 578

13.1.8 安全性 579

13.1.9 面向对象的分布式系统 580

13.1.10 分布式文件系统 581

13.1.11 基于文档的分布式系统 582

13.1.12 基于协作的分布式系统 583

13.2 参考书目列表 583