Computer Science (COMP) 689

Advanced Distributed Systems (Revision 2)

COMP 689

Delivery Mode: Grouped Study Online (with eTextbook)

Credits: 3

Area of Study: IS Core

Prerequisite: COMP 501 and COMP 503, or COMP 604, or course coordinator approval

This course is not available for challenge credit

Faculty: Faculty of Science and Technology

Centre: School of Computing and Information Systems

Instructor: Dr. Oscar Lin

**Note:  This is a graduate level course and students need to apply and be approved to one of the graduate programs or as a non-program School of Computing and Information Systems graduate student in order to take this course.  Minimum admission requirements must be met.  Undergraduate students who do not meet admission requirements will not normally be permitted to take this course.


COMP689 deals with the major recent developments in distributed systems technology. It explains the principles of distributed systems such as communication, naming, synchronization, replication, fault tolerance, and security using examples and case studies. It covers architectures in distributed systems, reflecting the progress that has been made on organizing distributed systems, and new topics such as peer-to-peer computing, sensor networks, web services, grid computing, virtualization, cloud computing and its roots in distributed systems mechanisms, and self-management of distributed systems.

The course illustrates design concepts for each topic with concept-oriented assignments and a small high-level programming assignment. Students complete a term project on the design and implementation of a real distributed system.

Course Objectives

The learning objectives of this course are to

  • Present the principles underlying the function of distributed systems and their extension to grid and cloud computing and virtualization techniques
  • Create an awareness of the fundamental technical challenges in advanced distributed systems design and implementation;
  • Expose students to current technology used to build architectures to enhance distributed computing infrastructures with various computing principles and paradigms, including grid and cloud computing;
  • Enhance students’ understanding of key issues related to multi-level interoperability across a distributed infrastructure and across multiple heterogeneous and distributed resources in a dynamically changing computing environment;
  • Expose students to past and current research issues in the field of distributed systems and new challenges in cloud computing; and
  • Provide experience in analyzing a distributed computing model and implementing typical algorithms used in distributed systems and distributed applications in cloud infrastructure.


Unit1. Introduction

  • Features and types of distributed systems.

Unit 2. Architecture

  • Architectures, middleware, and self-management in distributed systems.

Unit 3. Processes

  • Multithreaded clients and services, virtualization and virtual machines, and code migration.

Unit 4. Communication

  • RPC-, message-, and stream-oriented communication and multicast communication.

Unit 5. Naming

  • Flat and structured naming, and attribute-based naming.

Unit 6. Synchronization

  • Synchronization algorithms.

Unit 7. Consistency and Replication

  • Consistency models and replica management.

Unit 8. Fault Tolerance

  • Failure models, failure detection, algorithms for fault tolerance, and recovery from failure in distributed systems.

Unit 9. Security

  • Distribution of security mechanisms, access control, and security management.

Unit 10. Introduction to Cloud Computing

  • Analyzing cloud service models, designing distributed applications based on a cloud platform, and deploying computing resources and running services in the underlying cloud infrastructure.

Unit 11. VM Provisioning and Migration for Cloud Infrastructures as a Service (IaaS

  • Virtual machine provisioning and migration services for cloud infrastructures; deploying and running workflow applications on multiple virtual instances and clouds.

Unit 12. Cloud Platform and Software as a Service (PaaS/SaaS)

  • Analyzing on multi-level interoperability of clouds across distributed infrastructure and across multiple heterogeneous and distributed resources (services and data centers).

Learning Outcomes

Upon successful completion of this course, you will be able to

  • define distributed systems.
  • explain why you would design a distributed system and what the desired properties of such a system are.
  • list the principles underlying the functioning of distributed systems, describe the problems and challenges associated with these principles, and evaluate the effectiveness and shortcomings of their solutions.
  • discuss how the principles are applied in contemporary distributed systems and specific distributed infrastructure such as cloud infrastructure and cloud platforms.
  • explain how these principles and features affect software design on specific application problems.
  • analyze workflow applications and workflow management mechanisms on multiple virtual instances and the challenges with respect to secure data storage, communications, configurability, performance, etc., in distributed systems and clouds.
  • design a distributed system that fulfills requirements for desired properties, recognize when this is not possible, and explain why.
  • build distributed system software using various methods, strategies, and techniques presented in the course.
  • effectively communicate course work both orally and in writing.


To receive credit for COMP 689, you must achieve a cumulative course grade of B- (70 percent) or better, and must achieve an average grade of at least 60% on the assignments and 60% on the final examination. Your cumulative course grade will be based on the following assessment.

Assessment Description Weight
Assignment 1: Article Analysis Analyze articles on selected issues in advanced distributed systems and cloud computing. 20%
Assignment 2: Lab Analyze and compare cloud platforms. Set up a platform as a service (PaaS) for a cloud computing platform for developing and hosting web applications and distributed system environments. 20%
Assignment 3: Project Analyze and implement a distributed system application or cloud application 35%
Oral Presentation Individual online presentation. 25%
Total   100%

To learn more about assignments and examinations, please refer to Athabasca University's online Calendar.

Course Materials


Registration in this course includes an electronic textbook. For more information on electronic textbooks, please refer to our eText Initiative site.

Buyya, R., Broberg , J., and Goscinski, A.M., Eds. 2011. Cloud Computing: Principles and Paradigms. John Wiley & Sons. ISBN: 978-0-470-88799-8 (e-book)

Cafaro , M., and Aloisio, G., Eds. 2011. Grids, Clouds and Virtualization. Springer. ISBN: 978-0-85729-048-9 (e-book)

Tanenbaum, A.S., and van Steen, M. 2007. Distributed Systems: Principles and Paradigms (Second ed.). Prentice-Hall. ISBN: 978-0-13-239227-3 (e-book)

A print version of the eText may be available for purchase from the publisher through a direct-to-student link provided on the course website; you can also acquire the textbook on your own if you wish.

Other Resources

  • the twelve units of the Computer Science 689 study guide
  • detailed descriptions of the requirements for the individual assignments
  • a course evaluation form

Special Course Features

COMP 689 is offered in paced online mode and can be completed at the student’s workplace or home. Your computer must have sound capabilities. Online presentations will be conducted using synchronous meeting software such as Adobe Connect.

Special Note

Students registered in this course will NOT be allowed to take an extension due to the nature of the course activities.

Athabasca University reserves the right to amend course outlines occasionally and without notice. Courses offered by other delivery methods may vary from their individualized-study counterparts.

Opened in Revision 2, March 28, 2012.