San Diego State University

Department of Computer Science

 

 CS 666 Advanced Distributed Systems Spring 2018

 

 

Class Web Page:        

The class web page is located at http://taoxie.sdsu.edu/cs666/index.html. This page contains course announcements, syllabus, and other information.

 

Class Location and Time:        

Class location: EBA - 443; Class Schedule: MW 16:00 - 17:15

 

Instructor:           

Tao Xie, Ph.D.

Office hours:         MW 11 am - noon or by appointment

Office:                    GMCS 535, Office Phone 619-594-2014

URL:                       http://taoxie.sdsu.edu

 

Grader:           

Prashant Joshi

Email: prashantjoshi93@gmail.com

Office hours: Monday&Wednesday 11 am to noon at GMCS 557

 

Course Description:        

A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages. A major motivation for developing distributed systems is to share resources, which may be managed by servers and accessed by clients. The design and implementations of distributed systems are challenging, because (1) components in a distributed system are in most cases heterogeneous, (2) components may be dynamically added or replaced, and (3) the systems must work well when the number of users increases. In this course, we will address the issues of design of distributed systems. In particular, we will investigate successful approaches in the form of abstract models, algorithms, and cases studies of real-world systems. We presume that students who will take this class have a basic knowledge of operating systems, computer architecture, and object oriented programming. The course will be research intensive, aiming at deriving practical and achievable ground rules for distributed systems design. Each student is expected to do a project including a written report and an in-class presentation on a topic to be arranged with the instructor. You will be expected to collaborate with other students toward the completion of the research project related to distributed systems.

 

Topics Covered:        

Characterization of distributed systems, Distributed system models, Distributed algorithms, Distributed objects and RMI, Transactions and concurrency control, Distributed transactions, Replication, Distributed file systems, Peer-to-Peer systems, Mobile and ubiquitous computing.

 

Textbook:             

G. Coulouris, J. Dollimore and T. Kindberg, "Distributed Systems: Concepts and Design" fifth edition, by Addison Wesley, 2011, ISBN: 0-13-214301-1.

 

Lecture Slides:             

Class Schedule             

Introduction of Distributed Systems             

System Models             

Interprocess communication             

How to conduct research projects in CS (1)?             

How to conduct research projects in CS (2)?             

How to conduct research projects in CS (3)?             

Distributed Objects and Remote Invocation             

Events and Distributed File Systems (1)             

Distributed File Systems (2)             

A Sample CS Research Project             

Peer-to-Peer Systems             

Time and Global State (1)             

Time and Global State (2)             

Coordination and Agreement (1)             

Coordination and Agreement (2)             

Coordination and Agreement (3)             

Coordination and Agreement (4)             

Transactions and Concurrency Control (1)             

Transactions and Concurrency Control (2)             

Transactions and Concurrency Control (3)             

Midterm Exam Preview             

Distributed Transactions (1)             

Distributed Transactions (2)             

 

Course Objectives:

1.  To understand the characterization of distributed systems.

2.  To understand the well-established topics of data replication, distributed file systems, and the like.

3.  To familiarize yourselves with new topics, including web services, the Grid, peer-to-peer and ubiquitous systems.

4.  To design a scalable and heterogeneous distributed systems.

5.  To improve technical writing and oral presentation skills.

 

Prerequisites:

1.  CS 570 - Operating Systems.

 

Assignments, Lab Assignment, Midterm Exam, and Research Project:

Research Project

1.  Assignment 1 (Chapters 1,2,4,5; individual assignment)

Assignment#1

2.  Assignment 2 (Chapters 10,12, 14, 15; individual assignment)

Assignment#2

3.  Assignment 3 (Chapters 16,17; individual assignment)

Assignment#3

 

Class Guidelines:

 

 

 

Grading Policy:

          100       90        86        82        78         74        70        66        62          58         54         50        0

     |     A    |   A-    |    B+   |    B    |     B-    |   C+   |    C     |    C-   |    D+    |     D    |    D-    |    F    |

 

Useful Resources:         

1.  Technical Writing Resources

2.  IEEE Distributed Systems Online

3.  Massively Distributed Systems at IBM's TJ Watson Research Center

4.  Distributed Systems Group at Stanford

5.  IEEE ICDCS 2005

6.  IEEE Transactions on Parallel and Distributed Systems

7.  Technical Journals: JPDC, IEEE TPDS, IEEE TC, CACM, Computing Surveys, JACM, TOCS, SigOPS.