CS 790-063: Distributed Collaboration

Prasun Dewan

Fall '06, TR 11:00-12:15, SN 155

Office hours: TR, 4-5pm, available any time for short questions, or make an appointment.

Overview

Today, collaboration software forms a rapidly growing area in research and industry as the vision of replacing physical travel with computer supported distributed collaboration is being effectively realized by these systems. In this course, we will look at issues in the design, implementation, and evaluation of these systems. At the end of the course, you will have a good understanding of successful collaboration software such VNC, NetMeeting, LiveMeeting, Webex, Google Spreadsheet, Writely, and Groove. In addition, you will learn in-depth several research concepts such as architectures, consistency, collaborative undo/redo, degree of synchrony, awareness, concurrency control, mobile collaboration, quality of service, security, and collaborative filtering. You will gain experience with using, implementing, and evaluating collaboration software; and surveying, writing about and presenting complex concepts.

Assignments

Students will  (a) watch and evaluate videos of collaborative systems, (b) collaboratively perform a distributed task with and without collaboration sofware ,  (c)  write and present a survey of three papers in this area, (d)  design, implement, and present  a collaboration software project. You are free to choose the project –look at the “Possible Projects” link from the course home page.

Relationship with Requirements

The paper you write can be the basis for meeting the survey-paper requirement. The software you develop can be the basis for fulfilling the program-product requirement. The new distribution requirements assume each course is classified into one of three areas: applications, theory, and systems. This course is on the borderline of systems and applications. It will draw on and build on mechanisms in traditional systems on how to implement collaboration software. However, the “softer” but surprising more challenging issue in this area is what policies should be implemented so that the end-users can collaborate effectively. The major portion of the lectures and your home-work will focus on this issue. Hence this course is classified in the application area.

Text and Reference Material

There is no text book covering this area I plan to distribute detailed PowerPoint slides for the material we cover in class. In addition, I will place reference papers in the Colab in Room 155.

Grading Policy

A grade will be assigned based on class exams (which will check if you have a basic understanding of the concepts covered in class), class participation, and the assignments.

Tentative Topics

The following is a tentative list of topics we will cover.

Introduction

Basic Design Concepts

·         Being there

·         Beyond being there

·         Taxonomies

·         Example tasks

Basic Implementation Concepts

·         Sharing of framebuffer, window, widget, and model layers.

·         Compression and  flow control

·         Basic coupling, session management, concurrency control, and access control

·         Firewalls

Basic Evaluation Concepts

·         Example collaboration tasks

·         Inspections

·         Performance experiments

·         User experiments

Session management

·         Invitation-based vs. Autonomous

·         Inviting mobile users

·         VR-based session management

Coupling, awareness and presence

·         Synchronous vs. asynchronous coupling.

·         Heterogeneous views

·         Heterogeneous devices

·         Coupling vs. user-interface flexibility

·         Coupling vs. awareness

·         Flexible diffing

·         Presence on mobile devices

Quality of service

·         Managing jitter and latency of telepointers

·         IPC mechanism vs. QOS

·         User interface to address poor QOS

·         Collaborative virtual environments

Consistency

·         Locking & floor control

·         Operation transformation

·         Structured objects

·         Typed objects

·         File and object merging

·         Hoarding

Undo

·         Undo vs. operation transformation

·         Undo vs. asynchronous coupling

Access control

·         Access-controlled RPC

·         Controlling editing operations.

·         Joint ownership

·         Collaborative and automatic access control

·         Digital rights

Reuse and Interoperability

·         Reusing existing window-based, toolkit-based, bean-based code.

·         Heterogeneous collaborating editors

·         Layer-independent I/O Distribution

·         Heterogeneous coupling and concurrency control

·         Heterogeneous session management

Architecture

·         Caching and replication

·         Zipper architecture

·         Flexible architecture

·         Fine-grained layers

·         Dynamic architecture

Single-display groupware

·         Multiple telepointers

·         Multi-user commands

·         Privacy issues

Web-based collaboration

·         Extending the HTTP protocol

·         Notifying clients

·         Web caches

Collaborative Filtering/Recommender Systems

·         News ratings and architecture

·         Other Applications

·         Collaborative filtering vs. data mining