EECS-345 - Detailed Schedule

We will cover introductory material on each of the topics during the first 50' of every lecture. The last 30' will be dedicated to discussing a related paper to help you better understand the main issues.

  1. (Jan. 08) Welcome to Distributed Systems
  2. (Jan. 10) Introduction: Defining distributed systems and their goals, hardware and software concepts, the client-server model and architecture, modern architectures for distributed systems.

  3. (Jan. 15) Architectures: How to instantiate and place the software component of a distributed system on real machines, the client-server model and architecture, peer-to-peer, etc.

  4. (Jan. 22 & 29) Processes: Clients, servers, code migration and software agents.

  5. (Jan. 24) Wide-area distributed systems and PlanetLab: Issues with wide-area distributed systems and brief introduction to PlanetLab.

  6. (Jan. 31) Communication: Basics of communication, remote procedure calls, remote object invocation, message-oriented and stream-oriented communication.

  7. (Feb. 5 - Feb. 7) Naming: Naming and locating entities, removing unreferenced entities.

  8. (Feb. 12 & 14) Synchronization: Synchronization in distributed systems, logical time, global state, elections and mutual exclusion.

  9. (Feb. 19 & 21) Consistency and replication: Data replication, scalability, and consistency.

  10. (Feb. 26 & 28) Fault tolerance: Making distributed systems fault tolerant, reliable and resilient multicasting.

  11. (Mar. 4) Security: Secure communication and authorization in distributed systems.

  12. (Mar. 6 & 11) Review of major distributed systems paradigms: Distributed object systems, Distributed file systems, Distributed document-based systems, and Distributed coordination-based systems.

  13. (Mar. 13) Project presentations

Fabián E. Bustamante
Last modified: Thu Aug 8 16:09:19 CDT 2006