CS 290-063: Collaborative Systems

Prasun Dewan

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

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

Overview

Today, collaborative systems form a rapidly growing 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 – both specific applications and generic infrastructures. At the end of the course, you will have a good understanding of successful collaboration software such VNC, NetMeeting, Groove, LiveMeeting and Webex. In addition, you will learn in-depth several research concepts such as architectures, consistency, collaborative undo/redo, degree of synchrony, awareness, concurrency control, quality of service, mobile collaboration, security, and collaborative filtering. You will gain experience with using, implementing, and evaluating collaboration software; and writing about and presenting concepts in this area.

Text and Reference Material

There is no text book covering collaborations systems. 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.

Assignments

You will watch and comment on videos of collaborative systems, use a collaborative application to perform a distributed task, program a collaboration infrastructure to build an actual application, and design, implement and present a complex software project. You are free to choose an appropriate software project. Look at the “Possible Projects” link from the course home page.

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), assignments, presentations and papers.

Tentative Schedule

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

Introduction

Collaborative applications

·        Being there

·        Beyond being there

·        Taxonomies

·        Example tasks

Collaborative infrastructures

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

·        Compression and  flow control

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

·        Firewalls

Evaluation

·        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