Colorado State University Computer Science Department

CS 581
Distributed Systems
Coming in Fall 2001

Section 001 ID -- 271793
Section L01 ID -- 277642

WebCT Goals Prerequisites
Instructor Information Course Materials Workload and grading policy


Details of this course are available on WebCT. All course notes and assignments will be available only through WebCT. A Holly or Lamar account is needed to access WebCT.

Goals and Topics

CS581 is a graduate course in distributed system design and analysis. Students will learn how to build distributed component-based systems that are integrated across the internet. Students will be introduced to design principles underlying distributed systems. This will be a programming-intensive course and will have a project component.

The following topics will be covered in the course: (Subject to change)

  1. Characterization of Distributed Systems.
    1. Introduction.
    2. Examples of Distributed Systems.
  2. System Models.
    1. Architectural Models.
    2. Fundamental Models.
  3. Distributed Objects and Remote Invocation.
    1. Communication between Distributed Objects.
    2. Remote Procedure Calling.
    3. Events and Notifications.
    4. Java RMI Case Study.
  4. JavaBeans
  5. Enterprise Java Beans
  6. Jini
  7. CORBA Case Study
    1. CORBA.
    2. Objects and the internet: IIOP, ORBS, brokers, Web integration, thin clients
    3. CORBA Services.
      1. Name Services.
      2. Trader Services.
      3. Event Services.
  8. Design patterns for Concurrent and Networked objects
    1. Service access and configuration patterns
    2. Event handling patterns
    3. Synchronization patterns
    4. Concurrency patterns
  9. Other topics
    1. Techniques for component-based development
    2. Issues in certification of distributed component-based software
    3. Fault tolerance (time permitting)
    4. Performance (time permitting)


  1. Operating Systems (CS451) or equivalent course
  2. and Object-Oriented Design (CS414) or equivalent course
  3. or Written consent of instructor

Instructor Information

Sudipto Ghosh
US Mail: Computer Science Department, Colorado State University, Fort Collins, CO 80523
Phone: (970) 491-4608
Fax: (970) 491-2466
Office Location: 224 University Services Center

Meeting times:
Lectures: MWF 10:00-10:50 Clark C361
Office hours: MWF 2:30-3:30 UNVSC 224, or by appointment

Course Materials

  • Required Text:
    Distributed Systems: Concepts and Design by George Coulouris, Jean Dollimore, Tim Kindberg, Addison Wesley Longman, ISBN: 0-201-61918-0 Copyright 2001, 3rd edition.

  • Supplementary Texts:
    1. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects, Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, John Wiley & Sons, 2nd edition Vol 2 (September 25, 2000), ISBN 0471606952.
    2. Progressing to Distributed Multi-Processing 1/e,, Harinder S. Singh, Harry Singh, Prentice Hall PTR (ECS Professional), 1999, ISBN 0-13-095683-X.
    3. Concurrent Programming in Java: Design Principles and Patterns, Doug Lea, 2nd Edition, Addison-Wesley, Copyright 2000, ISBN 0-201-31009-0.
    4. C++ Programming with CORBA, Andreas Vogel, Bhaskar Vasudevan, Maira Benjamin, Ted Villalba, 1 edition (February 11, 1999), John Wiley and Sons, Copyright 1999, ISBN 0471283061.
    5. Programming with Enterprise JavaBeans, JTS, and OTS: Building Distributed Transactions with Java and C++ , Andreas Vogel, Madhavan Rangarao, John Wiley and Sons, ISBN 0471319724.

  • Papers: Selected from journals and relevant conferences

    Workload and Grading Policy

    1. 4 individual programming assignments during August --- October
    2. Research project (groups of 2) - during November. Several topics will be suggested. Students have the option of suggesting topics as well. A demo and project report are required at the end of the semester.
      1. Implement a distributed component-based system. OR
      2. Do a literature survey and implement a system. OR
      3. Do a literature survey and repeat experiments. OR
      4. Compare performance or qualities of existing implementations.
    3. Read assigned papers.
    4. 1 midterm
    5. 1 final

    Last modified: August 24, 2001.