Download presentation
Presentation is loading. Please wait.
Published byPatrick Joslin Modified over 9 years ago
1
DESIGNING COLLABORATIVE APPLICATIONS Modeling Single and Multi-User Interactions Design Dimensions Coupling Concurrency Control Undo/Redo
2
MODELING SINGLE-USER INTERACTION Application Active Display User Editing Commands Flexible Commitment
3
MODELING MULTI-USER INTERACTION ApplicationActive Display User 1 Active Display User 2 Editing Commands Coupling Concurrency Control Undo/Redo
4
DESIGN DIMENSIONS – SEMANTIC ISSUES Session Management Single-User Interface Coupling Access Control Concurrency Control Process Control Merging Undo/Redo Awareness Focus
5
SEMANTIC ISSUES Coupling Concurrency Control Multi-User Undo/Redo
6
STRICT WYSIWIS COUPLING User 1 User 2 If user 1 moves green window Then green window moves on user 2’s screen If user 2 scrolls up in orange window Then orange window scrolls up on user 2’s screen
7
STRICT WYSIWIS COUPLING User 1 User 2 Pros Easy to understand Application-independent Automatable Cons Window and scroll wars Size and view wars Communication Overhead
8
COUPLING OF UNEXPOSED REGIONS?
9
RELAXED WYSIWIS COUPLING Independent Window Positions Independent Window State
10
SEMANTICS COUPLING
11
SEMANTIC ISSUES Coupling Concurrency Control Multi-User Undo/Redo
12
Lock Granularity Explicit/Implicit Locking Releasing the Lock Social Protocol Display Consistency Mechanism? FREE VS. CONTROLLED Controlled (Locks)Free Allow Concurrent Operations?
13
Session Application Window Paragraph/Drawing LOCK GRANULARITY Char Fine-grained Coarse-grained (Floor Control) Variable-grained Ensemble GroupKit DCS XTV Finer Control Locking Overhead
14
EXPLICIT/IMPLICIT LOCKING ExplicitSelection-implied Lock O Append O, E1 Delete O, E2 Unlock O Select Object Lock + Select Object Move Object Resize Object Unselect Object Unselect + Unlock Object Key-implied (no failure) Press Key -> Lock Buffer + Insert Character Release Key Unlock Buffer Dragging-implied (no failure) Stop Dragging Lock + Drag + Unlock Object Dragging-implied Start Dragging Lock Object + Start Dragging Move Object Stop Dragging Stop Dragging + Unlock Object
15
Con: Accidental Locking Pro: Low Wait Time Pro: Priority Pro: Consistency Lock O Insert O, E1 Delete O, D1 Unlock O Lock O Insert O, E2 … Lock O Insert O, E1 Lock O Insert O, E2 … Lock O Insert O, E1 Lock O Insert O, E2 … RELEASING LOCKS Non-PreemptivePreemptiveTickle-Locks t > T System: MMConfSystem: CES
16
SEMANTIC ISSUES Coupling Concurrency Control Multi-User Undo/Redo
17
MULTI-USER UNDO Undo Reasons Single-UserMulti-User Recover from self errors system errors Explore alternatives Recover from others errors system errors Replay facility for newcomers
18
MULTI-USER UNDO FACTORS Multi- User Undo Single-User Undo Coupling Concurrency Control Linear Single-User Undo Model WYSIWIS Coupling Model
19
SINGLE-USER UNDO MODEL C1 C2 C1 C2 C3 C1 C2 C3 C1 C2 C3 C1 C2 C3 C1 C2 C3 C1C2C3Undo Redo
20
GLOBAL (LAST COMMAND) UNDO C1 C2 C1 C2 C3 C1 C2 C3 C1 C2 C1 C2 C3 C1 C2 C3 Undo Semantics Undo or
21
GLOBAL (LAST COMMAND) UNDO O1 O3 Insert O1, e1 Delete O2, e2 Insert O3, e2 Undo Insert O1, e1 Delete O2, e2 Insert O3, e2 Disjoint Manipulation O2
22
GLOBAL (LAST COMMAND) UNDO C1 C2 C1 C2 C3 C1 C2 C3 C1 C2 Concurrent Manipulation C1 C2 C3 C1 C2C3 & Undo C3 & Undo Atomic Broadcast Non-Atomic Broadcast
23
LOCAL, CORRESPONDING UNDO C1 C2 C1 C2 C3 C1 C2 C3 C1 C2 C1 C2 C3 C1 C2 C3 Undo Semantics
24
Undoing Non-Last Command Create O Rotate O Move O Resize O C1 C2 C1 C2 C3 C4 C3 C4 C1 C2 C1 C2 C3 C4 C3 C4 C1 C2 C1 C2 C3 C4 C3 C4 C1 C2 C1 C2 C3 C4 C3 C4 Undo Dependent action cannot be undone!
25
SELECTIVE, CORRESPONDING UNDO C1 C2 C3 C1 C2 C3 By Reference C1 C2 C3 C1 C2 C3 C1 C2 C3 C1 C2 C3 UndoUndo (C1)
26
SELECTIVE, CORRESPONDING UNDO By Filter Rotate O2 Rotate O1 Create O2 Create O1 Rotate O2 Create O1 Rotate O1 Filter (Blue User) Filter (O1)
27
SEMANTIC ISSUES Coupling Concurrency Control Multi-User Undo/Redo
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.