Title: Collaboration Systems
1Collaboration Systems
Prasun Dewan
Department of Computer Science University of
North Carolina CB 3175 Sitterson Hall Chapel
Hill, NC 27599-3175 dewan_at_cs.unc.edu http/www.c
s.unc.edu/dewan
2Issues
- Advanced?
- Writing
- Integrated with 291
- Programming
- Careful Vs Bulk
- Combined with 243
- Presentation
- Pick a Project Quickly
- Nature of Area
- Look at Web Page
3Overview
- Why Collaborative Applications?
- Related Areas
- Nature of System Support
- Concrete Examples
- Lessons
4Benefits Towards Being There
Face-to-Face
Interaction
Computer-Supported
Interaction
Network
5Gesture Cam Remote Surrogate
6Benefits Beyond Being There
Face-to-Face
Hollan Stornetta 92
Interaction
Computer-Supported
Interaction
Network
7Action Workflow
Status By Candidate Workflow Step
Manage Review
Manager
Director
8Dual Collaboration Goals
- Towards Being There
- Beyond Being There
9Collaboration Vs Virtual Environments
VE
10Collaboration Vs Real-Time Distributed Apps.
Collaborative Applications
11Collaboration Vs Mobile Apps.
Mobile Applications
Collaborative Applications
12Relationship with Object-Oriented and User
Interface- Technology
Interactive Applications
O-O Applications
13System Support
Applications
Windows Apps
Competing Systems
Interoperability
Extensibility/Composability
Applications
Distribution
Performance/Resource Management
Functionality
Coupling
System Support
14System Support
Applications
Existing
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
X, Windows, Java Apps.
15Shared Window System
Application
Tightly-Coupled Meetings
Easy to Understand
Application-Independent
Automatable
Window
Window
WYSIWIS
Coupling
Audio/Video
User 1
User 2
16Centralized Architecture
XTV (88) VConf (87) Rapport (88) NetMeeting
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 1
User 2
17Shared Window System
Application
- Scroll Wars
Tightly-Coupled Meetings
- Window Wars
Easy to Understand
- No Flexibility
Application-Independent
- Performance
Automatable
- Consistency
Window
Window
WYSIWIS
Coupling
Audio/Video
User 1
User 2
18System Support
Applications
Existing
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
X, Windows, Java Apps.
19System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Beyond WYSIWIS
20Flexible Model of Collaboration
Application
Window Version 1
Window Version 1
User 1
User 2
21System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Coupling, Merging, Diffing, Undo, User Interface,
Security, Concurrency Control
22System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Distributed Architecture, Jitter Latency Control
23XTV Centralized Architecture
X Client
X Server
X Server
X Server
X Server
User 1
User 2
User 3
User 4
24Migration
X Client
Pseudo Server
Pseudo Server
Pseudo Server
X Server
X Server
X Server
User 2
User 3
User 4
Laptop
Handheld
Handheld
25Migration
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 3
User 4
Handheld
Handheld
26Centralized - Replicated
X Client
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 3
User 4
Handheld
Handheld
27Replication - Centralized
X Client
Pseudo Server
Pseudo Server
Pseudo Server
Pseudo Server
X Server
X Server
X Server
X Server
User 1
User 2
User 3
User 4
Laptop
Laptop
Handheld
Handheld
28System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Distributed Architecture, Jitter Latency Control
29System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
30Monolithic System
Suite
Pseudo Server
Shared Windows
Merging
Logging
Coupling
Replication
User-Interface
31Component-based System
Suite
Pseudo Server
Shared Windows
Merging
Logging
Coupling
Replication
User-Interface
Logging
32Composability
- A logging service can dynamically compose with
different instances of a client. - A client can dynamically compose with different
instances of a server.
Logging Service
XTV 1
XTV 2
Logging Service
XTV
Logging Service
33Genericity
- A logger can compose with different loggables at
different levels of abstraction.
XTV
Logging Service
Suite
34Generic API
35Ease of Programming
X Client
XTV
X UI Protocol
Specialized Logging Service
Other Services
X UI Protocol
X Servers
(a) XTV Implementing Latecomer Service
X Client
XTV
X UI Protocol
Generic Logging Service
Other Services
X UI Protocol
X Servers
(b) XTV Using Logger for Latecomer Service
36Connection Bus
Pseudo Server
Suite
Shared Windows
Merging
Logging
Coupling
Replication
User-Interface
37Proxy Support
38System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Generic Interfaces, Design Patterns, Connection
Managers
39System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Coupling, Concurrency Control, Merging, Access
Control
40Interoperation
Inter-operation
Our Organizations Collaborative Spreadsheet
Your Organizations Collaborative Spreadsheet
User 1
User 2
User 3
User 4
41Interoperation Example
Habanero Spreadsheet
Custom Spreadsheet
Flexible Coupler
User 1
User 2
User 3
User 4
42Interoperating Coupling
Dynamic Composition
Local Semantics Preserved
Spreadsheet Model
WYSIWIS Coupler
Flexible Coupler
Spreadsheet Replica
Spreadsheet View
Spreadsheet View
Spreadsheet Replica
User 1
User 2
User 3
User 4
43System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
Coupling, Concurrency Control, Merging, Access
Control
44System Support
Applications
Interoperability
Extensibility/Composability
Applications
Performance/Resource Management
Functionality
System Support
45Lessons
- NetMeeting, Shared whiteboards,
video-conferencing successful
- Communication
- Software Inspection Review
- Control
- Workflow
Flexibility Needed
46Life Cycle
- Requirements
- Design
- Programming
- Debugging
- Testing
- Review
- Maintenance
Integration of Sync and Async
Integration of Life Cycle Steps
47Lessons
- Flexibility
- New area explored faster
- Training needed
- Exploratory Environment
- How to see effects on other users
- textual descriptions
- animations
- network simulations?
48Lessons
- Infrastructure
- XTV
- Suite
- Rendezvous Constraint-based languages
- Lotus Notes
- GroupKit
- Java Enterprise Beans
- Java Shared Data API
49Favoring Automation/Reusability
XTV
Programmer
User
50Favoring Performance/Flexibility
Suite
Programmer
User
51Lessons
- Shared Whiteboards, Chat, Lotus Notes
52Composibility of Generic Interfaces is Useful
Generic User Interface
Access Control
Spreadsheet
Bus Agent
Coupler
53Usefulness of Interoperation?
Inter-operation
Our Organizations Collaborative Spreadsheet
Your Organizations Collaborative Spreadsheet
User 1
User 2
User 3
User 4
54Composition, Interoperation Related
Habanero Spreadsheet
Bus Spreadsheet
Interoperation uses Composition
Interoperation example
Specific Logging Client
Generic Logging Server
Composition Uses Interoperation
Composition Example
55Java Experience
- Portability
- Introspection Support
- Interfaces
- JSDA
- Swing
- RMI
- Version Evolution
- Existing Colab Systems
- Powerful but slow!
56Lessons
- Infrastructure is Important
- ICICLE built from scratch
- CIS, CAIS built using Suite
57(No Transcript)
58(No Transcript)
59(No Transcript)
60(No Transcript)
61(No Transcript)
62Combining Benefits
Server
Client
Bean Approach
63Composition and Interoperation Related
Bus Spreadsheet
Habanero Spreadsheet
Interoperation Example
Specific Logging Client
Generic Logging Server
Composition Example
64Concurrency Control Policy 1
FloorControlSystem
User 1
User 2
False User 3
LockConrolSystem
User 4
User 5
User 6
65Concurrency Control Policy 2
LockControlSystem
False User 1
User 2
User 3
FloorConrolSystem
User 4
User 5
User 6
66Proxies