1 / 27

DESIGNING COLLABORATIVE APPLICATIONS

DESIGNING COLLABORATIVE APPLICATIONS. Modeling Single and Multi-User Interactions Design Dimensions Coupling Concurrency Control Undo/Redo. Application. Active Display. User. MODELING SINGLE-USER INTERACTION. Flexible Commitment. Editing Commands. Application. Active Display.

keilah
Télécharger la présentation

DESIGNING COLLABORATIVE APPLICATIONS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Application Active Display User MODELING SINGLE-USER INTERACTION Flexible Commitment Editing Commands

  3. Application Active Display Active Display User 1 User 2 MODELING MULTI-USER INTERACTION Coupling Concurrency Control Editing Commands Editing Commands 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 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 User 2

  7. STRICT WYSIWIS COUPLING User 1 Pros • Easy to understand • Application-independent • Automatable Cons • Window and scroll wars • Size and view wars • Communication Overhead User 2

  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. Allow Concurrent Operations? Controlled (Locks) Free FREE VS. CONTROLLED • Lock Granularity • Explicit/Implicit Locking • Releasing the Lock • Social Protocol • Display Consistency Mechanism?

  13. Session Application Window Paragraph/Drawing Char LOCK GRANULARITY DCS XTV Ensemble GroupKit Fine-grained Variable-grained Coarse-grained (Floor Control) Finer Control  Locking Overhead

  14. Explicit Selection-implied Key-implied (no failure) Dragging-implied (no failure) Dragging-implied EXPLICIT/IMPLICIT LOCKING Lock O Append O, E1 Delete O, E2 Unlock O Select Object  Lock + Select Object Move Object Resize Object Unselect Object  Unselect + Unlock Object Press Key -> Lock Buffer + Insert Character Release Key  Unlock Buffer Stop Dragging  Lock + Drag + Unlock Object Start Dragging  Lock Object + Start Dragging Move Object Stop Dragging  Stop Dragging + Unlock Object

  15. Non-Preemptive Preemptive Tickle-Locks RELEASING LOCKS Lock O Insert O, E1 Delete O, D1 Unlock O Lock O Insert O, E1 Lock O Insert O, E1 t > T Lock O Insert O, E2 … Lock O Insert O, E2 … Lock O Insert O, E2 … Pro: Consistency Pro: Low Wait Time Pro: Priority Con: Accidental Locking System: MMConf System: CES

  16. SEMANTIC ISSUES  Coupling  Concurrency Control Multi-User Undo/Redo

  17. Undo Reasons Single-User Multi-User MULTI-USER UNDO • Recover from • self errors • system errors • Explore alternatives • Recover from • others errors • system errors • Replay facility for newcomers

  18. Single-User Undo Coupling Concurrency Control Multi-User Undo Linear Single-User Undo Model WYSIWIS Coupling Model MULTI-USER UNDO FACTORS

  19. SINGLE-USER UNDO MODEL C3 C3 C3 C3 C3 C2 C2 C2 C2 C2 C2 C1 C1 C1 C1 C1 C1 C1 C1 C2 C3 Undo Redo Undo Redo

  20. Undo GLOBAL (LAST COMMAND) UNDO Semantics C3 C3 C3 C3 C2 C2 C2 C2 C2 C2 C1 C1 C1 C1 C1 C1 C3 Undo or

  21. Delete O2, e2 Delete O2, e2 GLOBAL (LAST COMMAND) UNDO Disjoint Manipulation Insert O3, e2 Insert O3, e2 O1 O2 O3 Undo Insert O1, e1 Insert O1, e1

  22. Undo Undo GLOBAL (LAST COMMAND) UNDO Concurrent Manipulation C3 C3 C2 C2 Atomic Broadcast C1 C1 & C3 C2 C2 Non-Atomic Broadcast C1 C1 C3 & C3 C2 C2 C3 C1 C1

  23. C2 C2 C2 C2 C2 C2 LOCAL, CORRESPONDING UNDO Semantics C3 C3 C3 C3 C1 C1 C1 C1 C1 C1 C3 Undo

  24. Undo Resize O C4 C4 C4 C4 C4 C4 C4 C4 Rotate O C2 C2 C2 C2 C2 C2 C2 C2 Undoing Non-Last Command Undo Undo Move O C3 C3 C3 C3 C3 C3 C3 C3 Create O C1 C1 C1 C1 C1 C1 C1 C1 Dependent action cannot be undone!

  25. C2 C2 C2 C2 C2 C2 SELECTIVE, CORRESPONDING UNDO By Reference Undo Undo (C1) C3 C3 C3 C3 C3 C3 C1 C1 C1 C1 C1 C1

  26. Rotate O1 Create O2 Rotate O1 SELECTIVE, CORRESPONDING UNDO By Filter Rotate O2 Filter (Blue User) Create O1 Filter (O1) Rotate O2 Create O1 Create O1

  27. SEMANTIC ISSUES  Coupling  Concurrency Control  Multi-User Undo/Redo

More Related