D455 - Distributed Computing Systems
Outline

D455 Details | Outline | Homeworks/Projects | Bibliography | Exams | Reading List | Student Schedule

REQUIRED TEXTBOOK:
A.S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms, Prentice-Hall, 2002. See bibliography for references.

PREREQUISITES: CS 343 or ECE 361 or equivalent

WORKLOAD and EVALUATION:

(20%)
Two Homework Assignments

(20%)
Programming Project
Default: a programming assignment for implementing Remote Procedure Calls (RPC) Other options: a number of other suggested assignments using TCP/IP Sockets, HTTP, or SOAP will be given. You may also opt out by choosing a project of your own but you should contact me about this in the first two weeks of class.

(30%)
Midterm

(20%)
Presentation of some paper(s) and written summary of it.
These presentations will take place in the last two weeks of the course.
(each presentation will last 30 minutes)

(10%)
Class participation.
Students are expected to read the papers covered in the last two weeks of class and participate in the discussions following the presentations. Students should also submit two paragraph write-ups about the pros and cons of the papers discussed. (you don't need to do or all papers - a majority of the papers will be sufficient)

OBJECTIVES:

The main objective of this course is to study the fundamentals of distributed computing. It focuses on the layer of software that needs to be built on top of computer networks to enable the development of distributed applications. The material will be presented in the following modules:

Module 0 - Distributed computing systems, their characteristics, and desired Functionality

Module 1 - Distributed computer system models and architectures.

Module 2 - Overview of computer networks

Module 3 - TCP/IP socket programming

Module 4 - Distributed objects and remote object invocation.

Module 5 - Distributed naming and event notification systems.

Module 6 - Synchronization

clock synchronization

global state and election algorithms

transactions

Module 7 - Replication.

Module 8 - Fault tolerance

Student presentations will cover material on distributed document systems (the Web), Peer-to-Peer Systems and other possible selected topics such as Web services.