跳转至

前言

在过去的几年,我们见证了分布式系统惊人的增长。硬件成本的降低,通信技术的进步,因特网爆炸式增长以及对网络依赖程度不断提高的大量应用包括社交通信到金融交易都促进了这种增长。在嵌入式系统、纳米技术和无线通信的突破,为传感器网络和可穿戴计算机等应用开辟了新的前沿研究领域。云计算的快速发展以及大数据日益增加的重要性改变了分布式计算的格局。

分布式计算中的许多应用都以一些列核心子问题为中心。对这些子问题的理解需要有底层理论和算法问题的背景知识。这本书对基础主题和它们之间的关系做了全面介绍。语言尽量保持不混淆——清晰优先于形式。第二版修改了许多第一版中出现的问题,增加了新的主题,并且升级了内容。21 个章节被分解为五个部分:

  • 第一部分(第1章和第2章)涉及包括各种云计算平台的背景知识。

  • 第二部分(第3章到第6章)介绍了基本主题涉及系统模型,正确性标准和证明。

  • 第三部分(第7章到第11章)介绍了分布式系统的核心范式——包括逻辑时钟,分布式快照和调试,死锁和中止条件,选举和分布式图算法。

  • 第四部分(第12章到第17章)讨论了各种应用的故障和容错技术——涵盖了共识、事务、组通信、复制数据管理和自我稳定。组通信和共识已经包含在这个部分中,因为他们是容错设计的两个主要受益者。

  • 第五部分(第18章到第21章)解决了一些现实问题——包括分布式离散事件模拟、安全性、传感器网络以及社交和 P2P 网络。每一章有一系列挑战读者的练习(标记为*的练习更有挑战性)。其中少数是编程练习。一些练习鼓励读者了解外部材料。

本书适用于高年级本科或一年级研究生水平的一学期课程。大约75%的材料可以在一个学期内完成。因此,可以通过几种不同的方式挑选和打包章节。使用第1章到第17章可以提供面向理论的课程。为了更实用的风格,请使用第1章和第2章,第3章到第16章中选择的主题,以及第18章。从复制数据管理,传感器网络,群组通信,离散事件模拟以及社交或点对点网络中选择一个为期一学期的项目作为补充。其他材料可从作者的网站获得:http://homepage.cs.uiowa.edu/~ghosh/thebook.html

这是一个免责声明:本书不是关于编程分布式系统。第2章只是我们希望每个人都知道的高级描述,但它不是编程的介绍。如果编程是目标,那么我鼓励读者寻找其他资源。关于这个主题有几本好书。

Sukumar Ghosh

爱荷华州爱荷华市

译者说明:

  1. 第一阶段机器翻译(信),第二阶段人工翻译(达),第三阶段(雅)。
  2. 原文的代码部分部分全部用Go语言描述。相比原书增加部分代码。