Schedule (subject to change; check regularly)

Lecture slides and assignments are available for download from blackboard.

We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza.

Find our class page at: https://piazza.com/gmu/spring2014/swe622/home

Week 1    Jan   21

-- Cancelled due to snowstorm


Week 1    Jan   28

Topic:    Introduction

-- Tanenbaum 1

-- J. Waldo, G. Wyant, A. Wollrath, and S. Kendall. "A Note on Distributed Computing."


Week 2    Feb    4

Topic:    Communication Fundamentals and Intro to Middleware Solutions

-- Tanenbaum 4.1 - 4.3

-- W. Emmerich. "Software Engineering and Middleware: A Roadmap."


Week 3    Feb    11

Topic:    Middleware Solutions

-- Tanenbaum 4.3 - 4.5

-- A. Carzaniga, D.S. Rosenblum, and A.L. Wolf. "Design and Evaluation of a Wide-Area Event Notification Service."

-- RMI Tutorial


Week 4    Feb   18

-- Topic: Continue lecture on middleware solutions

-- Homework 1 is due


Week 5    Feb    25

Topic:    Naming, Service Discovery, and Service-Oriented Computing

-- Tanenbaum 5.1 - 5.3, Tanenbaum 12

-- Debu Panda, "An Introduction to Service-Oriented Architecture from a Java Developer Perspective."

-- Robert E. McGrath, "Discovery and its Discontents: Discovery Protocols for Ubiquitous Computing."

-- Steve Vinoski, "Where is Middleware?”

-- Homework 2 is due


Week 6    Mar    4

Topic: Continue Lecture on SOA 


Week 7    Mar    11

-- Spring Break


Week 8    Mar    18

Topic:     Synchronization

-- Tanenbaum 6.1 - 6.2

-- Programming assignment 1 is due


Week 9    Mar    25

Topic:     Consistency and Coordination

-- Tanenbaum 3.1 and Tanenbaum 7

-- Homework 3 is due


Week 10    Apr   1

-- Midterm Exam


Week 11    Apr    8

Topic:     Replication and Fault Tolerance

-- Tanenbaum 8.1 - 8.3, Tanenbaum 8.5 - 8.6


Week 12    Apr    15

Topic:    Security

-- Tanenbaum 9

-- Homework 4 is due


Week 13    Apr    22

Topic:    Mobility and Adaptation

-- Tanenbaum 2.4, Tanenbaum 3.5

-- A. Carzaniga, G. P. Picco, and G. Vigna. "Designing Distributed Applications with Mobile Code Paradigms."

-- J. O. Kephart, D. Chess. “The Vision of Autonomic Computing.” IEEE Computer Vol. 36(1): 41-50 (2003)


Week 14    Apr    29

Topic:    Final Review

-- Programming assignment 2 is due


Week 15    May    6

-- Homework 5 is due

-- Reading day; no lecture


Week 16    May    13

-- Final Exam: starts at 6:45pm


Instructor

Professor                    Dr. Sam Malek

                                    Electronic Mail: smalek@gmu.edu

                                    Office: Nguyen Engineering Building, Room 4431

                                    Office Phone: +1-703-993-1677

                                    Office Hours: Tues 10am-12pm or by appointment


Teaching Assistant     Thabet Kacem

                                    Electronic Mail: tkacem@masonlive.gmu.edu

                                    Office: Nguyen Engineering Building, Room 5321

                                    Office Hours: Wed 3:30-5:30pm or by appointment

Overview

This course conveys key concepts for designing and building distributed software systems.  The course is geared towards software engineers that work mostly at the application-level, but need to understand the features and limitations of existing middleware for distributed systems.  Additionally, the course covers some research topics related to currently open problems. Specifically, some of the topic that will be covered are as follows: definition and scope of distribution, principles of communication and computation, socket programming, remote method invocation, software architecture of distributed systems, middleware systems, service discovery, quality of service, adaptive systems, mobility, security, and fault tolerance. 

 

Prerequisites

  1. SWE Foundation Courses

  2. Strong Java Programming Knowledge


Textbook and Readings

  1. Distributed Systems: Principles and Paradigms (2nd edition), Andrew S. Tanenbaum, Maarten Van Steen, 2007, ISBN 0-13-239227-5

  2. Supplemental papers (see the schedule below)


Grading

  1. Five Reading Assignments  20%

  2. Two Programming Assignments 30%

  3. Two Exams 50%