George Coulouris, Jean Dollimore and Tim Kindberg

Distributed Systems
Concepts and Design

Fourth Edition

HomeReferencesInstructors GuideErrataAdditional materialContents and PrefaceAuthors

This page contains the contents list for the whole book. Use the link above to see the Preface.

New Chapters

You can view outlines for the new chapters in this edition using the links below.

Click the name of one of the new chapters above to see its outline.



Purposes and readership; Organization of the book; References; Changes relative to the third edition; Acknowledgements; Web site

1 Characterization of Distributed Systems

1.1 Introduction

1.2 Examples of distributed systems

The Internet; Intranets; Mobile and ubiquitous computing

1.3 Resource sharing and the Web

The World Wide Web

1.4 Challenges

Heterogeneity; Openness; Security; Scalability; Failure handling; Concurrency; Transparency

1.5 Summary

2 System models

2.1 Introduction

2.2 Architectural models

Software layers; System architectures; Variations; Interfaces and objects; Design requirements for distributed architectures;

2.3 Fundamental models

Interaction model; Failure model; Security model;

2.4 Summary

3 Networking and Internetworking

3.1 Introduction

Networking issues for distributed systems;

3.2 Types of network

3.3 Network principles

Packet transmission; Data streaming; Switching schemes; Protocols; Routing; Congestion control; Internetworking;

3.4 Internet protocols

IP addressing; The IP protocol; IP routing; IP version 6; MobileIP; TCP and UDP; Domain names; Firewalls;

3.5 Case studies: Ethernet, WiFi, Bluetooth and ATM

Ethernet ; IEEE 802.11 (WiFi) wireless LAN ; IEEE 802.15.1 Bluetooth wireless PAN; Asynchronous Transfer Mode networks;

3.6 Summary

4 Interprocess Communication

4.1 Introduction

4.2 The API for the Internet protocols

The characteristics of interprocess communication; Sockets; UDP datagram communication; TCP stream communication;

4.3 External data representation and marshalling

CORBA's Common Data Representation (CDR); Java object serialization; Extensible markup language (XML); Remote object references;

4.4 Client-server communication

4.5 Group communication

IP multicast - an implementation of group communication; Reliability and ordering of multicast;

4.6 Case study: interprocess communication in UNIX

Datagram communication; Stream communication;

4.7 Summary

5 Distributed Objects and Remote Invocation

5.1 Introduction


5.2 Communication between distributed objects

The object model; Distributed objects; The distributed object model; Design Issues for RMI; Implementation of RMI; Distributed garbage collection;

5.3 Remote procedure call

Case study: Sun RPC;

5.4 Events and notifications

The participants in distributed event notification; Case study: Jini distributed event specification;

5.5 Case study: Java RMI

Building client and server programs; Design and implementation of Java RMI;

5.6 Summary

6 Operating System support

6.1 Introduction

6.2 The operating system layer

6.3 Protection

6.4 Processes and threads

Address spaces; Creation of a new process; Threads;

6.5 Communication and invocation

Invocation performance; Asynchronous operation;

6.6 Operating system architecture

6.7 Summary

7 Security

7.1 Introduction

Threats and attacks; Securing electronic transactions; Designing secure systems;

7.2 Overview of security techniques

Cryptography; Uses of cryptography; Certificates; Access control; Credentials; Firewalls;

7.3 Cryptographic algorithms

Secret-key (symmetric) algorithms; Public-key (asymmetric) algorithms; Hybrid cryptographic protocols;

7.4 Digital signatures

Digital signatures with public keys; Digital signatures with secret keys - MACs; Secure digest functions; Certificate standards and certificate authorities;

7.5 Cryptography pragmatics

Performance of cryptographic algorithms; Applications of cryptography and political obstacles;

7.6 Case studies: Needham-Schroeder, Kerberos, TLS, 802.11 WiFi

The Needham-Schroeder authentication protocol; Kerberos; Securing electronic transactions with secure sockets; Weaknesses in the IEEE 802.11 WiFi security design ;

7.7 Summary

8 Distributed File Systems

8.1 Introduction

Characteristics of file systems; Distributed file system requirements; Case studies;

8.2 File service architecture

8.3 Case study: Sun Network File System

8.4 Case study: The Andrew File System

Implementation; Cache consistency; Other aspects;

8.5 Enhancements and further developments

8.6 Summary

9 Name Services

9.1 Introduction

Names, addresses and other attributes;

9.2 Name services and the Domain Name System

Name spaces; Name resolution; The Domain Name System;

9.3 Directory services

9.4 Case study of the Global Name Service

9.5 Case study of the X.500 Directory Service

9.6 Summary

10 Peer-to-Peer Systems

10.1 Introduction

10.2 Napster and its legacy

10.3 Peer-to-peer middleware

10.4 Routing overlays

10.5 Overlay case studies: Pastry, Tapestry

Pastry; Tapestry;

10.6 Application case studies: Squirrel, OceanStore, Ivy

Squirrel web cache; OceanStore file store; Ivy file system;

10.7 Summary

