Comp 790-063: Implementing Distributed Collaborative Systems
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. |
Prasun Dewan |
Office: FB 150 Phone: 919-962-1823 Email: dewan@cs.unc.edu Office Hours: MW
3:30-4:30pm |
Room: SN 115 |
Time: MW – 2-3:15pm |
|
Unit ( Start Date) |
Slides |
Chapters |
Videos |
Assignment |
Introductory
Demos (Aug 22, 27) |
|
|
|||
|
Scope (Aug 29, Sep 5) |
|
|
|
|
|
ColabUIProperties (Sep 10) |
|
|
|
|
1-User Interfaces (Sep 10, 12, 17, 19, 24) |
|
||||
|
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) |
|
|
||
|
Consistency
(11/5, 11/12, 11/14, 11/19) |
|
|
||
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ObjectEditor |
|
|
|
|
|
|
|
|