CSS 533: Distributed Computing
Spring 2021
TTh 545-745pm online
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, and (4) designing a multi-tier server-side application with Servlets and Enterprise Java Beans (EJB). Nine lab sessions are planned to get familiar with Java threads, Java sockets, JSCH, JMS, Storm, RMI, mobile agents, Servlets, and EJB.
Course Work | Percentage | Achievements | Approximately Corresponding Numeric Grade |
Programming 1 | 14% | 90s | 3.5 - 4.0 |
Programming 2 | 14% | 80s | 2.5 - 3.4 |
Programming 3 | 14% | 70s | 1.7 - 2.4 |
Final Project | 18% | 60s or below | 0.0 - 1.6 |
Survey Presentation | 10% | ||
Midterm Exam | 15% | ||
Final Exam | 15% |
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 homework is due at the beginning of class 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). The submission may be postponed only in emergencies such as accidents, sickness, sudden business trips, and family emergencies, 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 the Syllabi Guidelines and Resources webpage.
This course is scheduled to run synchronously at your scheduled class time via Zoom. These Zoom class sessions will be recorded. The recording will capture the presenter’s audio, video and computer screen. Student audio and video will be recorded if they share their computer audio and video during the recorded session. The recordings will only be accessible to students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public.
The University and Zoom have FERPA-compliant agreements in place to protect the security and privacy of UW Zoom accounts. Students who do not wish to be recorded, please do not turn on their video. However, for exam proctoring, the instructor will ask you to turn on your video and to see your faces during an exam.
Week | Date | Topics | Sessions | Book Chapters | Assignment |
---|---|---|---|---|---|
1 | Mar 30 | Lec 1: System Models | Discussion 1 | 2 | HW1: Java Threads, Sockets, and Secured Shell |
Apr 1 | Lec 2: OS Support | Lab 1: Java Threads | 7 | ||
2 | Apr 6 | Lec 3: Interprocess Communication | Lab 2: Java Sockets | 3.3.4, 3.4-3.4.2, 4 | |
Apr 8 | Lec 4: Network Applications | Lab 3: JSCH | 3.4.1, 13.2.3 | ||
3 | Apr 13 | Lec 5: Group Communication | Discussion 2 | 6.2 | |
Apr 15 | Lec 6: Message Queues | Lab 4: JMS/Active MQ | 6.4 | HW1 due on Apr 16 Fri at 11:59pm | |
4 | Apr 20 | Lec 7: Distributed Streaming | Lab 5 Storm | References on Spark, Storm, and Kafka | HW2: Storm |
Apr 22 | Lec 8: Remote Invocation (RPC and RMI) | Discussion 3 | 5.1-5.4 | ||
5 | Apr 27 | Lec 9: Remote Invocation (RMI Continued) | Lab 6: RMI | 5.5 | |
Apr 29 | 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 | ||
6 | May 4 | Midterm exam in class | Covers chapters in weeks 1 - 5 | ||
May 6 | Lec 11: Web Services (Servlets) | Discussion 4 | 9.1 | HW3: Mobile Agent HW2 due on May 7 Fri at 5:59pm |
|
7 | May 11 | Lec 12: Web Services (Servlets Cont'd and SOAP) | Lab 8: Servlets | 9.2, 9.7 | |
May 13 | Lec 13: Distributed Objects (Enterprise Java Beans and Fractal) | Discussion 5 | 8.1-8.5 | ||
8 | May 18 | Lec 14: Distributed Objects (EJB Continued) | Lab 9: EJB | 8.5 | |
May 20 | Lec 15: Distributed File Systems (Cliet/Server Initiated Invalidation) | Discussion 6 | 12 | Final Project: Multi-Tier Server HW3 due on May 21 at 11:59pm |
|
9 | May 25 | Survey Presentation on File Management | Amazon S3 PVFS HDFS MS Azure Google Cloud GlusterFS Plan 9 |
Jayashankar, Sharma ---, --- Talwar, Agrawal Xie, Liu Joseph, Jain Thomas, Wang ---, --- |
|
May 27 | Lec 16: Fault Tolerance (Atomic Transaction, Replica Management, Check Pointing) | Discussion 7 | 17, 18 | ||
10 | Jun 1 | Survey Presentation on Fault Tolerance | Yarn JGroup Spark Zookeeper HT-Condor Cassandra XtreemFS Coda |
Gundecha, Rudrawar Leung, Ng Kudale, Khobragade ---, --- Fan, Nie Sieling, Mavila Luger, Vassion ---, --- |
|
Jun 3 | Final Project Presentation (4min/student x 30 students) | Final Project extended to June 8 at 11:59pm | |||
11 | Jun 8 | No class | New Project deadline at 11:59pm | ||
Jun 10 | Final exam in class | Covers chapters in weeks 6 - 10 |