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 distributedor 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.


Prasun Dewan

Office: FB 150

Phone: 919-962-1823


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


Room: SN 115

Time: MW Ė 2-3:15pm



Unit ( Start Date)





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)



Processing Glasspane Events



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






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






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






Jitter (10/31, 11/5)

Jitter (Gutwin's slides)






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





GroupRPC Ports : Asymmetric Session Manager




GroupCollaborative Tool and Shared Window System Using Group Communication Abstraction

Group InteractiveTools 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 andPreferred Response


Latecomer Session Manager, Dynamic Fault Tolerant Ports






Delay Implementation




Jitter Implementation


Causality and Operation Transformation




Operation Transformation


















































Old Exams


Exam 1

Exam 2


Final Grades and Ranks