Collaboration Systems
Prasun Dewan
Department of Computer Science
University of North Carolina
CB 3175 Sitterson Hall
Chapel Hill, NC 27599-3175
[email protected]
http:/www.cs.unc.edu/~dewan
10/3/2015
290-63:Overview
1
Issues


Advanced?
Writing
 Integrated

with 291
Programming
 Careful
Vs Bulk
 Combined with 243



10/3/2015
Presentation
Pick a Project Quickly
Nature of Area
290-63:Overview
2
Overview





10/3/2015
Why Collaborative Applications?
Related Areas
Nature of System Support
Concrete Examples
Lessons
290-63:Overview
3
Benefits: Towards Being There
Face-to-Face
Interaction
Computer-Supported
Interaction
Network
10/3/2015
290-63:Overview
4
Gesture Cam: Remote Surrogate
10/3/2015
290-63:Overview
5
Benefits: Beyond Being There
Face-to-Face
Interaction
Hollan &
Stornetta ‘92
Computer-Supported
Interaction
Network
10/3/2015
290-63:Overview
6
Action Workflow
Schedule Interview
Status By
Candidate
Workflow Step
Director
2
1
Director
10
9
4
Manager
Declare Assessment
10/3/2015
3
Manage
Manager
Review
5
7
6
8
Director
Manager
Manager
Technical
Directors
Submit Evaluation Form
290-63:Overview
7
Dual Collaboration Goals


10/3/2015
Towards Being There
Beyond Being There
290-63:Overview
8
Collaboration Vs Virtual
Environments
Shared Whiteboard
Nanomanipulator
Remote VE
VE
Collaborative
Applications
Immersive VE
Telepresence
10/3/2015
Asynchronous/ FaceColab.
Nanomanipulator to-face Collaboration
290-63:Overview
9
Collaboration Vs Real-Time &
Distributed Apps.
Multi-Mouse
Whiteboard
Factoring Prime
Numbers
Audio/Video
Conferencing
Distributed
Applications
Collaborative
Applications
Real-Time
Applications
Lotus Notes
10/3/2015
Shared Whiteboard
Colab VE
290-63:Overview
Embedded Systems
10
Collaboration Vs Mobile Apps.
Disconnected Shared Editing
with Syncing
Collaborative
Applications
Disconnected Editing with
Syncing
Mobile
Applications
Shared Notebook
10/3/2015
290-63:Overview
Electronic Notebook
11
Relationship with Object-Oriented
and User Interface- Technology
Interactive
Applications
Collaborative
Applications
O-O
Applications
Beans
Collaborative
Beans
Model-View-Controller
Model-View-ControllerCoupler, Jitter Manager,290-63:Overview
...
10/3/2015
12
System Support
Applications
Existing
Applications
Interoperability
10/3/2015
Extensibility/Composability
Performance/Resource Management
Functionality
Windows Apps
Competing
Systems
User Interface
Distribution
Coupling
System Support
290-63:Overview
13
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
X, Windows, Java Apps.
10/3/2015
290-63:Overview
14
Shared Window System
+ Tightly-Coupled Meetings
+ Easy to Understand
Application
+ Application-Independent
+ Automatable
WYSIWIS
Window
Window
Coupling
User 1
10/3/2015
Audio/Video
290-63:Overview
User 2
15
Centralized Architecture
XTV (‘88)
VConf (‘87)
Rapport (‘88)
NetMeeting
X Client
Pseudo Server
X Server
User 1
10/3/2015
Pseudo Server
X Server
User 2
290-63:Overview
16
Shared Window System
+ Tightly-Coupled Meetings
+ Easy to Understand
Application
+ Application-Independent
- Scroll Wars
- Window Wars
- No Flexibility
- Performance
- Consistency
+ Automatable
WYSIWIS
Window
Window
Coupling
User 1
10/3/2015
Audio/Video
290-63:Overview
User 2
17
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
X, Windows, Java Apps.
10/3/2015
290-63:Overview
18
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Beyond WYSIWIS
10/3/2015
290-63:Overview
19
Flexible Model of Collaboration
User
Application
Session
Management
Window
Version 1
Coupling
Window
Version 1
Merging
Undo/Redo
Awareness
CC/AC
10/3/2015
User 1
290-63:Overview
User 2
20
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Coupling, Merging, Diffing, Undo,
User Interface, Security, Concurrency
Control
10/3/2015
290-63:Overview
21
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Distributed Architecture, Jitter &
Latency Control
10/3/2015
290-63:Overview
22
XTV Centralized Architecture
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
10/3/2015
290-63:Overview
Handheld
23
Migration
X Client
10/3/2015
Pseudo
Server
Pseudo
Server
Pseudo
Server
X Server
X Server
X Server
User 2
User 3
User 4
Laptop
Handheld
290-63:Overview
Handheld
24
Migration
X Client
Pseudo
Server
Pseudo
Server
X Server
X Server
User 3
User 4
Handheld
10/3/2015
290-63:Overview
Handheld
25
Centralized -> Replicated
X Client
Pseudo
Server
Pseudo
Server
X Server
X Server
User 3
User 4
Handheld
10/3/2015
X Client
290-63:Overview
Handheld
26
Replication -> 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
10/3/2015
290-63:Overview
Handheld
27
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Distributed Architecture, Jitter &
Latency Control
10/3/2015
290-63:Overview
28
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
10/3/2015
Performance/Resource Management
Functionality
System Support
290-63:Overview
29
Monolithic System
Pseudo Server
Suite
Shared Windows
Merging
Logging
Coupling
Replication
User-Interface
10/3/2015
290-63:Overview
30
Component-based System
Pseudo Server
Suite
Shared Windows
Merging
Logging
Coupling
Replication
User-Interface
Logging
10/3/2015
290-63:Overview
31
Composability

