Comp 790-063: Distributed Collaborative Systems

Course Overview

Distributed collaborative systems allow users from different computers to interact with each other. Thus, they are layered on top of two base technologies: user-interface and distributed abstractions. They include shared desktop/window systems, instant messaging, shared editors and spreadsheets, distributed presentations systems, and of course, games. In this course, we will look at issues in the design, implementation, testing, and evaluation of these systems.

At the end of the course, you will have a basic understanding of how state of the art collaboration software available works, the potential uses of this software, the design space of collaborative applications and infrastructures, and the two base technologies: user-interface and distributed abstractions.

The topics covered will include collaboration architectures, consistency of replicated objects, collaborative user-interfaces, application and system taxonomies, session-based application-level multicast, performance, causality, operation transformation, and concurrency and access control.

Many of these concepts will be implemented in assignments that cumulatively will form a project that supports forms of shared editing, IM, and shared desktops that are in some ways more advanced than you see in practice today. The basic algorithms implemented in the project will be explained in class; your task will to implement them in the project, thereby getting a deep understanding of them. In the first day of classes, you will see a demonstration of the project.

Distribution Area: Collaborative systems, as like the base technologies of user-interface and distribution systems, are middleware situated between operating systems and the application. It is always difficult to classify middleware as systems or applications, but as collaborative systems are nearer the application than the two base technologies, this course is, somewhat arbitrarily, being classified in the application area of the UNC CS department distribution requirement.

Program Product Requirement: In order to be a cumulative composition of several assignments the project will have to follow sound software engineering principles. Together will appropriate documentation, it should help you meet the program product requirement.

Pre-requisites: The pre-requisites are knowledge of object-oriented programming, data structures, and threads, which are covered in UNC 401 and 410. Knowledge of user-interface toolkits and inter-process communication will help but is not necessary.

Textbook: There is no text book covering distributed 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.

Course Syllabus in UNC Format

Previous Offerings of Similar Course

Fall '12

Fall '09

Fall '06

Fall '04

Fall '99

Spring '97

 

Instructor

Prasun Dewan

Office: FB 150

Phone: 919-962-1823

Email: dewan@cs.unc.edu

Office Hours: M, W 4-5pm

Lectures

Room: SN 115

Time: MW 12:30-1:45pm

Getting Help and Class Discussion

We will be using Piazza for class discussion and getting help. The system is highly catered to getting you help fast and efficiently from classmates and instructor(s). Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you do not get a response within a day or two on Piazza, please send mail to me. But try Piazza first. Do not send mail to an individual instructor, as that can overwhelm him/her - such mail may be ignored.

Before posing a question, please check if this question has been asked before. This will reduce post clutter and reduce our burden. Repeat questions will be ignored by the instructor(s).

Piazza allows anyone to respond. So if you see a question that you think you can respond to, please do so, as that will reduce the burden on the instructor(s) and help you "teach" your fellow students.

This will be a form of class participation that will be noted when I allocate my fudge points!

Hope it works well

If you have any problems or feedback for the developers, email team@piazza.com.

Signup Link:piazza.com/unc/fall2014/comp790063

Class page: piazza.com/unc/fall2014/comp790063/home

 

YouTube Play List with Recordings of Lectures

 

Tentative Schedule

Unit ( Start Date)

Slides with Audio

PDF

Videos on YouTube

Chapters

Assignment

Introduction/Scope (8/20)

PPTX

PPT2PDF

 PPT2Video

Introduction (Long Version)

Multi-View IM

Demos (8/20, 8/25)

Echo Demo

IM Demo

Replicated Windows Demo

Telepointer Trails Demo

Causality Demo

Operation Transformation Demo

Locking Demo

 

 

Anatomy of an Interactive Application (8/25)

PPTX

PPT2PDF

PPT2Video

 

 

Interactor Types (8/25, 8/27)

PPTX

PPT2PDF

PPT2Video

 

 

Model Types (8/27)

PPTX

PPT2PDF

PPT2Video

 

 

Traceable Algorithms (8/27, 9/1, 9/3)

PPTX

PPT2PDF

PPT2Video

 

 

Group Communication and Application-level Multicast (9/8, 9/10, 9/15)

PPTX

PPT2PDF

PPT2Video

Conference Paper

N-User Replicated IM

Replicated and Centralized Model Sharing (9/15, 9/17, 9/22)

PPTX

PPT2PDF

PPT2Video

Centralized Sharing

 

Replicated Sharing

Replicated and Centralized Window Sharing (9/24, 9/29, 10/1, 10/6)

PPTX

PPT2PDF

PPT2Video

Shared Window Systems

N-User Replicated Windows

Concurrency Control

(10/8, 10/15, 10/20, 10/22, 10/27, 10/29)

PPTX

PPT2PDF

PPT2Video-1

PPT2Video-2

PPT2Video-3

PPT2Video-4

Transactions

Distributed Locks

Causality (10/29, 11/5, 11/10)

PPTX

PPT2PDF

PPT2Video-1

PPT2Video-2

 

Causality

Operation Transformation (11/10, 11/12, 11/17, 11/19, 11/23)

PPTX

PPT2PDF

PPT2Video

 

OT

Merge Policies (12/1)

PPTX

PPT2PDF

PPT2Video

 

 

 

 

 

 

 

 

 

 

 

Downloads

Lecture Code GitHub

ColabTeaching

MulicastCode GitHub

util

 

ObjectEditor Version 22

oeall22

Final Grades and Ranks

Old Exams

Exam1

Exam2