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.
Outline
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.
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.
Evaluation
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 oral presentation. Your cumulative course grade will be based on the following assessment.
Activity
Weight
Assignment 1: Article Analysis
20%
Assignment 2: Lab
20%
Assignment 3: Project
35%
Oral Presentation
25%
Total
100%
Materials
Buyya, R., Broberg , J., and Goscinski, A.M., Eds. 2011. Cloud Computing: Principles and Paradigms. John Wiley & Sons. ISBN: 978-0-470-88799-8 (eBook)
Cafaro , M., and Aloisio, G., Eds. 2011. Grids, Clouds and Virtualization. Springer. ISBN: 978-0-85729-048-9 (eBook)
Tanenbaum, A.S., and van Steen, M. 2007. Distributed Systems: Principles and Paradigms (Second ed.). Prentice-Hall. ISBN: 978-0-13-239227-3 (eBook)
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.