1. Introduction : 4 hrs
1.1 Characteristics
1.2 Design Goals
1.3 Types of Distributed Systems
1.4 Case Study: The World Wide Web
2. Architecture : 4 hrs
2.1 Architectural Styles
2.2 Middleware organization
2.3 System Architecture
2.4 Example Architectures
3. Processes : 6 hrs
3.1 Threads
3.2 Virtualization
3.3 Clients
3.4 Servers
3.5 Code Migration
4. Communication : 5 hrs
4.1 Foundations
4.2 Remote Procedure Call
4.3 Message-Oriented Communication
4.4 Multicast Communication
4.5 Case Study: Java RMI and Message Passing Interface (MN)
5. Naming : 5 hrs
5.1 Name Identifiers, and Addresses
5.2 Structured Naming
5.3 Attribute-based naming
5.4 Case Study: The Global Name Service
5. Coordination : 7 hrs
6.1 Clock Synchronization
6.2 Logical Clocks
6.3 Mutual Exclusion
6.4 Election Algorithm
6.5 Location System
6.6 Distributed Event Matching
6.7 Gossip-based coordination
6. Coordination : 7 hrs
6.1 Clock Synchronization
6.2 Logical Clocks
6.3 Mutual Exclusion
6.4 Election Algorithm
6.5 Location System
6.6 Distributed Event Matching
6.7 Gossip-based coordination
7. Consistency and Replication : 5 hrs
7.1 Introduction
7.2 Data-centric consistency models
7.3 Client-centric consistency models
7.4 Replica management
7.5 Consistency protocols
7.6 Caching and Replication in Web
8. Fault Tolerance : 5 hrs
8.1 Introduction to fault tolerance
8.2 Process resilience
8.3 Reliable client-server communication
8.4 Reliable group communication
8.5 Distributed commit
8.6 Recovery
9. Security : 4 hrs
9.1 Introduction to security
9.2 Secure channels
9.3 Access control
9.4 Secure naming
9.5 Security Management