第二版的改版背景#

分散式系統(distributed systems)是電腦科學中變動快速的領域。自本書第一版以來,同儕運算(peer-to-peer computing)與感測器網路(sensor networks)等新主題相繼出現,Web 服務與 Web 應用等主題也已大幅成熟——這些變化促成了本次的重大改版。

相較於第一版,第二版的主要差異如下:

  • 新增獨立的「架構」一章:反映近年在分散式系統組織方式上的進展。
  • 大幅增加去中心化系統的內容:特別是同儕運算,除基本技術外,也涵蓋其應用——檔案分享、資訊散播、內容遞送網路(Content Delivery Network, CDN)與發布/訂閱(publish/subscribe)系統。
  • 全書新增多項主題:感測器網路、虛擬化(virtualization)、伺服器叢集(server cluster)、網格運算(Grid computing),並特別關注分散式系統的自我管理(self-management)——隨著系統規模持續擴大,這一主題日益重要。
  • 內容現代化:一致性與複寫改聚焦於更適合現代分散式系統的一致性模型,而非原先為高效能分散式運算量身打造的模型;同時新增現代分散式演算法,包括基於 GPS 的時鐘同步與定位演算法。

雖然不尋常,但第二版的總頁數反而減少了。這部分來自捨棄分散式垃圾回收、電子支付協定等主題,也來自重新組織最後四章。

本書結構#

全書與第一版相同,分為兩大部分:

  • 原理(Principles):第 2–9 章,討論分散式系統的基本原理。
  • 範式(Paradigms):第 10–13 章,討論開發分散式應用的整體取徑。

與第一版不同,範式章節不再逐一討論完整的案例研究(case study),而是每個原理都透過一個代表性案例來解說——例如物件呼叫(object invocation)就作為通訊原理,放在第 10 章物件式分散式系統中討論。這種做法讓內容更精煉,也更易於閱讀與學習。

本書持續大量取材自實務來說明分散式系統:WebSphere MQ、DNS、GPS、Apache、CORBA、Ice、NFS、Akamai、TIB/Rendezvous、Jini 等真實系統的各個面向貫穿全書。這些例子展現了理論與實務之間的那條細線,正是分散式系統如此迷人的原因。

致謝

作者感謝 D. Robert Adams、Arno Bakker、Coskun Bayrak、Jacques Chassin de Kergommeaux、Randy Chow、Michel Chaudron、Puneet Singh Chawla、Fabio Costa、Cong Du、Dick Epema、Kevin Fenwick、Chandana Gamage、Ali Ghodsi、Giorgio Ingargiola、Mark Jelasity、Ahmed Kamel、Gregory Kapfhammer、Jeroen Ketema、Onno Kubbe、Patricia Lago、Steve MacDonald、Michael J. McCarthy、M. Tamer Ozsu、Guillaume Pierre、Avi Shahar、Swaminathan Sivasubramanian、Chintan Shah、Ruud Stegers、Paul Tymann、Craig E. Wills、Reuven Yagel、Dakai Zhu 閱讀部分書稿、協助找出前一版的錯誤並提供寶貴意見。

兩位作者——塔能鮑姆(Andrew S. Tanenbaum)與范斯汀(Maarten van Steen)——也分別感謝家人在寫作期間的支持與包容。