Presentation is loading. Please wait.

Presentation is loading. Please wait.

DESIGNING COLLABORATIVE APPLICATIONS Modeling Single and Multi-User Interactions Design Dimensions Coupling Concurrency Control Undo/Redo.

Similar presentations


Presentation on theme: "DESIGNING COLLABORATIVE APPLICATIONS Modeling Single and Multi-User Interactions Design Dimensions Coupling Concurrency Control Undo/Redo."— Presentation transcript:

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


Download ppt "DESIGNING COLLABORATIVE APPLICATIONS Modeling Single and Multi-User Interactions Design Dimensions Coupling Concurrency Control Undo/Redo."

Similar presentations


Ads by Google