Fall '04, TR 11:00-12:15, SN 155
Office hours: TR, 4-5pm, available any time for short questions, or make an appointment.
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.
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.
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.
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.
The following is a tentative list of topics we will cover.
· Being there
· Beyond being there
· Example tasks
· Sharing of framebuffer, window, widget, and model layers.
· Compression and flow control
· Basic coupling, session management, concurrency control, and access control
· Example collaboration tasks
· Performance experiments
· User experiments
· 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
· Locking & floor control
· Operation transformation
· Structured objects
· Typed objects
· File and object merging
· Undo vs. operation transformation
· Undo vs. asynchronous coupling
· 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
· Caching and replication
· Zipper architecture
· Flexible architecture
· Fine-grained layers
· Dynamic architecture
· Multiple telepointers
· Multi-user commands
· Privacy issues
· Extending the HTTP protocol
· Notifying clients
· Web caches
Collaborative Filtering/Recommender Systems
· News ratings and architecture
· Other Applications
· Collaborative filtering vs. data mining