A logging service can dynamically compose with different
instances of a client.
XTV 1
Logging
Service
XTV 2
Logging
Service

A client can dynamically compose with different instances of a
server.
XTV
Logging
Service
10/3/2015
290-63:Overview
32
Genericity

A logger can compose with different loggables at different
levels of abstraction.
XTV
Logging
Service
Suite
10/3/2015
290-63:Overview
33
Generic API
S p e c ific U I p ro to c o l
G e n e ric U I p ro to c o l
A p p lic a tio n
C lie n t
Logger
L o g g a b le
U ser
In te rfa c e
S e rv e r
10/3/2015
290-63:Overview
U ser
In te rfa c e
S e rv e r
34
Ease of Programming
X Client
X UI Protocol
Specialized Logging
Service
XTV
Other
Services
X UI Protocol
X Servers
(a) XTV Implementing Latecomer Service
X Client
X UI Protocol
Generic Logging
Service
Generic UI
Protocol
Interface
to Logger
(Translation)
XTV
Other
Services
X UI Protocol
X Servers
(b) XTV Using Logger for Latecomer Service
10/3/2015
290-63:Overview
35
Connection Bus
Pseudo Server
Suite
Shared Windows
Merging
Logging
Replication
Collaboration
Bus
Coupling
User-Interface
Connection
Facets
10/3/2015
290-63:Overview
36
Proxy Support
Model
10/3/2015
Out
In
290-63:Overview
Model
37
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Generic Interfaces, Design Patterns, Connection
Managers
10/3/2015
290-63:Overview
38
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Coupling, Concurrency Control,
Merging, Access Control
10/3/2015
290-63:Overview
39
Interoperation
Our Organization’s
Collaborative
Spreadsheet
User 1
User 2
Interoperation
Your Organization’s
Collaborative
Spreadsheet
User 3
User 4
Interoperation Example
Habanero Spreadsheet
WYSIWIS
Coupler
Floor
Controller
Custom Spreadsheet
Spreadsheet
Model
Lock
Controller
Flexible
Coupler
Spreadsheet Spreadsheet
Replica
Replica
User 1
User 2
Spreadsheet
View
User 3
Spreadsheet
View
User 4
Interoperating Coupling
Dynamic
Composition
Local Semantics
Preserved
Spreadsheet
Model
WYSIWIS
Coupler
Flexible
Coupler
Spreadsheet Spreadsheet Spreadsheet
Replica
Replica Replica/View
User 1
User 2
Dummy
User
Spreadsheet
View
User 3
Spreadsheet
View
User 4
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
Performance/Resource Management
Functionality
System Support
Coupling, Concurrency Control,
Merging, Access Control
10/3/2015
290-63:Overview
43
System Support
Applications
Existing
Interoperability
Applications
Extensibility/Composability
10/3/2015
Performance/Resource Management
Functionality
System Support
290-63:Overview
44
Lessons

Being there
 NetMeeting,
Shared whiteboards,
video-conferencing successful

Beyond Being there
 Communication
Flexibility
Needed
 Software
Inspection Review
 Control
 Workflow
10/3/2015
290-63:Overview
45
Life Cycle


Mostly
Asynchronous





