Topics to be Covered in this Course

  1. Introduction and Review
    1. Definitions
    2. Hardware concepts
    3. Software concepts
    4. The client-server model
  2. Communication
    1. Layered protocols
    2. Remote procedure call
    3. Remote object invocations
    4. Message-oriented communication
    5. Stream-oriented communication
  3. Processes
    1. Threads
    2. Clients
    3. Servers
    4. Code migration
    5. Software agents
  4. Naming
    1. Naming entities
    2. Locating mobile entities
    3. Removing unreferenced entities
  5. Synchronization
    1. Clock synchronization
    2. Logical clocks
    3. Global state
    4. Election algorithms
    5. Mutual exclusion
    6. Distributed Transactions
  6. Consistency and Replication
    1. Distribution protocols
    2. Consistency protocols
  7. Fault Tolerance
    1. Introduction to fault tolerance
    2. Process resilience
    3. Distributed commit
    4. Recovery
  8. Security
    1. Introduction to security
    2. Secure channels
    3. Access Control
    4. Security Management
  9. Distributed Object-Based Systems
    1. Some case studies
  10. Distributed File Systems
    1. Some case studies