11 Time and Global States

11.1 Introduction

11.2 Clocks, events and process states

11.3 Synchronizing physical clocks

Synchronization in a synchronous system; Cristian's method for synchronizing clocks; The Berkeley algorithm;The Network Time Protocol;

11.4 Logical time and logical clocks

11.5 Global states

Global states and consistent cuts; Global state predicates, stability, safety and liveness; The `snapshot' algorithm of Chandy and Lamport;

11.6 Distributed debugging

Observing consistent global states; Evaluating possibly f; Evaluating definitely f; Evaluating possibly f and definitely f in synchronous systems;

11.7 Summary

12 Coordination and Agreement

12.1 Introduction

Failure assumptions and failure detectors;

12.2 Distributed mutual exclusion

Algorithms for mutual exclusion;

12.3 Elections

12.4 Multicast communication

Basic multicast; Reliable multicast; Ordered multicast;

12.5 Consensus and related problems

System model and problem definitions; Consensus in a synchronous system; The byzantine generals problem in a synchronous system; Impossibility in asynchronous systems;

12.6 Summary

13 Transactions and Concurrency Control

13.1 Introduction

Simple synchronization (without transactions); Failure model for transactions;

13.2 Transactions

Concurrency control; Recoverability from aborts;

13.3 Nested transactions

13.4 Locks

Deadlocks; Increasing concurrency in locking schemes;

13.5 Optimistic concurrency control

13.6 Timestamp ordering

13.7 Comparison of methods for concurrency control

13.8 Summary

14 Distributed Transactions

14.1 Introduction

14.2 Flat and nested distributed transactions

The coordinator of a distributed transaction;

14.3 Atomic commit protocols

The two-phase commit protocol; Two-phase commit protocol for nested transactions;

14.4 Concurrency control in distributed transactions

Locking; Timestamp ordering concurrency control; Optimistic concurrency control;

14.5 Distributed deadlocks

14.6 Transaction recovery

Logging; Shadow versions; The need for transaction status and intentions list entries in a recovery file; Recovery of the two-phase commit protocol;

14.7 Summary

15 Replication

15.1 Introduction

15.2 System model and group communication

System model; Group communication;

15.3 Fault-tolerant services

Passive (primary-backup) replication; Active replication;

15.4 Case studies of highly available services: the gossip architecture, Bayou and Coda

The gossip architecture; Bayou and the operational transformation approach; The Coda file system;

15.5 Transactions with replicated data

Architectures for replicated transactions; Available copies replication; Network partitions; Available copies with validation; Quorum consensus methods; Virtual partition algorithm;

15.6 Summary

16 Mobile and Ubiquitous Computing

16.1 Introduction

Volatile systems;

16.2 Association

Discovery services; Physical association; Summary and perspective;

16.3 Interoperation

Data-oriented programming for volatile systems; Indirect associations and soft state; Summary and perspective;

16.4 Sensing and context-awareness

Sensors; Sensing architectures; Location-sensing; Summary and perspective;

16.5 Security and privacy

Background; Some solutions; Summary and perspective;

16.6 Adaptation

Context-aware adaptation of content; Adapting to changing system resources; Summary and perspective;

16.7 Case study of Cooltown

Web presences; Physical hyperlinks; Interoperation and the `eSquirt' protocol; Summary and perspective;

16.8 Summary

17 Distributed Multimedia Systems

17.1 Introduction

17.2 Characteristics of multimedia data

17.3 Quality of service management

Quality of service negotiation; Admission control;

17.4 Resource management

Resource scheduling;

17.5 Stream adaptation

Scaling; Filtering

17.6 Case study: the Tiger video file server

17.7 Summary

18 Distributed Shared Memory

18.1 Introduction

Message passing versus DSM; Implementation approaches to DSM

18.2 Design and implementation issues

Structure; Synchronization model; Consistency model; Update options; Granularity; Thrashing

18.3 Sequential consistency and Ivy case study

The system model; Write invalidation; Invalidation protocols; A dynamic distributed manager algorithm; Thrashing;

18.4 Release consistency and Munin case study

Memory accesses; Release consistency; Munin;

18.5 Other consistency models

18.6 Summary

19 Web services

19.1 Introduction

19.2 Web services

SOAP; A comparison of web services with the distributed object model; The use of SOAP with Java; Comparison of web services with CORBA;

19.3 Service descriptions and IDL for web services

19.4 A directory service for use with web services

19.5 XML security

19.6 Coordination of web services

19.7 Case study: the Grid

The World-Wide Telescope - a grid application; The characteristics of a family of data-intensive scientific applications; Open grid services architecture; Some examples of grid applications; The Globus toolkit;

19.8 Summary

20 CORBA Case Study

20.1 Introduction


CORBA client and server example; The architecture of CORBA; CORBA Interface Definition Language; CORBA remote object references; CORBA language mappings; Integration of CORBA and Web Services;

20.3 CORBA services

CORBA Naming Service; CORBA Event Service; CORBA Notification Service; CORBA Security Service;

20.4 Summary