CSS 533: Distributed Computing
Spring 2024
MW 545-745pm at UW2 340
Prof. Munehiro Fukuda
This course builds on knowledge of advanced programming methodologies in distributed computing. Topics covered include message passing, indirect communication, remote method invocation, distributed objects, multi-tier server-side programming, peer-to-peer systems, distributed synchronization, distributed check-pointing, and replica management.
For each of the topics, we will cover the background and motivation; design approach and philosophy, current technology implementations, in-class discussions and laboratory hands-on programming exercises.
Four programming assignments are given: (1) coding an online game with Java threads, sockets, and secure shell, (2) developing a data-streaming application with Apache Storm, (3) implementing a mobile-agent execution platform with RMI, (4) comparing centralized and remote executions of inverted-indexing program with Hazelcast, and (5) developing a fault-tolerant master-worker framework with ZooKeeper. 10 lab sessions are planned to get familiar with Java threads, Java sockets, JSCH, Storm, RMI, Servlets, mobile agents, Hazelcast, and ZooKeeper.
Course Work | Percentage | Achievements | Approximately Corresponding Numeric Grade |
Programming 1 | 12% | 90s | 3.5 - 4.0 |
Programming 2 | 12% | 80s | 2.5 - 3.4 |
Programming 3 | 12% | 70s | 1.7 - 2.4 |
Programming 4 | 12% | 60s or below | 0.0 - 1.6 |
Programming 5 | 12% | ||
Survey Presentation | 12% | ||
Midterm Exam | 12% | ||
Final Exam | 12% | ||
Discussions/Presentation Review | 4% |
If you want to communicate with me through email, please email me at mfukuda@uw.edu with its title starting with [css533]. No Canvas email. Please note that I won't respond to Canvas email.
All programming assignments are to be done independently. Any collaboration of work will result in severe penalty. You may discuss the problem statement and any clarification with each other, but any actual work to be turned in, must be done without collaboration.
Any programming assignment is due at 11:59pm on the due date and must be submitted to Canvas. Once the submission window gets closed, no late submission is accepted even through email (firm). Please note: the closer the deadline is approaching, the slower Canvas responds to you. So, don't plan on a last-minute submission. The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies (not including planned events such as a wedding), in which case you may turn in your homework late with a written proof. No make-up exams will be given except under exceptional circumstances. Barring emergencies, I must be informed before the exam.
To request academic accommodations due to a disability, please contact Disability Resources for Services (DRS) in UW1-080, (email: uwbdrs@uw.edu, Phone: 425-352-5307 and FAX: 425-352-5114). If you have a documented disability on file with the DSS office, please have your DRS counselor contact me and we can discuss accommodations.
The class follows the religious accomodation policy. Please check Office of the University Registrar's webpage
All my lectures and whiteboard messages will be recorded by Panopto and will be broadcast through its webcast. If you are sick or on a business trip, you may join the webcast at real time or watch Panopto video clips later. However, there are no plans on Zoom meetings or recordings as this class is not hybrid. Also note that there are eight in-class discussion/presentation events, each counted as 0.5pts of your grade, so that video watching is not sufficient to get 4.0.
Week | Date | Topics | Sessions | Book Chapters | Assignment |
---|---|---|---|---|---|
1 | Mar 25 | Lec 1: System Models (p1-7) Lec 2: OS Support(p1, p3-4, p6-8, p10-15) |
Discussion 1 Lab 1: Java Threads |
2 7 |
|
Mar 27 | Lec 3: Interprocess Communication | Lab 2: Java Sockets | 3.3-3.4 | HW1: Java Threads, Sockets, and Secured Shell | |
2 | Apr 1 | Lec 4: Group Communication | Lab 3: JSCH | 4.4, 4.6, 6.2 | |
Apr 3 | Lec 5: Message Queues | Discussion 2 | 6.3, 6.4 | ||
3 | Apr 8 | Lec 6: Distributed Streaming (STORM) | Lab 4: Storm | References on Spark, Storm, and Kafka | |
Apr 10 | Lec 7: Remote Execution (RPC, RMI) | Lab 5: RMI | 5 | HW2: Storm HW1 due at 11:59pm |
|
4 | Apr 15 | Lec 8: Web Services (Servlets, SOAP) | Lab 6: Servlets | 9 | |
Apr 17 | Lec 9: Distributed Objects (EJB) | Discussion 3 | 8 | ||
5 | Apr 22 | Midterm exam in class | Covers lectures 1 - 9 | ||
Apr 24 | Lec 10: Mobile Agents | Lab 7: Mobile Agents UWAgents Manual |
1.5.1, 1.5.3, 2.3.1, 2.4.3, and 11.1.1 | HW3: Mobile Agent HW2 due at 11:59pm |
|
6 | Apr 29 | Lec 11: Distributed Shared Space, Cache, and Hash | Discussion 4 | 6.5 | |
May 1 | Lec 12: Hazelcast | Lab 8: Hazelcast 1 | References on Hazelcast | ||
7 | May 6 | Lec 13: Fault Tolerance (Atomicity and Replication) | Lab 9: Hazelcast 2 | 17.3, 18 | |
May 8 | Lec 14: Fault Tolerance (Checkpointing and Consensus Algorithms) | Discussion 5 | 17.6, 15 | HW4: Hazelcast HW3 due at 11:59pm |
|
8 | May 13 | Lec 15: ZooKeeper | lab 10: ZooKeeper | References on ZooKeeper | |
May 15 | Lec 16: Distributed File Systems (File Consistency and Distribution) | Discussion 6 | 12 | ||
9 | May 20 | Lec 17: Distributed File Systems (Parallel File Transfer) | Discussion 7 | No corresponding chapters | |
May 22 | Survey Presentation | HW5: ZooKeeper HW4 due at 11:59pm |
|||
10 | Jun 27 | Holiday | |||
May 29 | Survey Presentation | ||||
11 | Jun 3 | No class | |||
Jun 5 | Final exam in class | Covers lectures 10 - 17 | HW5 due at 11:59pm |