Computer Science (COMP) 689
Advanced Distributed Systems (Revision 2)
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
Instructor: Dr. Ali Dewan
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.
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.
A student who successfully completes this course should be able to
- define distributed systems;
- explain why you would design a distributed system and what the desired properties of such systems 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, be able to 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 in writing and oral presentation.
- 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).
To receive credits for COMP 689 toward the Master of Science in Information Systems Program, you must achieve a cumulative course grade of at least B- (70 percent), including an average grade of 60 percent on the assignments and achieve a grade of at least 60 percent on the Final Examination.
To receive credit for COMP 689 toward the Post-Baccalaureate Certificate in Data Analytics Program, you must achieve a cumulative course grade of at least C+ (66 percent), including an average grade of 60 percent on the assignments and achieve a grade of at least 60 percent on the Final Examination.
To receive credit for COMP 689 as a non-program student, you must achieve a cumulative course grade of at least C+ (66 percent), including an average grade of 60 percent for each required learning outcome it is intended to address.
The weighting of the composite grade is as follows:
|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%|
To learn more about assignments and examinations, please refer to Athabasca University's online Calendar.
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 can sometimes be purchased 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.
- 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.
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.
Updated November 13 2018 by Student & Academic Services