Requirements
Design
Programming
Debugging
Testing
Review
Maintenance
Mostly
Synchronous
Integration of Sync and Async
Integration of Life Cycle Steps
10/3/2015
290-63:Overview
46
Lessons

Flexibility
 New
area explored faster
 Training needed
 Exploratory
Environment
• How to see effects on other users
– textual descriptions
– animations
– network simulations?
10/3/2015
290-63:Overview
47
Lessons

Infrastructure
 XTV
 Suite
 Rendezvous
Constraint-based
languages
 Lotus Notes
 GroupKit
 Java Enterprise Beans
 Java Shared Data API

10/3/2015
Make different tradeoffs
290-63:Overview
48
Favoring Automation/Reusability
XTV
Programmer
User
Favoring Performance/Flexibility
Suite
Programmer
User
Lessons

Reuse Importance
 NetMeeting,

X
Flexibility Importance
 Shared
Whiteboards,
Chat, Lotus Notes
10/3/2015
290-63:Overview
51
Composibility of Generic Interfaces
is Useful
Access
Control
Coupler
Generic
User
Interface
Bus
Agent
Spreadsheet
Spreadsheet
User
Interface
Usefulness of
Interoperation?
Our Organization’s
Collaborative
Spreadsheet
User 1
User 2
Interoperation
Your Organization’s
Collaborative
Spreadsheet
User 3
User 4
Composition, Interoperation Related
Habanero
Spreadsheet
Translator
Interoperation example
Specific
Logging
Specific
to
Generic
Bus
Spreadsheet
Interoperation uses Composition
Generic Logging
Server
Client
Composition Example
Composition Uses Interoperation
Java Experience








Portability
Introspection Support
Interfaces
JSDA
Swing
RMI
Version Evolution
Existing Colab Systems
Powerful but slow!
Lessons

Infrastructure is Important
 ICICLE
built from scratch
 CIS, CAIS built using Suite
