No picture
 
Home
 
About >
Content >
Authors >
 
Buy >
Teaching >
Hands-on >
Errata >
 
Reviews >
Links >
 
Contact >
 
 
 
 

Introduction to Reliable and Secure Distributed Programming

Content

The book is structured into six chapters, grouped in two parts.

Part I

  • Chapter 1 motivates the need for distributed programming abstractions by discussing various applications that typically make use of such abstractions.
  • Chapter 2 presents different kinds of assumptions about the underlying distributed environment. It introduces the system models used throughout the other chapters.

Part II

  • Chapter 3 introduces communication abstractions for broadcasting messages to a group of processes, which offer diverse reliability guarantees for delivering messages to the processes.
  • Chapter 4 discusses shared memory, which models distributed storage objects, accessed by read and write operations. These could be files in a distributed storage system or registers in the memory of a multi-processor computer.
  • Chapter 5 addresses the consensus abstraction, through which a set of processes can decide on a common value. They must reach the same decision despite faulty processes, which may have crashed or may even actively try to prevent the others from reaching a common decision.
  • Chapter 6 considers variants of consensus, which are obtained by extending or modifying the consensus abstraction according to the needs of important applications. This includes total-order broadcast, terminating reliable broadcast, (non-blocking) atomic commitment, group membership, and view-synchronous communication.

Download the complete preface and table of content (© Springer Verlag 2011) PDF

 

Table of contents

1 Introduction
1.1 Motivation
1.2 Distributed Programming Abstractions
1.3 The End-to-End Argument
1.4 Software Components
1.5 Classes of Algorithms
1.6 Chapter Notes

2 Basic Abstractions
2.1 Distributed Computation
2.2 Abstracting Processes
2.3 Cryptographic Abstractions
2.4 Abstracting Communication
2.5 Timing Assumptions
2.6 Abstracting Time
2.7 Distributed-System Models
2.8 Exercises
2.9 Solutions
2.10 Chapter Notes

3 Reliable Broadcast
3.1 Motivation
3.2 Best-Effort Broadcast
3.3 Regular Reliable Broadcast
3.4 Uniform Reliable Broadcast
3.5 Stubborn Broadcast
3.6 Logged Best-Effort Broadcast
3.7 Logged Uniform Reliable Broadcast
3.8 Probabilistic Broadcast
3.9 FIFO and Causal Broadcast
3.10 Byzantine Consistent Broadcast
3.11 Byzantine Reliable Broadcast
3.12 Byzantine Broadcast Channels
3.13 Exercises
3.14 Solutions
3.15 Chapter Notes

4 Shared Memory
4.1 Introduction
4.2 (1, N) Regular Register
4.3 (1, N) Atomic Register
4.4 (N, N) Atomic Register
4.5 (1, N) Logged Regular Register
4.6 (1, N) Byzantine Safe Register
4.7 (1, N) Byzantine Regular Register
4.8 (1, N) Byzantine Atomic Register
4.9 Exercises
4.10 Solutions
4.11 Chapter Notes

5 Consensus
5.1 Regular Consensus
5.2 Uniform Consensus
5.3 Uniform Consensus in the Fail-Noisy Model
5.4 Logged Consensus
5.5 Randomized Consensus
5.6 Byzantine Consensus
5.7 Byzantine Randomized Consensus
5.8 Exercises
5.9 Solutions
5.10 Chapter Notes

6 Consensus Variants
6.1 Total-Order Broadcast
6.2 Byzantine Total-Order Broadcast
6.3 Terminating Reliable Broadcast
6.4 Fast Consensus
6.5 Fast Byzantine Consensus
6.6 Nonblocking Atomic Commit
6.7 Group Membership
6.8 View-Synchronous Communication
6.9 Exercises
6.10 Solutions
6.11 Chapter Notes

7 Concluding Remarks
7.1 Implementation in Appia
7.2 Further Implementations
7.3 Further Reading

Download the complete preface and table of content (© Springer Verlag 2011) PDF