Dependable Distributed Systems

(3-0-0-3)

CMPE Degree: This course is Not Applicable for the CMPE degree.

EE Degree: This course is Not Applicable for the EE degree.

Lab Hours: 0 supervised lab hours and 0 unsupervised lab hours.

Technical Interest Group(s) / Course Type(s): Computer Systems and Software

Course Coordinator:

Prerequisites: None.

Corequisites: None.

Catalog Description

Concepts, theory, and practice of dependable distributed systems. Techniques for tolerating hardware and software faults.

Textbook(s)

Course Outcomes

Not Applicable

Student Outcomes

In the parentheses for each Student Outcome:
"P" for primary indicates the outcome is a major focus of the entire course.
“M” for moderate indicates the outcome is the focus of at least one component of the course, but not majority of course material.
“LN” for “little to none” indicates that the course does not contribute significantly to this outcome.

1. ( Not Applicable ) An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

2. ( Not Applicable ) An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors

3. ( Not Applicable ) An ability to communicate effectively with a range of audiences

4. ( Not Applicable ) An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts

5. ( Not Applicable ) An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives

6. ( Not Applicable ) An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

7. ( Not Applicable ) An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Strategic Performance Indicators (SPIs)

Outcome 1 (Students will demonstrate expertise in a subfield of study chosen from the fields of electrical engineering or computer engineering):
1. Explain the concepts of consistency, availability, and network partitioning as they relate to distributed systems and explain the interrelationships and dependencies among them.
2. Explain the modern distributed system design paradigm called REST (Representational State Transfer) and be able to design a Web service using the REST paradigm.

Outcome 2 (Students will demonstrate the ability to identify and formulate advanced problems and apply knowledge of mathematics and science to solve those problems):
1. Design and analyze fault-tolerant and secure distributed storage systems to meet given confidentiality, integrity, and availability requirements.

Outcome 3 (Students will demonstrate the ability to utilize current knowledge, technology, or techniques within their chosen subfield):
1. Build a multi-component cloud-based service using different cloud computing models such as infrastructure-as-a-service, platform-as-a-service, and software-as-a-service within a commercial cloud platform such as AWS or Google Cloud.

Course Objectives

Topical Outline

1. Introduction to Cloud Computing and Associated Technologies
2. Fundamentals of Distributed Systems
a. States, events, event ordering, system models, failures, and failure detectors.
3. Group Communication
a. Properties of different multicasts, causal atomic multicast, Paxos, CAP Theorem.
3. Software Replication
a. Active and passive replication of software; state machine approach; replica determinism.
4. Fault-Tolerant and Secure Storage
a. Quorum and Byzantine quorum systems; secret sharing techniques, proactively secure storage
5. Peer-to-Peer Systems
a. Distributed hash tables, Chord and Pastry; P2P replication; BitTorrent.
6. Cloud Computing Software and Systems
a. Actual cloud computing systems such as Megastore, Dynamo, EC2, S3, Glacier, Cassandra, BigTable, Chubby, Spanner.