Comp 790-063:  Implementing Distributed Collaborative Systems

Course Overview

Distributed collaborative systems allow users from different computers to share applications and interact with each other. In this course you will learn to implement various forms of such systems including screen-sharing systems, distributed user-interface toolkits shared object systems, and multi-user games. Your implementations will address several fundamental issues including discovery, group communication, causality, atomicity, transactions, fault tolerance, latency, jitter, compression, and scalability. At the end of the course, you will have a basic understanding of how distributed collaborative software works, the potential uses of this software, and the design and implementation space of distributed collaborative abstractions. Because of the emphasis on implementation, you will gain practice with the use and implementation of advanced software engineering concepts such as layers, generic types, factories, and abstract factories.  Finally, you will create a layered system that is more sophisticated in many ways than the state of the art, and you are likely to use it for programming future distributed collaborative programs.

Distribution Area: The course is classified in the systems area of the UNC CS department distribution requirement.

Program Product Requirement: Successful implementation of the assignments will fulfill the program product requirement.

Pre-requisites: The pre-requisites are knowledge of object-oriented programming and data structures -UNC’s 401 and 410.  UNC’s 431 (Internet Services and Protocols) is not a prerequisite. Knowledge of threads and user-interface toolkits will help.

Textbook: There is no text book covering implementation of distributed  or collaborative systems. Detailed PowerPoint slides will cover the topics.

Grades: A grade will be assigned based on performance on programming assignments, written assignments, and exams. Exams will constitute 40% of the grade and assignments will constitute the other 60%. There will be two midterms. Class participation and extra credit will be used to decide if a borderline grade should be upgraded. You are encouraged to discuss the assignments with fellow students but required to write/code the solutions/programs individually. Also you cannot use solutions from previous offerings of the course. Not following these rules is a violation of the honor code policy.

Instructor

Prasun Dewan

Office: FB 150

Phone: 919-962-1823

Email: dewan@cs.unc.edu

Office Hours: MW 3:30-4:30pm

Lectures

Room: SN 115

Time: MW – 2-3:15pm

Schedule

 

Unit ( Start Date)

Slides

Chapters

Videos

Assignment

Introductory Demos (Aug 22, 27)

 

 

 

Fault tolerance and replication demo

P2P Delayed Non-Causal

Causal P2P

Operation Transformation

1-user and N-user IM

 

Scope (Aug 29, Sep 5)

 

Scope (PPT)

 

 

 

 

 

ColabUIProperties (Sep 10)

ColabUiProperties (PPT)

 

 

 

1-User Interfaces (Sep 10, 12,  17, 19, 24)

Single-User (PPT)

 

TelePointers

Processing Glasspane Events

MVC

 

Remote Method Invocation  (9/24, 9/26, 10/1)

RMI

 

 

P2P

 

GIPC-RPC (10/1, 10/3, 10/8, 10/10))

GIPC-RPC

 

 

 

 

Relaying and Session Management (10/15, 10/17, 10/22, 10/25, 11/26)

Sessions

 

 

 

 

Jitter (10/31, 11/5)

Jitter (Gutwin's slides)

Jitter

 

 

Jitter

 

Consistency (11/5, 11/12, 11/14, 11/19)

Consistency

 

 

Consistency

Group  RPC Ports : Asymmetric Session Manager

 

 

 

Group  Collaborative Tool and Shared Window System Using Group Communication Abstraction

Group Interactive  Tools Using Model View Separation

Centralized Interactive Systems: Centralized Shared Windows and UIMS

 

 

 

Tools Using Group RPC

 

P2P Ports

 

 

 

Using P2P and Flexible Architecture

Static Replicated Fault Tolerant Ports with Single and Earliest Response, Replicated Session Manager

 

 

 

Local and  Preferred Response

 

Latecomer Session Manager, Dynamic Fault Tolerant Ports

 

 

 

 

 

Delay Implementation

 

 

 

Jitter Implementation

 

Causality and Operation Transformation

 

 

 

Operation Transformation

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Downloads

ObjectEditor

oeall21

 

 

 

 

 

 

Old Exams

 

Exam 1

Exam 2

 

Final Grades and Ranks