| Instructor(s) | Dr. Muhammad Jaseemuddin [Coordinator] Office: ENG458 Phone: (416) 979-5000 x 556073 Email: jaseem@torontomu.ca Office Hours: Wed 1-2 pm and online upon request | ||||||||||||||||
| Calendar Description | This course will introduce students to concepts in the design and implementation of large-scale distributed/cloud computing systems. The topics will range from cloud technology to cluster and multi-core systems. The course will specifically cover the topics of cloud infrastructures, virtualisation, software defined networks and storage, distributed storage systems, and programming models. | ||||||||||||||||
| Prerequisites | COE 768 | ||||||||||||||||
| Antirequisites | None | ||||||||||||||||
| Corerequisites | None | ||||||||||||||||
| Compulsory Text(s): |
| ||||||||||||||||
| Reference Text(s): |
| ||||||||||||||||
| Learning Objectives (Indicators) | At the end of this course, the successful student will be able to:
NOTE:Numbers in parentheses refer to the graduate attributes required by the Canadian Engineering Accreditation Board (CEAB). | ||||||||||||||||
| Course Organization | 3.0 hours of lecture per week for 13 weeks | ||||||||||||||||
| Teaching Assistants | 1. Amirhossein Razavi (amirhossein.razavi@torontomu.ca) 2. Deepu Sasi (deepu.sasi@torontomu.ca) 3. Mahdiyar Ali Akbar Alavi (mahdiyar.alavi@torontomu.ca) 4. Rendel Abrasia (rabrasia@torontomu.ca) | ||||||||||||||||
| Course Evaluation |
Note: In order for a student to pass a course, a minimum overall course mark of 50% must be obtained. In addition, for courses that have both "Theory and Laboratory" components, the student must pass the Laboratory and Theory portions separately by achieving a minimum of 50% in the combined Laboratory components and 50% in the combined Theory components. Please refer to the "Course Evaluation" section above for details on the Theory and Laboratory components (if applicable). | ||||||||||||||||
| Examinations | Midterm exam in Week 7 (tentative date: Feb 25th) , 2 hours, closed book (covers Weeks 1-6). There will be no midterm makeup exam and the weight will be moved to the final exam. Final exam, during exam period, three hours, closed book. Two Quizzes (5% each) | ||||||||||||||||
| Other Evaluation Information | * Quiz-1 in Week 5 (tentative) and Quiz-2 in Week 11 (tentative) * Laboratory and project are important components of learning and practicing the topics learnt in the class. You are expected to do your labs individually and make significant contribution to the project. You will be evaluated individually for the labs and the project. Lab manual includes details about submission, late penalty, and evaluation of labs. * Project marks breakdown and deadlines are as follows: Project proposal (2%) due on February 2nd Interim Report (3%) due on March 9th Project Demonstration (7.5%) due in Week 12 and 13 (March 30th to April 10th) Project Code (7.5%) due on March 30th Project Report (5%) due on March 30th | ||||||||||||||||
| Teaching Methods | The textbook is highly recommended, outside textbook materials will be provided in lecture slides. Class schedule: Wednesdays 8am to 11am in LIB072. Labs will be demonstrated online to a TA. | ||||||||||||||||
| Other Information | This course covers topics related to distributed computing and cloud systems. It presents distributed system architectures; client-server and peer to peer system design; Threading and multi-process computing models; concurrency, synchronization, and inter-process communication; replication, consistency, fault tolerance and recovery. Client-server application design for web application and its full stack implementation are discussed. Web application development using Python framework on a public cloud is covered. Cloud service models; virtualization using VM and containers; their orchestration and performance issues are discussed. Case studies on public and private clouds are presented. Recent developments of multi-cloud and edge clouds are introduced. It includes a major project on the development of distributed software using Python framework and its deployment on a public cloud. | ||||||||||||||||
Week | Hours | Chapters / | Topic, description |
|---|---|---|---|
1 | 3 | Chapters 1&2 (1.1, 2.1 Application Layering), Chapter 3 (3.1, 3.2) | Introduction to distributed computing and system: distribution of computing and data, virtualization, and cloud systems). Process, Thread, Thread-Implementation, Virtualization. |
2 | 3 | Chapter 2 (2.3 Centralized), Chapter 3 (3.3., 3.4) | Distributed Architecture: Client-server system, web framework and fastAPI |
3 | 3 | Chapter 2 (2.3 Decentralized - structure and unstructured), Chapter 5 (5.2 Distributed Hash Tables) | Distributed Architecture: P2P, Structured (DHT) and Unstructured (Gnutella) |
4 | 3 | Chapter 6 (6.1 Physical clocks, 6.2) | Coordination: Physical, Logical and Vector clocks |
5 | 3 | Chapter 6 (6.3, 6.4) | Coordination: Concurrency and Mutual Exclusion, election algorithms |
6 | 3 | Chapter 4 (4.2) | Communication: Shared Memory, Remote Procedure Call (gRPC) |
7 | 3 | Midterm Exam | |
8 | 3 | Chapter 4 (4.3 message-oriented persistent communication, AMQP, 4.4) | Communication: message passing (AMQP) |
9 | 3 | Communication: publisher-subscriber model (MQTT), multicast | |
10 | 3 | Cloud: Cloud service models, Cloud application design on a public cloud, Container Orchestration | |
11 | 3 | Chapter 7 (7.1, 7.2, 7.3, 7.5) | Replication and Consistency |
12 | 3 | Chapter 8 (8.1, 8.2, 8.3) | Reliability and Fault-tolerance: RAFT consensus algorithm |
13 | 3 | Chapter 8 (8.5, 8.6) | Recovery |
Week | L/T/A | Description |
|---|---|---|
5 | Lab1 | Multi-threading using shared memory and lock |
8 | Lab2 | gRPC |
9 | Lab3 | RabbitMQ |
12 | Lab4 | FastAPI |
12 | Lab5 | Container |
12-13 | Project | Project: Web application on a public cloud |
Students are reminded that they are required to adhere to all relevant university policies found in their online course shell in D2L and/or on the Senate website
Refer to the Departmental FAQ page for furhter information on common questions.
The University Libraries provide research workshops and individual consultation appointments. There is a drop-in Research Help desk on the second floor of the library, and students can use the Library's virtual research help service to speak with a librarian, or book an appointment to meet in person or online.
You can submit an Academic Consideration Request when an extenuating circumstance has occurred that has significantly impacted your ability to fulfill an academic requirement. You may always visit the Senate website and select the blue radio button on the top right hand side entitled: Academic Consideration Request (ACR) to submit this request.
For Extenuating Circumstances, Policy 167: Academic Consideration allows for a once per semester ACR request without supporting documentation if the absence is less than 3 days in duration and is not for a final exam/final assessment. Absences more than 3 days in duration and those that involve a final exam/final assessment, always require documentation. Students must notify their faculty/contract lecturer once a request for academic consideration is submitted. See Senate Policy 167: Academic Consideration.
Longer absences are not addressed through Policy 167 and should be discussed with your Chair/Director/Program to be advised on next steps.
Students are to strictly adhere and follow:
During the lab sessions, to avoid tripping hazards, the area around the lab stations should not be surrounded by bags, backpacks etc, students should place their bags, backpacks etc against the walls of the labs and/or away from their lab stations in such a way that it avoids tripping hazards.
Academic Accommodation Support (AAS) is the university's disability services office. AAS works directly with incoming and returning students looking for help with their academic accommodations. AAS works with any student who requires academic accommodation regardless of program or course load.
Academic Accommodations (for students with disabilities) and Academic Consideration (for students faced with extenuating circumstances that can include short-term health issues) are governed by two different university policies. Learn more about Academic Accommodations versus Academic Consideration and how to access each.
At Toronto Metropolitan University, we recognize that things can come up throughout the term that may interfere with a student’s ability to succeed in their coursework. These circumstances are outside of one’s control and can have a serious impact on physical and mental well-being. Seeking help can be a challenge, especially in those times of crisis.
If you are experiencing a mental health crisis, please call 911 and go to the nearest hospital emergency room. You can also access these outside resources at anytime:
If non-crisis support is needed, you can access these campus resources:
We encourage all Toronto Metropolitan University community members to access available resources to ensure support is reachable. You can find more resources available through the Toronto Metropolitan University Mental Health and Wellbeing website.