10/3/2015
290-63:Overview
56
9.
References
Given below are references to papers from which some of this material is drawn.
These include three
survey papers I have written on desiging [12] and implementing
[11,14] collaborative applications, papers on
the following collaborative applications:
Grove [17], PREP [34,35], GroupSketch and GroupDraw [23] MUD [8],
Coordinator/ActionWorkflow [33], Quilt [19], and FLECSE [10]; papers on the following issues:
Session
Management [16], Coupling [13], Undo [3,6,37], and Awareness [15,20,28] and papers on the following
collaboration systems:
Team Workstation [25], Xerox's Colab programming environment [38], VConf [31], Rapport
[18], XTV [1], Shared X [21], MMConf [7], Rendezvous [24], Suite [9], ISIS [4], Coda [29], Rover [27],
GroupDesk [20] and PLAYBACK [32].
[1]
Hussein Abdel-Wahab and Kevin Jeffay, "Issues, Problems and Solutions in Sharing X
Clients on Multiple Displays," Internetworking: Research and Experience 5 (94), pp.
1-15.
[2]
Steve Benford, Chris Brown, Gail Reynard, and Chris Greenhalgh, "Shared Spaces:
Transportation, Artificiality, and Spatiality," Proceedings of the ACM Conference on
Computer Supported Cooperative Work, November 1996, pp. 77-86.
[3]
Thomas Berlage, "A Selective Undo Mechanism for Graphical User Interfaces," ACM
Transactions on Computer-Human Interaction 1:3 (September 1994), pp. 269-294.
[4]
K. Birman and T. Joseph, "Exploiting Virtual Synchrony in Distributed Systems,"
Proceedings of the Eleventh ACM Symposium on Operating Systems Principles, 8-11
November 1987, pp. 123-138.
In ACM Operating Systems Review 21:5.
[5]
W. Buxton and A. Sellen, "Interfaces for Multiparty Video Conferences," Technical
Report , University of Toronto, 191.
[6]
Rajiv Choudhary and Prasun Dewan, "A General Multi-User Undo/Redo Model," Proceedings
of European Conference on Computer Supported Work, October 1995, pp. 231-246.
[7]
Terrence Crowley, Paul Milazzo, Ellie Baker, Harry Forsdick, and Raymond Tomlinson,
"MMConf: An Infrastructure for Building Shared Multimedia Applications," Proc. of ACM
Conference on Computer Supported Cooperative Work, October 1990, pp. 329-342.
10/3/2015
290-63:Overview
57
[8]
Pavel Curtis, "Muddings: Social Phenomena in Text-Based Virtual Reality," CSL-92-4, Xerox Palo
Alto Research Center, 1992.
[9]
Prasun Dewan and Rajiv Choudhary, "A High-Level and Flexible Framework for Implementing
Multiuser User Interfaces," ACM Transactions on Information Systems 10:4 (October 1992), pp.
345-380.
[10] Prasun Dewan and John Riedl, "Toward Computer-Supported Concurrent Software Engineering," IEEE
Computer 26:1 (January 1993),
pp. 17-27.
[11] Prasun Dewan, "Tools for Implementing Multiuser User Interfaces ," Trends in Software: Issue on
User Interface Software 1, Wiley (1993), pp. 149-172.
[12] Prasun Dewan, Rajiv Choudhary, and HongHai Shen, "An Editing-based Characterization of the
Design Space of Collaborative Applications," Journal of Organizational Computing 4:3 (1994),
pp. 219-240.
[13] Prasun Dewan and Rajiv Choudhary, "Coupling the User Interfaces of a Multiuser Program," ACM
Transactions on Computer Human Interaction 2:1 (March 1995), pp. 1-39.
[14] Prasun Dewan, "Multiuser Architectures," Proc. of IFIP WG2.7 Working Conference on Engineering
for Human-Computer Communication, August 1995, Chapman & Hall, 1996, pp. 247-270.
[15] Paul Dourish and Sarah Bly, "Portholes: Supporting Awareness in a Distributed Work Group,"
Proceedings of CHI '92., 1992, pp. 541-547.
[16] Keith Edwards, "Session Management for Collaborative Applications," Proceedings of the ACM
Conference on Computer Supported Cooperative Work, October 1994, pp. 323-330.
[17] Clarence A. Ellis, Simon J. Gibbs, and Gail L. Rein, "Groupware: Some Issues and Experiences,"
CACM 34:1 (January 1991), pp. 38-58.
[18] J.R. Ensor, S.R. Ahuja, D.N. Horn, and S.E. Lucco, "The Rapport Multimedia Conferencing System:
A Software Overview," Proceedings of the 2nd IEEE Conference on Computer Workstations, March
1988, pp. 52-58.
10/3/2015
290-63:Overview
58
[19] R. Fish, R. Kraut, M. Leland, and M. Cohen, "Quilt: a Collaborative Tool for Cooperative Writing,"
Proceedings of ACM SIGOIS Conference, 1988, pp. 30-37.
[20] Ludwig Fuchs, Uta Pankoke-Babatz, and Wolfgang Prinz, "Supporting Cooperative Awareness with Local Event
Mechanisms," Proceedings of European Conference on Computer Supported Work, October 1995, pp. 247-262.
[21] Daniel Garfinkel, Bruce Welti, and Thomas Yip, "HP Shared X: A Tool for Real-Time Collaboration,"
Hewlett-Packard Journal, April 1994, pp. 23-24.
[22] T.C. Nicholas Graham, Tore Urnes, and Roy Nejabi, "Efficient Distributed Implementation of SemiReplicated Synchronous Groupware ," Proceedings of the Ninth Conference on User Interface Software and
Technology, October 1996, pp. 1-10.
[23] Saul Greenberg, Mark Roseman, Dave Webster, and Ralph Bohnet, "Issues and Experiences Designing and
Implementing Two Group Drawing Tools," Proceedings of 25th Annual Hawaii International Conference on System
Sciences, January 1992, pp. Vol. 4: 139-150.
[24] Ralph Hill, Tom Brinck, Steven Rohall, John Patterson, and Wayne Wilner, "The Rendezvous Architecture and
Language for Constructing Multiuser Applications," ACM Transactions on Computer Human Interaction 1:2 (June
1994).
[25] Hirsoshi Ishii and Masaaki Ohkubo, "Design of a Team Workstation," Multi-User Interfaces and Applications,
North Holland, , pp. 131-142.
[26] Hiroshii Ishii and Minoru Kobayashi, "Integration of Inter-Personal and Shared Workspace: Clearboard Design
and Experiments," Proceedings of the ACM Conference on Computer Supported Cooperative Work, November 1992, pp.
33-42.
[27] Anthony D. Joseph, Alan F. deLespinasse, Joshua A. Tauber, David K. Gifford, and M. Frans Kaashoek,
"Rover: A Toolkit for Mobile Information Access," Proceedings of the 15th Symposium on Operating System
Principles, 1995.
[28] Alain Karsenty, Christophe Tronche, and Michel Beaudouin-Lafon, "GroupDesign: Shared Editing in a
Heterogeneous Environment," Usenix Computing Systems 6:2 (Spring 1993), pp. 167-195.
10/3/2015
290-63:Overview
59
[29] J. J. Kistler and M. Satyanaraynan, "Disconnected Operation in the Coda File System,"
ACM Transactions on Computer Systems 10:1 (February 1992), pp. 3-25.
[30] Hideaki Kuzuoka, Toshio Kosuge, and Masatomo Tanaka, "GestureCam: A Video Communication
System for Sympathetic Remote Collaboration," Proceedings of the ACM Conference on
Computer Supported Cooperative Work, October 1994, pp. 35-43.
[31] J.C. Lauwers and K.A. Lantz, "Collaboration Awareness in Support of Collaboration
Transparency: Requirements for the Next Generation of Shared Window Systems,"
Proceedings of ACM CHI'90, April 1990, pp. 303-312.
[32] Nelson R. Manohar and Atul Prakash , "The Session Capture and Replay Paradigm for
Asynchronous Collaboration," Proceedings of European Conference on Computer Supported
Work, October 1995, pp. 149-164.
[33] Raul Medina-Mora, Terry Winograd, Rodrigo Flores, and Fernando Flores, "The Action
workflow Approach to Workflow Technology," ACM CSCW'92 Proceedings, October 1992, pp.
281-288.
[34] Christine M. Neuwirth, David S. Kaufer, Ravinder Chandok, and James H. Morris, "Issues
in the Design of Computer Support for Co-authoring and Commenting," Proceedings of ACM
Conference on Computer Supported Cooperative Work, October 1990, pp. 183-195.
[35] Christine M. Neuwirth, Ravinder Chandok, David S. Kaufer, Paul Erion, James H. Morris,
and Dale Miller, "Flexible Diff-ing in a Collaborative Writing System," Proceedings of
ACM Conference on Computer Supported Cooperative Work, October 1992, pp. 147-154.
[36] Ken-ichi Okada, Fumihiko Maeda, Yusuke Ichikawaa, and Yutaka Maatsushita, "Multiparty
Videoconferencing at Virtual Social Distance: MAJIC Design," Proceedings of the ACM
Conference on Computer Supported Cooperative Work, October 1994, p. 385-393.
[37] Atul Prakash and Michael J. Knister, and December 1994, "A Framework for Undoing
Actions in Collaborative Systems," ACM Transactions on Computer-Human Interaction, pp.
295-330.
10/3/2015
290-63:Overview
60
[38] Mark Stefik, Gregg Foster, Daniel G. Bobrow, Kenneth Kahn, Stan Lanning, and Lucy Suchman,
"Beyond the Chalkboard: Computer Support for Collaboration and Problem Solving in
Meetings," CACM 30:1 (January 1987), pp. 32-47.
[39] Dadong Wan and Philip M. Johnson, "Computer Supported Collaborative Learning Using CLARE:
the Approach and Experimental Findings," Proceedings of the ACM Conference on Computer
Supported Cooperative Work, October 1994, pp. 187-198.
10/3/2015
290-63:Overview
61
Combining Benefits
Client
Serverdefined
Protocol
Server
Traditional
Approach
introspects
Client
App.defined
Protocol
Server
Bean
Approach
Composition and
Interoperation Related
Lock to Floor
Habanero
Spreadsheet
Floor to Lock
Bus
Spreadsheet
Interoperation Example
Specific
Logging
Specific
to
Generic
Client
Composition Example
Generic Logging
Server
Concurrency Control Policy 1
FloorControlSystem
User 1
User 2
False User 3
LockConrolSystem
User 4
10/3/2015
290-63:Overview
User 5
User 6
64
Concurrency Control Policy 2
LockControlSystem
False User 1
User 2
User 3
FloorConrolSystem
User 4
10/3/2015
User 5
User 6
290-63:Overview
65
Proxies
Events Generated:
LockRequestedEvent
LockAcquiredEvent
LockReleasedEvent
LockToFloo
r
Proxy
Invoke methods:
AcquireFloor
ReleaseFloor
Lock
Manager
Floor
Controller
System 1
(Spreadsheet)
Invoke Methods:
AcquireLock
ReleaseLock
System 2
(Spreadsheet)
Events Generated:
FloorRequestedEvent
FloorAcquiredEvent
FloorReleasedEvent
FloorToLoc
k
Proxy
Lock
Manager
System 1
(Spreadsheet)
10/3/2015
Floor
Controller
System 2
(Spreadsheet)
290-63:Overview
66
Descargar

Collaboration Bus: A System for Interoperating