loading...
March 2005 (Vol. 6, No. 3)
1541-4922/05/$25.00 © 2005 IEEE

Published by the IEEE Computer Society
Mastering Distributed Computing
Haoyang Che , Institute of Software, the Chinese Academy of Sciences
  Article Contents  
  Structure and content  
  Evaluation  
  Conclusion  
Download Citation
   
Download Content
 
PDFs Require Adobe Acrobat
 

    Distributed Computing: Fundamentals, Simulations, and Advanced Topics, 2nd ed.

    By Hagit Attiya and Jennifer Welch

    432 pages

    US$89.95

    John Wiley and Sons, 2004

    ISBN: 0-471-45324-2

In recent years, diversified distributed computing paradigms have grown rapidly, including cluster, peer-to-peer, Grid, Web Services, Service-Oriented Architecture, and many others. Distributed Computing: Fundamentals, Simulations, and Advanced Topics thoroughly introduces distributed computing's mathematical foundations and covers the basic theory's main elements. Exploring the principles behind different theoretical models, the authors take readers through these notoriously difficult subjects and ably demystify puzzling buzzwords that other authors use without specifically explaining.
Structure and content
Hagit Attiya and Jennifer Welch wrote the first edition of this title for McGraw-Hill. This second edition adds material on: failure detectors and applications for solving consensus in asynchronous systems, fast mutual exclusion, practical clock synchronization, and the processor lower bound for simulating shared memory with message passing. The authors have corrected some errors and improved the presentation.
The three-part book presents up-to-date results in a precise, detailed, and accessible manner. Part 1 uses six chapters to introduce the basic communication and timing models, along with other major themes, in the context of several canonical problems. It emphasizes different models' similarities and inherent discrepancies. Part 2's seven chapters show how to provide powerful simulations that aid in developing correct distributed algorithms. These simulations include message broadcasts, shared objects with strong semantics, synchrony, less destructive faults, and fault-tolerant clocks. Part 3 comprises the last four chapters, which cover advanced and timely research topics. Attiya and Welch explore in more detail some issues they raised earlier, present results that use more difficult mathematical analyses, and give a taste of other areas in the field.
Evaluation
With its teaching style, the book can serve as a comprehensive textbook for graduate and undergraduate students with basic mathematical backgrounds. Technical staff whose major subject area is distributed computing will profit from reading the book as well. In short, I highly recommend adding the book to your arsenal if you're preparing to study or research distributed computing.
The medium-sized book is well organized and fully distills the essence of theoretical paradigms to distributed systems. Using many accompanying figures and examples, the authors strike a good balance between details and basic principles. However, I found a few minor errors and imperfections in the source code sampler and proofs, and the authors omitted some important topics. Even so, they successfully provide a coherent view of common themes and basic techniques.
Conclusion
All in all, the book takes you behind the scenes and makes complex distributed computing issues easy to understand. However, it will give you abstract knowledge, not practical skills. If you want to learn about practical distributed programming in a certain language, you should look elsewhere. Qusay Mahmoud's Distributed Programming With Java (Manning, 1999) or Parallel and Distributed Programming Using C++ by Cameron Hughes and Tracey Hughes (Addison-Wesley, 2003) might be more appropriate for you.
Haoyang Che is a PhD student at the Institute of Software, the Chinese Academy of Sciences. He also works with the Sinosoft Group. Contact him at chehy@hotmail.com.