|
Introduction to Reliable and Secure Distributed Programming
About the book
In modern computing a program is usually distributed among several
processes. The fundamental challenge when developing reliable and
secure distributed programs is to support the cooperation of processes
required to execute a common task, even when some of these processes
fail. Failures may range from crashes to adversarial attacks by
malicious processes.
Cachin, Guerraoui, and Rodrigues present an introductory
description of fundamental distributed programming
abstractions together with algorithms to implement them
in distributed systems, where processes are subject to crashes
and malicious attacks. 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
topic, covering:
- reliable broadcast,
- shared memory,
- consensus, and
- extensions of consensus.
For every topic, many exercises and their solutions enhance
the understanding
This book represents the second edition of the successful
book Introduction to Reliable Distributed Programming,
published first in 2006. The scope has been extended to include
security against malicious actions by non-cooperating processes. This
important domain has become widely known under the name Byzantine
fault-tolerance.
Audience
The book follows an incremental approach and was primarily written
as a textbook for teaching at the
undergraduate or basic graduate level. It introduces the fundamental
elements of distributed computing in an intuitive manner and builds
sophisticated distributed programming abstractions on top of the
elementary ones.
The book can be used in class or for individual study. The
approach presented in the book has been developed by the authors while
teaching this subject at leading universities in Europe and throughout
the globe.
Keywords
Communication Protocols, Distributed Algorithms, Distributed
Programming, Broadcast, Reliable Delivery, Shared Memory, Consensus,
Failures, Byzantine faults, Intrusion-tolerance.
|
|
|