Taxonomies of Collaborative Applications Prasun Dewan Department of
Taxonomies of Collaborative Applications Prasun Dewan Department of Computer Science University of North Carolina CB 3175 Sitterson Hall Chapel Hill, NC 27599 -3175 dewan@cs. unc. edu http: /www. cs. unc. edu/~dewan Dewan 290 -F 99 1
Dewan 290 -F 99 2
Ellis’s Time Space Taxonomy Same Space Same Time Different Time Dewan Different Space Tivoli Grove Ventura MUD Bulletin Board Email Augmented Reality File System 290 -F 99 3
RTCAL Vs Electronic Class Room Topic, Participants Chair, Controller Proposal: 10 am No Vote: Public Appts Dewan 290 -F 99 4
Shared Environment Ellis’s Shared Environment / Common Task Dimension Electronic Classroom Time Sharing Environment Software Review System Mail Common Task Dewan 290 -F 99 5
IBIS Vs Talk Vs Shared File *I: Which processor should be used ? P: Processor A AS: Fast *P: Processor B AS: Cheap, already in use * + Dewan 290 -F 99 6
Smith’s Dimensions • Information Type – intangible private, ephemeral, tangible instrumental, tangible target • Collaboration Time – seconds, minutes, hours, days, weeks, months, years • Space: – office, floor, site, 1 -hour travel, 1 -day travel • Agents – people, informal coalitions, team collections Dewan 290 -F 99 7
IBIS Vs Email *I: Which processor should be used ? P: Processor A AS: Fast *P: Processor B AS: Cheap, already in use Processor 2/24/99 Which one? (John Smith, responses) 2/25/99 Processor A (Mary Lowe, 1 response) 2/26/96 Processor B (Joe Doe) Meeting Time 2/24/96 10 am? (Mary Lowe, 1 response) Dewan 290 -F 99 8
Malone’s Coordination Taxonomy Facilitates 1 Dewan Coordination Goal Decomposition Task Assignment Recursive Allocation Synchronization Sequencing Coordinator Information Lens RTCAL 2 Group Decision Making Proposing Alternatives Evaluating Alternatives IBIS, PREP, Quilt 3 Communication Transporting Messages Routing email, Action. Workflow 4 Perception of Common Objects Grove, CES, RTCAL 290 -F 99 9
Hydra vs MAJIC MUDS Vs DIVE John has entered the room (hear footsteps) John says, “Hi everyone” Dewan User 3 290 -F 99 User 2 10
Benford’s VE Taxonomy Degree of Artificiality • Augmented Reality • Desktop CVEs • Projected CVEs • Immersive CVEs • Shared Application & Video Conf. • MAGIC • Physical Meeting • Video Conference • Hydra • Video Walls • Telepresence Degree of Transportation Dewan 290 -F 99 11
Concurrency Control • • RTCAL Grove CES Group. Draw Dewan 290 -F 99 Floor Control No Control Tickle Locks Optimistic Locks 12
Flexible Model of Collaboration User Application Session Management Window Version 1 Coupling Window Version 1 Merging Undo/Redo Awareness Dewan User 1 CC/AC 290 -F 99 User 2 13
Dewan 290 -F 99 14
Session Management Faculty Meeting 290 Lecture Distinguished Lecture talk jbs message from dewan, type talk dewan to join John has entered the room (hear footsteps) John says, “Hi everyone” Dewan 290 -F 99 User 3 User 2 15
Session Management Operations Add/Delete (App 3) Create/ Delete (Session 1) Session 1 App 2 User 1 App 3 Issue: How are these operations invoked? User 2 Join/Leave (User 2) Dewan 290 -F 99 16
Session Management • • • Telephone Talk Menu System MUDs DIVE Dewan 290 -F 99 Invitation Name-based Room-based Aura-based 17
Joining in Explicit Sessions Joining N App. Easy & General Applications Auto Notification Creator Controlled Invitation-based Joining Flexible Joining Name-based Joining Session 1 App 2 User 1 Rendezvous Group. Kit Dewan Session 1 App 3 App 1 User 2 Join User 2 App 2 User 1 RTCALAccept XTV 290 -F 99 App 3 User 2 Invite User 2 18
Implicit Sessions Session Joining/Leaving Side Effect of: • Artifacts being edited • Location in rooms • Intersection of auras in virtual environment Dewan 290 -F 99 19
Dewan 290 -F 99 20
Awareness Examples Outline Title 1. Readable and writeable item 1. 1 Also readable and writeable *. Shared readable and writeable *. * Shared readable Editing paper xxxx yyyyy Dewan 290 -F 99 21
Awareness App. Version 1 I/O Version 2 Coupling Awareness of Others Dewan Awareness Others Physical/Computer Environment User 1 290 -F 99 Physical/Computer Environment User 2 22
Awareness Purpose Location Current Tasks Potential for Interruptibility Presence of Coworkers Context for Smalltalk Curiosity Dewan 290 -F 99 23
Awareness Dimensions Shared? When? History? Degree? User 2 User 1 Dewan 290 -F 99 24
Shareable Information: Edward’s Model Subject Login, Name, Home, Shell, Office, Phone, Plan, Voice, Photo Intermezzo Physical Location, Appearance, Gestures, Speech Potholes CAVECAT, Cruiser Virtual Location Virtual Gestures Group. Draw, XTV Application, Start & Idle Time, Process and Display Host Intermezzo Object Identification, Type, Value, Attributes, Lock Status Command Location Size Diff Dewan Contact Grove, Group. Design PREP, Active Diff 290 -F 99 25
Awareness Degrees Subject General Location < Specific Location Pseudo Name < Real Name < Photo, Voice Audio Volume Levels Application Editor < Emacs Object A command was invoked on a nearby object The edit command was invoked on this object (The new remote value of this object is ‘the brown fox’) The new remote value of this object is ‘the brown fox’ The remote value replaces the ‘dog’ in the local value with ‘fox’ Macro Chris is at (0, 0) Chris is interacting with Emacs Chris is editing this paragraph Dewan 290 -F 99 Nearness Event Group. Design MASSIVE Peripheral Full Diff MASSIVE PREP Subject Application Object MASSIVE 26
Coarseness of Pinpointing Section Paragraph Sentence Word Diff Her bowl is over there, by the truck Dewan car Sentence. Level Diffing Word-Level Diffing 290 -F 99 Her bowl is over there, by the car truck 27
Additional Differencing Parameters DIFF. PARAMETERS % Differences Inserted Length Max. % Differences Distance to Look Dist. to Concatenate Word-level Diffing Precent Differences < Max. Percent Differences Recursion Criteria Inserted Length < Max. Distance to Look for Commonalities DIFF. PARAMETERS The quick brown fox The slow brown dog jumps over the lazy cat quick brown fox quick, fox Dewan slow brown dog 290 -F 99 slow, dog 28
When Awareness Event Shared Instantly Audio Video Diff CAVECAT Periodic Snapshots Portholes Explicitly Retrieved Diff Plan PREP Finger Dewan 290 -F 99 Active Diff 29
History of Events Shown WYSNIWIST Current Value Dewan Since Last Access Group. Desk Since Conference Start REPLAYABLE 290 -F 99 30
Dewan 290 -F 99 31
Coupling Examples File Mail save send load receive Sync Talk Async Talk Dewan hi hi h h hello hel 290 -F 99 32
RTCAL Vs Group. Kit Public Appts Private Appts Public Appts Dewan 290 -F 99 33
Coupling Design Space Sync Talk ASync Talk Mail Group. Draw Dewan File 290 -F 99 34
Sync Vs Async Talk My Text Your Text Dewan My Text Your Text 290 -F 99 35
Flexible Coupling My Text Your Text communicate. On: {Keystroke, Return} Dewan 290 -F 99 36
Fine-grained Coupling My Text Your Text Dewan My Text Your Text 290 -F 99 37
Distributed Control My Text Your Text Dewan My Text Your Text 290 -F 99 38
Coupling Principle Produced (T 0) Exported (T 1) Dewan Shared Imported Max(T 1, T 2) (T 2) 290 -F 99 39
Distributed Control My Text Your Text Keystroke < Return communicate. On = Max (Transmit. On, Listen. On) Dewan 290 -F 99 40
Shared Text Asymmetric Control Text communicate. On : {Keystroke, Return, Delete) Keystroke < Return, Delete Dewan 290 -F 99 41
File-based Coupling File Load Commit Text communicate. On: {…, Committed} Dewan 290 -F 99 42
Correctness-based Coupling File Unparsed int num, Text num 1 = 0 Dewan 290 -F 99 43
Correctness-based Coupling File Parsed int num; Text num 1 = 0 Dewan 290 -F 99 44
Correctness-based Coupling File Validated int num 1; Text num 1 = 0 Dewan 290 -F 99 45
Correctness-based Coupling File Commit int num 1; Text num 1 = 0 communicate. On: {Raw, Parsed, Validated, Committed} Raw < Parsed < Validated < Committed Dewan 290 -F 99 46
Time-based Coupling File Commit int num 1; Text num 1 = 0 communicate. On: {Period, Time) Dewan 290 -F 99 47
Mail-based Coupling File Load Commit Text communicate. On: {…, Send, Receive) Dewan 290 -F 99 48
Mail-based Coupling File Load Commit Text Buffer Text transmit. On: {. . . , Commit, Send) listen. On: {. . . , Commit, Receive) Dewan 290 -F 99 49
Sharing Objects Base Load Commit Version Buffer Version transmit. On: {…, Increment, Completion) Increment = Keystroke || Mousedrag Completion= Return || Mouserelease Dewan 290 -F 99 50
Suite Communication Model Cur. Correctness TTime Op Base Version Inc < Complete < Send Raw < Parsed < Valid< Comm Buffer Version LPeriod TOn LTime TCorrectness Value Transmitted if: (Op, Cur. Corr) >= (TOp, TCorr) (LOp, LCorr) Dewan LOn LCorrectness Value Received When Min (LPeriod, LTime) Receive Executed LPeriod, LTime: {T, Listen. Now} 290 -F 99 51
Coupling Objects Vs Versions X=5 Dewan X=6 X=5 Y = 25 290 -F 99 52
Coupling Objects Vs Versions hello world Hello world hello World My Out Message /Input Line John’s Inbox/ Chat History Hello John Goodbye John Hello John Dewan 290 -F 99 53
RTCAL Vs Group. Kit Public Appts Private Appts Public Appts Dewan 290 -F 99 54
Suite Sharing Model Base Value Version Buffer Version Cursor Font Widget Dewan TOp Color RW 290 -F 99 Scrollbar 55
Suite Sharing Model Value. C Version Comm. C Dewan Format. C Font Color TOp TCorr Value. C Format. C 290 -F 99 Version Couple. C 56
Coupling Policies Semantics Syntax View Value. C = T Format. C = T View. C = T Synchronous ASynchronous Implicit TOn, LOn = Inc TOn > Inc TOn < Send Explicit TOn = Send Dewan WYSIWIS Serializable *C = T Ton, Lon = Inc TCorr = Committed 290 -F 99 57
Dewan 290 -F 99 58
Concurrency Control Examples • • Floor Control No Control Tickle Locks Optimistic, Selectionbased Locks • Optimistic Transactions RTCAL Grove CES Group. Draw • Sync Dewan 290 -F 99 59
Concurrency Control Goals • Consistency • Concurrency • Performance Dewan 290 -F 99 60
Concurrency Control Dimensions • • Free Vs Controlled Correctness Criterion User-Transaction Mapping Sharing and Inconsistency Detection Time – Lock Granularity – Locking/Unlocking Actions Dewan 290 -F 99 61
Free Vs Controlled • WYSIWIS Vs WYSINWIS Coupling • Small Vs Large Teams • Efficiency Dewan 290 -F 99 62
Concurrency Control Correctness T 1 T 2 T 3 o 11 o 21 o 31 o 12 o 22 o 32 Actual Schedule Serial Schedule o 31 o 21 o 11 o 22 o 12 o 32 = Dewan T 3 T 2 T 1 290 -F 99 63
Concurrent Drawing Dewan 290 -F 99 64
Concurrent Drawing Dewan 290 -F 99 65
Concurrent Drawing Dewan 290 -F 99 66
Non-Serializable: Reject T 1 T 2 R(Drawing) R (Drawing) W (Drawing) Dewan 290 -F 99 67
Finer-Granularity: Serializable T 1 T 2 R(Line) R (Rectangle) W (Line) W (Rectangle) Dewan 290 -F 99 68
Non- Serializable: Accept T 1 T 2 R(Drawing) R (Drawing) W (Line) W (Rectangle) Dewan 290 -F 99 69
Concurrent Drawing Dewan 290 -F 99 70
Concurrent Drawing Dewan 290 -F 99 71
Concurrent Drawing Dewan 290 -F 99 72
Type-Specific: Reject T 1 T 2 R(Line) Rotate (Line) Color (Line) Dewan 290 -F 99 73
Type-Specific: Serializable T 1 T 2 R(Line. Bounds) R (Line. Color) Rotate (Line) Color (Line) Dewan 290 -F 99 74
Concurrent Drawing Dewan 290 -F 99 75
Concurrent Drawing Dewan 290 -F 99 76
Concurrent Drawing Dewan 290 -F 99 77
Concurrent Drawing Dewan 290 -F 99 78
Schedule T 1 T 2 R(Drawing) W (Line) R (Drawing) W (Rectangle) R(Drawing) W (Line) Dewan 290 -F 99 79
Splitting Transaction T 1 T 2 R(Drawing) W (Line) R (Drawing) W (Rectangle) T 3 R(Drawing) W (Line) Dewan 290 -F 99 80
Joining Transactions U 1 U 2 R(Drawing) W (Line) R (Drawing) W (Rectangle) R(Drawing) W (Line) Dewan 290 -F 99 81
Nested Long Transactions Program Team B Team A Module L, M Module N, O Testers Programmers Module L A Module M B Proc P Dewan Proc Q 290 -F 99 82
Implicit Transaction Operations Select Object => Begin Transaction Unselect Object => End Transaction Start Dragging => Begin Transaction Stop Dragging => End Transaction Stop Dragging => Begin Transaction Move Object End Transaction Dewan 290 -F 99 83
Implicit Transaction Operations Press Key => Begin Transaction Release Key => End Transaction Insert Char => Begin Transaction Return, Delete Char, Timeout => End Transaction Sync Couple => Join Transaction Async Couple => Split Transaction Dewan 290 -F 99 84
Dewan 290 -F 99 85
Collaborative Application Window Dewan User 1 Window 290 -F 99 User 2 86
Access Control Application Window Dewan User 1 Window 290 -F 99 User 2 87
Meta Access Control Application Window Meta Authorizer Window Authorizer Dewan User 1 290 -F 99 User 2 88
Access Control Prevents Security Violations Alice’s Exam Couple Alice Mistakes Bob’s Exam Bob’s Proposal Read Bob Write Alice Overuse of Scarce Resources Join Listener 1 Turing Lecture Session Join Listener 1000 Create Dewan 290 -F 99 Doug Engelbart 89
Access Control Principles • • Total Mediation No Secret Design Least Privilege (Need to Know) Ease of Use Dewan 290 -F 99 90
Traditional Protected Objects matmult. java R W Dewan X Matrix Graphics R W matmult. java Button. java I 290 -F 99 D M 91
Traditional Access Control matmult. java R W Dewan X Matrix Graphics R W matmult. java Button. java I 290 -F 99 D M 92
Collaborative Systems matmult. java Matrix Graphics matmult. java Button. java Data Rights Coupling Rights Buffer Rights R W X make private! R W I M Numerous Rights! matmult. java public int i; void f() { Dewan D UI Rights! 290 -F 99 void g() { int i, // tricky void g() 93
Colab. Objects & Rights Session Join. Session. R Read. Session. R Modify. Session. R Remove. Participant. R Delete. Session. R No Leave Session. R Dewan Window Cursor. R Scroll. R Resize. R Move. R Apply to Coupled windows 290 -F 99 94
Model/View Rights Semantic Object Update. R Interaction Object Write. R Insert. R Delete. R Read. R Data Rights Dewan Value. CR View. CR Fmt. CR TInc. R TRaw. R LInc. R Coupling Rights 290 -F 99 Hide. R Elide. R Select. R Title. R Font. R Color. R Indent. R View Rights 95
Optimistic Access Control Semantic Object -Update. R Interaction Object +Write. R +Insert. R +Delete. R +Read. R Dewan 290 -F 99 96
Pessimistic Access Control Semantic Object -Update. R Interaction Object -Write. R -Insert. R -Delete. R -Read. R Dewan 290 -F 99 97
Traditional Access Matrix Objects Subjects Dewan rights 290 -F 99 98
Extended Access Matrix Objects + groups Subjects + groups Dewan rights + groups 290 -F 99 99
Suite Access Control Bob +Scroll. Couple. R Bob Access List Entry Annotator Alice +Data. Couple. R +Couple. R An. Annotation Alice’s Annotation Dewan Bob’s Annotation 290 -F 99 100
Suite Access Control: Implications Update. R Write. R Delete. R Insert. R Read. R Dewan 290 -F 99 101
User Groups as Protected Objects Role Take. R Leave. R Delete. R Dewan 290 -F 99 102
Suite Access Control: Implications +Transmit. Increment. R +Modify. Session. R +Transmit. Complete. R +Create. Session. R +Transmit. Periodic. R +Read. Session. R +Transmit. Explicit. R Dewan 290 -F 99 103
Suite Meta-Access Control: First. Class Access Control Objects Protected Object Access Roles, Right Inheritance, Meta Roles, Right Inheritance, Control Implications, User. Implications defined rules Rights Dewan User 290 -F 99 Meta Rights Authorizer 104
Suite Meta-Access Control: First. Class Access Control Objects Protected Object Bootstrapping! Access Roles, Right Inheritance, Meta Roles, Right Inheritance, Control Implications, User. Implications defined rules Rights Dewan User 290 -F 99 Meta Rights Authorizer 105
Build Access-Control Class Protected Object AC User Dewan 290 -F 99 106
Instantiate Class Again Protected Object AC* AC User Dewan User* 290 -F 99 107
Must Instantiate Again Protected Object AC* AC User Dewan AC** User* 290 -F 99 User** 108
Infinite Recursion Protected Object AC* AC User Dewan User* 290 -F 99 AC*** User*** 109
Stopping Recursion Protected Object Roles, Right Inheritance, Implications, User. Access defined rules Control Roles, Right Inheritance, Implications User Dewan 290 -F 99 110
Existing Meta Control Protected Object Roles, Right Inheritance, Implications, User. Access defined rules Control owner central authorizer User Dewan Roles, Right Inheritance, Implications 290 -F 99 111
Flexible Authorizer Assignment Dewan public int i; void f() { 290 -F 99 No Authorizer 112
Flexible Authorizer Assignment public int i; void f() { Central Authorizer moderator Dewan 290 -F 99 113
Flexible Authorizer Assignment public int i; void f() { Single Owner Alice Dewan 290 -F 99 114
Flexible Authorizer Assignment public int i; void f() { Alice Dewan Multiple Owners Bob 290 -F 99 115
Partial Authorization public int i; void f() { Alice Bob Professor Dewan 290 -F 99 116
Partial Authorization public int i; void f() { Alice Leader Dewan Bob Professor 290 -F 99 117
Delegation Students Exam +Couple. R TA 2 Delegate TA 1 Delegate Professor Dewan 290 -F 99 118
Shallow Revocation Students Exam +Couple. R TA 2 Delegate TA 1 Professor Dewan 290 -F 99 119
Deep Revocation Students TA 2 TA 1 Professor Dewan 290 -F 99 120
Proportional Overhead Brainstorming Dewan Programming Contest 290 -F 99 Military Programming 121
Incremental Migration Path Brainstorming Dewan Programming Contest 290 -F 99 Military Programming 122
Economy of Concepts Meta Control Access Control Protected Objects Dewan 290 -F 99 123
Fine-Grained Meta Rights => Partial Authorization +Couple. R +Session. R +Data. R +Couple. R* +Session. R* +Data. R* Dewan 290 -F 99 124
Automatically-Generated Include and Imply Relationships => Proportional Overhead, Economy +Modify. Session. R +Create. Session. R +Modify. Session. R* +Create. Session. R* Dewan 290 -F 99 125
Authorizer Problem: Owner public int i; +Scroll. R +Couple. R void f() { +Couple. R* +Scroll. R* Dewan Alice (Application Bob Starter) (Object Creator) 290 -F 99 126
Authorizer Problem => Ownership Alice (Application Starter) public int i; void f() { Bob (Object Creator) Dewan 290 -F 99 127
Owner Lists => Joint Ownership Alice (Application public int i; void f() { Starter) +Olist. R* Dewan Bob Alice Bob (Object Creator) 290 -F 99 128
Default Ownership Semantics public int i; void f() { OL ~ ACL Bob +Owner. R Alice +Owner. R Dewan +OList. R, OList. R*, 290 -F 99 All. R, All. R* Default Ownership 129
Flexible Ownership Semantics => Flexible Authorizer Assgnmt +Owner. R No authorizer Class Object ACL All Dewan All. R* 290 -F 99 130
Flexible Ownership Semantics => Flexible Authorizer Assgnmt +Owner. R Central authorizer Class Object ACL Administrator Dewan 290 -F 99 All. R* 131
Total & Partial Delegation => Proportional Cost & Economy Students Exam +Couple. R Alice Bob Total Dewan 290 -F 99 132
Total & Partial Delegation => Proportional Cost & Economy Students Exam +Couple. R Bob Alice Exam Alice Bob +Couple. R* Alice Partial Total Dewan +Couple. R 290 -F 99 133
Shallow Revocation Students Exam +Couple. R Bob Alice Partial Total Dewan +Couple. R 290 -F 99 134
Shallow Revocation Students Exam +Couple. R Bob Alice Exam Alice -Couple. R* Alice Partial Total Dewan +Couple. R 290 -F 99 135
Delegation for Flexible Revocation Faculty Student Grantee Exam -Couple. R Alice Grantee +Add. Member. R* Bob Dewan 290 -F 99 136
Delegation for Flexible Revocation Grantee Exam -Couple. R Alice Grantee +Add. Member. R* Bob Dewan 290 -F 99 137
Delegation for Flexible Revocation Faculty Student Grantee Exam -Couple. R Alice Grantee +Add. Member. R* Bob Dewan 290 -F 99 138
Delegation for Flexible Revocation Faculty Student Grantee Exam +Couple. R Alice Grantee -Add. Member. R* Bob Dewan 290 -F 99 139
Delegation for Flexible Revocation Partial Undo Student Grantee Exam +Couple. R Alice Grantee -Add. Member. R* Bob Dewan 290 -F 99 140
Delegation for Flexible Revocation Total Revocation Grantee Exam -Couple. R Alice Grantee -Add. Member. R* Bob Dewan 290 -F 99 141
Example Policies Free for All Grove +All. R All Drawing +Insert. R Outline +Owner. R +Data. R, +Data. R* Dewan 290 -F 99 142
Examples (Contd. ) 2 -Way Talk User A User B N-Way Chat +All. R +Read. R User N’s Buffer User A Buffer User B User A +All. R +Read. R All +Read. R Transcript User B Buffer Dewan +All. R 290 -F 99 143
Examples (Contd. ) Software Inspection Tool All Chairman +All. R +Write. R Program Name Formatter All +Format. R, Format. R* +Read. R Program Dewan 290 -F 99 144
Examples (Contd. ) Programming Contest: Exam Phase Proctor +Read. R, +All. R* Class Object Team 1 +Coupling. R (Team 1, Proctor) +Data. R Program 1 Dewan +Owner. R +Data. R, +Data. R 290 -F 99 145
Examples (Contd. ) Programming Contest: Review Phase All +Coupling. R (All), +Insert. R, +Read. R Proctor +Read. R, +All. R* Class Object Team 1 +Coupling. R (Team 1, Proctor) +Data. R Program 1 Dewan +Owner. R +Data. R, +Data. R +All. R, +All. R* 290 -F 99 146
Dynamic Role Assignment I don’t mind sharing my workspace with others during demo day def predicate (subject me context) if date. today() == DEMO-DAY if me. location === “GVU Lab” if me. Activities. member(“Montage”) if subject. location == “GVU Lab” return true Dewan 290 -F 99 147
Experience with Meta Control Specifications • • • 1 -27 Access Grove Specifications Unix AFS Mail, Talk 6 ms Overhead Collaborative Inspection Tool Programming Contest Tool (Competition and Inspection Phases) Dewan 290 -F 99 148
Experience (contd) • Graphical Tool for Displaying Inheritance and Implications • Use 1 -Dimensional Inheritance at a Time Dewan 290 -F 99 149
Summary of Access Control • Flexible Authorizer • Assignment • Partial Authorization • • Flexible Delegation & • Revocation • • Proportional • Overhead • Economy of Abstractions Dewan 290 -F 99 User-Defined Ownership Semantics Fine-Grained Meta Rights Indirect Roles Inheritance, Implications Meta Rights, Owner Lists, Owner Right 150
Undo/Redo: Motivation • Recover from Self Errors in 1 -User Commands • Others’ Errors • System Errors (Conc Inp) • Colab Commands – Coupling, Access, … • Explore Self Alternatives • Be more Daring Dewan • Explore Group Alternatives • Dare to modify shared information 290 -F 99 151
Requirements • • Easy to Use Efficient Consistency Undo Hard to reverse Action • Matched to Do • Undo Computation Dewan • Undo remote displays • Undo of remote commands • Undo collaboration commands • Compatibility with single-user models 290 -F 99 152
Multiuser Undo. Vs Database Abort • Consistency – Cascaded Abort – I/O not Undoable – Undoing Remote displays • System Triggers Generally • Initiating User Can Undo • All Pending Actions Undone • User Triggers Generally • Any User Can Undo Dewan • Specific Pending or Committed Actions Undone 290 -F 99 153
US&R Model C 1 C 2 Undo C 3 C 1 C 2 C 4 C 3 Dewan C 1 C 2 C 3 Skip Undo C 4 C 1 C 2 C 3 Redo C 1 C 2 C 3 C 1 C 2 C 4 C 3 290 -F 99 Undo Redo C 1 C 2 C 3 C 1 C 2 C 4 C 3 154
History Model C 1 C 2 Undo C 3 Undo C 1 C 2 C 3 C 4 C 1 C 2 C 3 C 3’ C 2’C 4 C 4’ Dewan Undo C 1 C 2 C 3 C 3’ C 2’ C 1 C 2 C 3’ C 2’C 4 C 4’C 2’’ 290 -F 99 155
Multi-user Undo Factors • • • Single-User Undo Coupling Access Control Broadcast Scheme Concurrency Control Dewan 290 -F 99 156
Global, Last-Command Undo A 1 B 1 Dewan A 2 A 1 B 1 A 2 290 -F 99 Undo A 1 B 1 A 2 157
Disjoint Manipulation Insert O 1 Insert O 2 Insert O 1 Insert O 3 Insert O 2 Insert O 3 Insert O 1 Insert O 2 Insert O 3 O 1 Dewan O 3 Insert O 1 Insert O 2 Insert O 3 Insert O 1 Undo Insert O 2 Insert O 3 O 2 290 -F 99 158
Concurrent Serialized Interaction A 1 B 1 A 2 A 1 B 1 Undo Dewan A 1 B 1 A 2 290 -F 99 Undo A 1 B 1 A 2 159
Concurrent Non-Serialized Interaction A 1 B 1 A 2 A 1 B 1 Undo A 1 B 1 A 2 A 1 A 2 B 1 Entire undo history can be locked Dewan 290 -F 99 160
Non-WYSIWIS Coupling A 1 B 1 A 2 Dewan 290 -F 99 161
Local- Corresponding Undo A 1 B 1 A 1 Dewan A 2 A 1 B 1 A 2 290 -F 99 Undo A 1 B 1 A 2 162
Cooperative Manipulation Create O Move O Undo Create O Move O Exception! O Dewan 290 -F 99 163
Selection-based Undo A 1 B 1 A 2 A 3 A 1 B 1 A 3 Dewan A 1 B 1 A 2 A 3 Undo(B 1) A 1 B 1 A 3 290 -F 99 164
Selection, Corresponding Undo A 1 B 1 A 2 A 3 A 1 B 1 A 3 Dewan Undo A 1 B 1 A 2 A 3 A 1 B 1 A 3 290 -F 99 A 1 B 1 A 2 A 3 Undo A 1 B 1 A 3 165
Undo Filters Create O 1 Create O 2 Move O 1 Move O 2 Filter Blue User Dewan Commands Executed Create O 2 Move O 1 Create O 1 Move O 2 290 -F 99 Filter Red User 166
Undo Filters Create O 1 Create O 2 Move O 1 Move O 2 Filter O 1 Dewan Commands Executed Create O 2 Move O 2 Create O 1 Move O 1 290 -F 99 Filter O 2 167
Ambiguities in Selection-based Undo Color Red Color Yellow Color Green Undo (Color Yellow) Delete 2, b abc Dewan Insert 2, d Delete 2, b Insert 2, d Undo (Delete 2, b adc ac 290 -F 99 168
Asynchronous Commands A 1 B 1 A 2 A 3 Transmit (A 2, A 3) A 1 B 1 A 2 A 3 A 1 B 1 Dewan A 1 B 1 A 2 A 3 290 -F 99 169
Asynchronous Commands A 1 B 1 A 2 A 3 Transmit (A 2, A 3) A 1 B 1 T (A 2, A 3) A 1 B 1 Dewan A 1 B 1 A 2 A 3 T(A 2, A 3) 290 -F 99 170
Single-User Interaction Dewan 290 -F 99 171
Single-User Undo Dewan 290 -F 99 172
Multi-User Interaction Dewan 290 -F 99 173
Multi-User Undo Dewan 290 -F 99 174
Race Condition: Undo Decision Dewan 290 -F 99 175
Race Condition: Concurrent Change Dewan 290 -F 99 176
Undo by Reference Dewan 290 -F 99 177
WYSINWIS Histories Dewan 290 -F 99 178
Corresponding Undo Dewan 290 -F 99 179
Transmitting Changes Dewan 290 -F 99 180
Undoing Transmission Dewan 290 -F 99 181
Triggering Computations Dewan 290 -F 99 182
Undoing Computation Dewan 290 -F 99 183
- Slides: 183