CS 410 Top: Distributed Computing
| Credit Hours: | 4 |
| Course Coordinator: | N/A |
| Course Description: | An advanced introduction to the concepts and design principles of Distributed Computing. Topics may include System models; Remote Procedure Call and remote method invocation; Distributed Virtual Memory, Distributed System Security; Distributed File Systems, Name Services, Time and ordering of Events; coordination and Agreement; transactions and Atomicity; Replication; World-Wide-Web; Information-flow systems; peer-to-peer systems. Prerequisite: CS 333. |
| Prerequisites: | Basic knowledge of operating systems, single machine security as provided by an operating system, and computer networking. |
| Goals: | To obtain a basic understanding of theoretical foundations and practical applications of distributed computing.
Upon the successful completion of this course students will be able to:
- Recognize application requirements phrased in terms of the various
distributed system transparencies;
- Design a distributed system to solve a stated application problem;
- Select appropriate distributed systems middleware to assist in its
implementation;
- Compare various architectural alternatives, and evaluate their comparative
costs and benefits;
- Identify impossible requirements;
- Trade-off the costs of availability and reliability against their benefits;
- Analyze the fit between the realities of distributed computing and
the object-oriented computing model;
- Implement a remote communications system at the application level,
such as an RPC system;
- Explain why Lamport clocks cannot capture causal order, and why vector
clocks can do so;
- Describe the messages sent in a multi-phase commit protocol, and demonstrate
how the loss of network connectivity at the critical moment can cause the
protocol not to terminate;
- Compare the semantics of a typical centralized file system interface
with that of a typical distributed file system, and assess whether
the changes in semantics are worth the gain in performance;
- Explain why Distributed shared memory systems use a different memory
semantics from the ideal centralized memory, and reconcile these semantics
with the way that programmers actually use shared memory.
|
| Textbooks: | The required book is Distributed Systems: Concepts and Design (Third Edition), by George Coulouris, Jean Dollimore and Tim Kindberg. Published by Addison-Wesley, 2001. ISBN 0-201-61918-0. |
| References: | None. |
| Major Topics: | Foundations; System models; Remote Procedure Call and remote method invocation; Distributed Virtual Memory, Distributed System Security; Distributed File Systems, Name Services, Time and ordering of Events; coordination and Agreement; transactions and Atomicity; Replication; World-Wide-Web; Information-flow systems; peer-to-peer systems. |
| Laboratory Exercises: |
- Measure a remote object messaging or procedure call system (1.5 weeks)
- Implement a remote object messaging system (1.5 weeks)
- Design a distributed application (1 week)
- Compare and contrast competing designs (1 week)
- Synthesize and implement the application (3 weeks)
|
| CAC Category Credits |
Core | | Advanced |
| Data Structures |
| |
| Algorithms |
| 1.0 |
| Software Design |
| 2.0 |
| Computer Architecture |
| |
| Programming Languages |
| 0.5 |
| Oral and Written Communications: | Every student is required to submit a written reports before each class, summarizing the reading required for the class. |
| Social and Ethical Issues: | Information Privacy and Freedom of Information are touched upon in considering distributed systems security and peer-to-peer systems, but these topics do not play a large part in the grading of the course |
| Theoretical Content: | Fischer-Lynch-Patterson impossibility result. 1 hour
Lamport Clocks and Vector Timestamps 1 hour |
| Problem Analysis: | All students are required, working in a group, to analyze a problem scenario constructed by the instructor. |
| Solution Design: | All students are required, working in a group, to construct a solution to the above problem scenario. |
|