CS 707 Distributed Software Systems

Spring 2007


Prof. Elizabeth White

Office: S&T II, Rm. 429

Phone: 703-993-1586

Email: white@cs.gmu.edu Put CS707 in the subject line


Course Content


This class focuses on concepts that arise in the design and implementation of distributed software applications. Issues include making distributed applications secure, reliable, and scalable will be discussed. Programming assignments will involve middleware technologies such as TCP/IP sockets and RMI.


The following topics will be covered: (note: this list does not represent the order in which these topics will be covered)

  1. Distributed systems, computer networks, concurrent programming (Review)
  2. Distributed Systems Concepts
    1. The Client/Server model
    2. Naming
    3. Coordination and Synchronization
    4. Distributed Architectures
    5. Consistency & Replication
    6. Fault Tolerance
    7. Peer to Peer Systems
  3. Middleware technologies
    1. TCP/IP Sockets
    2. RPC/RMI/CORBA/Web Services
    3. Message-oriented Middleware

Pre-reqs: CS 571, CS 706 and a strong knowledge of C, C++ and/or Java. If you do not have the pre-requisites, you must have my permission to enroll.



The textbook for this class is
Andrew Tannenbaum and Maarten van Steen, ``Distributed Systems: Paradigms and Principles'', Prentice-Hall, Second Edition, 2007.


There will be additional readings required and several recommended texts; class notes will also be provided as needed.

Class Web Page


Materials for this class will be kept on the class web page:


You should check this webpage periodically for announcements.

Grading Policies


Honor Code


You are expected to abide by the honor code. Programming assignments and exams are individual efforts. Information on the university honor code can be found at: