GEORGE MASON UNIVERSITY
DEPARTMENT OF COMPUTER SCIENCE

CS 675 - Distributed Systems

Spring 2011

Wed 4:30 - 7:10  pm,  AB 2026

Prof. Sanjeev Setia
setia at cs dot gmu dot edu
703-993-4098

Description

This course focuses on basic concepts underlying the design, implementation, and management of distributed systems. It covers fundamental topics in distributed systems, including but not limited to distributed system architectures, inter-process communication, distributed middleware, synchronization and coordination,  distributed agreement, concurrency control, replication, and fault tolerance.

Prerequisites

CS 571 (Operating Systems).  NOTE: Prerequisites will be enforced strictly.

Readings

The textbook for this class is  Andrew Tannenbaum and Maarten van Steen, ``Distributed Systems: Paradigms and Principles'', Prentice-Hall, 2nd edition, 2007.  Additionally, the following books may be used as reference texts.

  1.  G. Coulouris, J. Dollimore, T. Kindberg, “Distributed Systems: Concepts and Design,” 4th Edition, Addison-Wesley, 2005.
  2.   K. Birman, "Reliable Distributed Systems: Technologies, Web Services and Applications,"  Springer Verlag, 2005

Course Outline

The following topics will be covered (not necessarily in the order below)
  1. Introduction
  2. Distributed System Architectures
  3. Communication in Distributed Systems
  4. Distributed Middleware
  5. Client/Server Design Issues
  6. Virtualization & Code Migration
  7. Naming
  8. Distributed Synchronization & Coordination
  9. Consistency & Replication in Distributed Systems
  10. Fault Tolerance
  11. P2P Systems
  12. Cloud Computing

Grading

There will be two programming projects. The first will involve the development of a distributed application using various middleware technologies, CORBA/RMI, etc.  The second project will involve using the advanced concepts studied in this course to extend the application developed in the first project (for example, for creating a fault tolerant version of the application). The software required for these projects is available on the computers in the IT&E Lab.

In addition, there will be two to three homework assignments.

50% of the course grade will be based on these programming assignments and homework. In addition, there will be a mid-term exam in March worth 25% of the grade. The final exam will account for the remaining 25% of the grade.

Exam Schedule

Mid-term: mid to late March (date to be announced later)   Final exam:  Wed, May 11 (4:30 - 7:15 pm)

Academic Integrity

You are expected to abide by the University's honor code and the CS Department's Honor Code and Academic Integrity Policies during the semester, i.e., collaboration between students in different groups on an assignment is unacceptable. Any violation of the honor code will result in referral to the honor council with a recommendation that the student be awarded an F for the class.

NOTE: I will be using MOSS to detect plagiarism in the programming assignments.

Office Hours

Office hours will be on MW 3 - 4 pm in my office (Room 5305, Engineering Building), or by appointment.

Class Home Page

All handouts and other course material will be available at URL http://www.cs.gmu.edu/~setia/cs675/ or on the Blackboard page for the class.