In modern computing a program is usually distributed among several processes. The fundamental challenge when developing reliable distributed programs is to support the cooperation of processes required to execute a common task, even when some of these processes fail.
Guerraoui and Rodrigues present an introductory description of fundamental reliable distributed programming abstractions as well as algorithms to implement these abstractions. The authors follow an incremental approach by first introducing basic abstractions in simple distributed environments, before moving to more sophisticated abstractions and more challenging environments. Each core chapter is devoted to one specific class of abstractions, covering reliable delivery, shared memory, consensus and various forms of agreement.
This textbook comes with a companion set of running examples implemented in Java. These can be used by students to get a better understanding of how reliable distributed programming abstractions can be implemented and used in practice. Combined, the chapters deliver a full course on reliable distributed programming. The book can also be used as a complete reference on the basic elements required to build reliable distributed applications.
Introduces fundamental reliable distributed programming abstractions, and offers algorithms to implement these abstractions
Incremental approach explores basic abstractions before moving to more sophisticated concepts
The book functions as a complete practical reference to the basics of reliable distributed programming applications
Includes a companion set of running examples implemented in Java
The fundamental challenge to reliable distributed programs is supporting the cooperation of processes required to execute a common task, even when some of these processes fail. This book offers fundamental reliable distributed programming abstractions as well as algorithms to implement these abstractions. The authors introduce basic abstractions in simple distributed environments, before moving to more sophisticated abstractions and more challenging environments. Each chapter is devoted to one specific class of abstractions, covering reliable delivery, shared memory, consensus and various forms of agreement. This textbook comes with a companion set of running examples implemented in Java. These can be used by students to get a better understanding of how reliable distributed programming abstractions can be implemented and used in practice.
Rachid Guerraoui
Algorithms Broadcast Communication Protocols Distributed Algorithms Distributed Programming Java Reliable Delivery Shared Memory algorithm programming
From the reviews:
"This book deals with distributed systems. But unlike all other books in this area it treats the subject from a modular, specification viewpoint and not from the classical algorithmic view point. … This book is very remarkable, because it marks a change in attitude within computer science." (Jan Friso Groote, Zentralblatt MATH, Vol. 1095 (21), 2006)