1. Fundamentals of Distributed Systems
States, events, event ordering, system models, failures, and failure detectors.
2. Software Replication
Active, passive, and hybrid replication of software.
3. Group Communication
Properties of different multicasts, causal atomic multicast, and introduction to virtual synchrony.
4. Global States and Checkpointing
Snapshot algorithms, coordinated checkpoint and rollback, and message logging approaches.
5. Software Diversity
Operating system, compiler, and algorithmic diversity. Security and robustness through software diversity.
6. Secure Storage
Byzantine quorum systems; secret sharing techniques, confidentiality and integrity vs. consistency
7. Distributed Object Systems
Introduction to JAVA RMI, CORBA, and .NET; Fault-Tolerant CORBA.
8. Distributed Embedded Systems
Algorithms and systems for aerospace, automotive, and manufacturing applications. Mobile computing.
9. Clustering for Dependability
Availability clusters, resource sharing, failover, network failures, and the split brain problem.