Notice: For the latest information and guidance on Purdue's response to COVID-19 please visit: https://coronavirus.purdue.edu/students

Distributed Systems

CS50500

Credit Hours:

3

Learning Objective:

This course is an introduction to distributed systems. The lectures will cover fundamental concepts in distributed systems showing how they are applied when building reliable distributed systems and services.

Description:

Foundations for building reliable distributed systems, including failure and system models, and basic communication and agreement problems; crash failures, recovery, partition, Byzantine failures; asynchronous systems, failure detectors, communication channels, wireless and sensor networks; software clocks, causality, and cuts. Examples of problems include reliable broadcast consensus, leader election, group communication, and replication. Permission of department required.

Topics Covered:

Internet communication protocols. Client Server paradigm, RPC, Corba. Web services, .net Java enterprise.
How and why computers systems fail. How to overcome failures in a distributed system. Failures models. The distributed commit problem.
Dynamic membership. Replicating data with malicious failures. Impossibility of asynchronous consensus.
Group communication systems, properties and dynamic group membership. Causal and total order.

Prerequisites:

A bachelor degree in computer science or an equivalent field. C Programming skills required **NOTE: Students not in the Computer Science master's program should seek department permission to register.

Applied / Theory:

Homework:

Several written assignments. Information about submission will be provided on Piazza.

Projects:

There will be 3 projects that are assigned by instructor. Projects will be in C and will require students to use Turret for testing and debugging.

Exams:

One (1) midterm and one (1) final exam.

Textbooks:

Reliable Distributed Systems: Technologies, Web Services and Applications. Ken Birman. 2005, XXXVI, 668 p. 145 illus., Hardcover ISBN: 0-387-21509-3. UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X. W. Richard Stevens.
*Disclaimer: Please visit the Listing of Textbooks by College or School for the most up-to-date textbook information.

Computer Requirements:

ProEd Minimum Computer Requirements. Projects will be in C. Required OS is Linux. Students will need a Purdue account.

Other Requirements:

We will use Piazza for any communication related to the class. Students will receive an email asking them to register for Piazza.

ProEd Minimum Requirements:

view

Tuition & Fees:

view