CSS 533: Distributed Computing
Spring 2019
TTh 545-745pm at UW1-060
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. 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-170, (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.
Week | Date | Topics | Sessions | Book Chapters | Assignment |
---|---|---|---|---|---|
1 | Apr 2 | Lec 1: System Models | Discussion 1 | 2 | |
Apr 4 | Lec 2: OS Support | Lab 1: Java Threads | 7 | ||
2 | Apr 9 | Lec 3: Interprocess Communication | Lab 2: Java Sockets | 3.3.4, 3.4-3.4.2, 4 | HW1: Java Threads, Sockets, and Secured Shell |
Apr 11 | Lec 4: Network Applications | Lab 3: JSCH | 3.4.1, 13.2.3 | ||
3 | Apr 16 | Lec 5: Group Communication | Discussion 2 | 6.2 | |
Apr 18 | Lec 6: Message Queues | Lab 4: JMS/Active MQ | 6.4 | ||
4 | Apr 23 | Lec 7: Distributed Streaming | Lab 5 Storm | References on Spark, Storm, and Kafka | HW1 due HW2: Storm |
Apr 25 | Lec 8: Remote Invocation (RPC and RMI) | Discussion 3 | 5.1-5.4 | ||
5 | Apr 30 | Lec 9: Remote Invocation (RMI Continued) | Lab 6: RMI | 5.5 | |
May 2 | 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 7 | Midterm exam in class | Covers chapters in weeks 1 - 5 | ||
May 9 | Lec 11: Web Services (Servlets) | Discussion 4 | 9.1 | HW2 due extended to May 12, 11:59pm HW3: Mobile Agent |
|
7 | May 14 | Lec 12: Web Services (Servlets Cont'd and SOAP) | Lab 8: Servlets | 9.2, 9.7 | |
May 16 | Lec 13: Distributed Objects (Enterprise Java Beans and Fractal) | Discussion 5 | 8.1-8.5 | ||
8 | May 21 | Lec 14: Distributed Objects (EJB Continued) | Lab 9: EJB | 8.5 | |
May 23 | Lec 15: Distributed File Systems (Cliet/Server Initiated Invalidation) | Discussion 6 | 12 | HW3 due extended to May 25 at 11:59pm Final Project: Multi-Tier Server |
|
9 | May 28 | Survey Presentation on File Management | Amazon S3 PVFS HDFS MS Azure |
Praveena Avula, Jignasha Borad Archit Gupta, Ploypaphat Saltz Nora Wang, Yuna Guo Anukriti Singh, Neha Kumari |
|
May 30 | Lec 16: Fault Tolerance (Atomic Transaction, Replica Management, Check Pointing) | Discussion 7 | 17, 18 | ||
10 | Jun 4 | Survey Presentation on Fault Tolerance | Google Cloud Spark Storm/Zookeeper HT-Condor |
Christopher Ijams, Max Weiss Soheli Sultana, Sandy Chau Justin Gilroy, Chris Lee Savitha Kumari, Nasser Alghamdi |
|
Jun 6 | Final Project Presentation (First 12 students) | ||||
11 | Jun 11 | Final Project Presentation (Last 12 students) | Final project due | ||
Jun 13 | Final exam in class | Covers chapters in weeks 6 - 10 |