Dewan 290-F99 1
Taxonomies of Collaborative Applications Prasun Dewan Department - - PowerPoint PPT Presentation
Taxonomies of Collaborative Applications Prasun Dewan Department - - PowerPoint PPT Presentation
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-F99 1 7.
Dewan 290-F99 2
- 7. Application Taxonomies
- Ellis’s Time Space
- Ellis’s Common Task/Shared Environment
- VR Taxonomy
- Malone’s Taxonomy
Dewan 290-F99 3
Ellis’s Time Space Taxonomy
Email File System Bulletin Board Augmented Reality Same Time Same Space Different Space Grove MUD Tivoli Ventura Different Time
Dewan 290-F99 4
RTCAL Vs Electronic Class Room
Proposal: 10am Vote: No Public Appts Public Appts Topic, Participants Chair, Controller
Dewan 290-F99 5
Ellis’s Shared Environment / Common Task Dimension
Electronic Classroom Time Sharing Environment Software Review System Mail Common Task Shared Environment
Dewan 290-F99 6
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-F99 7
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, teams, team collections
Dewan 290-F99 8
IBIS Vs Email
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 10am? (Mary Lowe, 1 response) *I: Which processor should be used ?P: Processor A AS: Fast *P: Processor B AS: Cheap, already in use
Dewan 290-F99 9
Malone’s Coordination Taxonomy
Coordination Goal Goal Decomposition Task Assignment Recursive Allocation Synchronization Sequencing 1 Facilitates Coordinator Information Lens RTCAL Group Decision Making Proposing Alternatives Evaluating Alternatives 2 IBIS, PREP, Quilt Communication Transporting Messages Routing 3 email, ActionWorkflow Perception of Common Objects 4 Grove, CES, RTCAL
Dewan 290-F99 10
Hydra vs MAJIC MUDS Vs DIVE
User 2 User 3
John has entered the room (hear footsteps) John says, “Hi everyone”
Dewan 290-F99 11
Benford’s VE Taxonomy
Degree of Artificiality Degree of Transportation
- Augmented
Reality
- Physical
Meeting
- Telepresence
- Immersive
CVEs
- Hydra
- Video
Walls
- Video
Conference
- Shared
Application & Video Conf.
- MAGIC
- Projected
CVEs
- Desktop
CVEs
Dewan 290-F99 12
Concurrency Control
- RTCAL
- Grove
- CES
- GroupDraw
- Floor Control
- No Control
- Tickle Locks
- Optimistic
Locks
Dewan 290-F99 13
Flexible Model of Collaboration
Application Window Version 1 User 1 User 2 Coupling Window Version 1 Session Management User Merging Undo/Redo Awareness CC/AC
Dewan 290-F99 14
Design Dimensions
- Session Management
- Coupling
- Concurrency Control
- Access Control
- Undo/Redo
- Merging
- Awareness
Dewan 290-F99 15
Session Management
User 2 User 3
message from dewan, type talk dewan to join John has entered the room (hear footsteps) John says, “Hi everyone” talk jbs Faculty Meeting 290 Lecture Distinguished Lecture
Dewan 290-F99 16
Session 1 App1 App2
Session Management Operations
User 1 Join/Leave (User 2) User 2 Create/ Delete (Session 1) Add/Delete (App3) App3 Issue: How are these
- perations invoked?
Dewan 290-F99 17
Session Management
- Telephone
- Talk
- Menu System
- MUDs
- DIVE
- Invitation
- Invitation
- Name-based
- Room-based
- Aura-based
Dewan 290-F99 18
Joining in Explicit Sessions
App2 App3 User 1 User 2 Session 1 Join User 2 App1 App2 App3 User 1 User 2 Session 1 User 2 Invite Accept Name-based Joining Invitation-based Joining Rendezvous GroupKit RTCAL XTV Joining N App. Easy & General Applications Flexible Joining Auto Notification Creator Controlled App1
Dewan 290-F99 19
Implicit Sessions
- Artifacts being edited
- Location in rooms
- Intersection of auras in virtual
environment
Session Joining/Leaving Side Effect of:
Dewan 290-F99 20
Design of Collaboration Functions
- Session Management
- Coupling
- Concurrency Control
- Access Control
- Undo/Redo
- Merging
- Awareness
Dewan 290-F99 21
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-F99 22
Awareness
App. I/O I/O Version 1 Version 2 Coupling Awareness Others Awareness
- f Others
Physical/Computer Environment Physical/Computer Environment User 1 User 2
Dewan 290-F99 23
Awareness Purpose
Location Current Tasks Potential for Interruptibility Presence of Coworkers Context for Smalltalk Curiosity
Dewan 290-F99 24
Awareness Dimensions
Shared? Degree? When? History? User 1 User 2
Dewan 290-F99 25
Subject Application Object Intermezzo Potholes CAVECAT, Cruiser GroupDraw, XTV Intermezzo Contact Grove, GroupDesign GroupDesign PREP, Active Diff
Shareable Information: Edward’s Model
Login, Name, Home, Shell, Office, Phone, Plan, Voice, Photo Physical Location, Appearance, Gestures, Speech Virtual Location Virtual Gestures Application, Start & Idle Time, Process and Display Host Identification, Type, Value, Attributes, Lock Status Command Location Size Diff
Dewan 290-F99 26
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 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 Nearness Event Peripheral Full Diff Subject Application Object GroupDesign MASSIVE MASSIVE MASSIVE PREP MASSIVE
Dewan 290-F99 27
Coarseness of Pinpointing
Section Paragraph Sentence Word Section Paragraph Sentence Word Diff Diff Her bowl is over there, by the truck Her bowl is over there, by the car Sentence- Level Diffing car truck Word-Level Diffing
Dewan 290-F99 28
Additional Differencing Parameters
% Differences Inserted Length
- Max. % Differences
Distance to Look
- Dist. to Concatenate
- DIFF. PARAMETERS
Precent Differences < Max. Percent Differences Inserted Length < Max. Distance to Look for Commonalities Recursion Criteria The quick brown fox jumps over the lazy cat The slow brown dog jumps over the lazy cat quick brown fox slow brown dog quick, fox slow, dog Word-level Diffing
- DIFF. PARAMETERS
Dewan 290-F99 29
When Awareness Event Shared
Instantly Periodic Explicitly Retrieved Audio Video Diff Snapshots Diff Plan CAVECAT Active Diff Portholes PREP Finger
Dewan 290-F99 30
History of Events Shown
Current Value Since Last Access Since Conference Start GroupDesk REPLAYABLE WYSNIWIST
Dewan 290-F99 31
Design of Collaboration Functions
- Session Management
- Coupling
- Concurrency Control
- Access Control
- Undo/Redo
- Merging
- Awareness
Dewan 290-F99 32
Coupling Examples
File save load Mail send receive Sync Talk h hel h hel Async Talk hi hello hi hello
Dewan 290-F99 33
RTCAL Vs GroupKit
Public Appts Private Appts Public Appts Public Appts Public Appts
Dewan 290-F99 34
Coupling Design Space
Sync Talk ASync Talk Mail File GroupDraw
Dewan 290-F99 35
Sync Vs Async Talk
My Text Your Text My Text Your Text
Dewan 290-F99 36
Flexible Coupling
My Text Your Text My Text Your Text communicateOn: {Keystroke, Return}
Dewan 290-F99 37
Fine-grained Coupling
My Text Your Text My Text Your Text
Dewan 290-F99 38
Distributed Control
My Text Your Text My Text Your Text
Dewan 290-F99 39
Produced Exported
Coupling Principle
Imported Shared Max(T1, T2) (T1) (T2) (T0)
Dewan 290-F99 40
Distributed Control
My Text Your Text My Text Your Text Keystroke < Return communicateOn = Max (TransmitOn, ListenOn)
Dewan 290-F99 41
Shared Text
Text Text Asymmetric Control communicateOn : {Keystroke, Return, Delete) Keystroke < Return, Delete
Dewan 290-F99 42
File-based Coupling
Text Text File Commit Load communicateOn: {…, Committed}
Dewan 290-F99 43
Correctness-based Coupling
int num, num1 = 0 Text File Unparsed
Dewan 290-F99 44
Correctness-based Coupling
int num; num1 = 0 Text File Parsed
Dewan 290-F99 45
Correctness-based Coupling
int num1; num1 = 0 Text File Validated
Dewan 290-F99 46
Correctness-based Coupling
int num1; num1 = 0 Text File communicateOn: {Raw, Parsed, Validated, Committed} Commit Raw < Parsed < Validated < Committed
Dewan 290-F99 47
Time-based Coupling
int num1; num1 = 0 Text File communicateOn: {Period, Time) Commit
Dewan 290-F99 48
Mail-based Coupling
Text Text File Commit Load communicateOn: {…, Send, Receive)
Dewan 290-F99 49
Mail-based Coupling
Text Text File Commit Load transmitOn: {..., Commit, Send) Buffer listenOn: {..., Commit, Receive)
Dewan 290-F99 50
Sharing Objects
Version Version Base Commit Load transmitOn: {…, Increment, Completion) Buffer Completion= Return || Mouserelease Increment = Keystroke || Mousedrag
Dewan 290-F99 51
Suite Communication Model
Version Version Base Buffer
TTime LTime TPeriod LPeriod TOn TCorrectness LOn LCorrectness
Op Cur. Correctness Value Transmitted if: (Op, CurCorr) >= (TOp, TCorr) (LOp, LCorr) Value Received When Min (LPeriod, LTime) Receive Executed
Inc < Complete < Send Raw < Parsed < Valid< Comm
LPeriod, LTime: {T, ListenNow}
Dewan 290-F99 52
Coupling Objects Vs Versions
X = 6 X = 5 X = 5 X = 5 Y = 25
Dewan 290-F99 53
Coupling Objects Vs Versions
Hello world hello World hello world Hello John Hello John Goodbye John My Out Message /Input Line John’s Inbox/ Chat History
Dewan 290-F99 54
RTCAL Vs GroupKit
Public Appts Private Appts Public Appts Public Appts Public Appts
Dewan 290-F99 55
Suite Sharing Model
Version Version Base Buffer
Value TOp Font Cursor Widget Color RW Scrollbar
Dewan 290-F99 56
Suite Sharing Model
Version Version
Value Value Font Color Font Color TOp TCorr TOp TCorr ValueC ValueC FormatC ValueC FormatC FormatC CommC CoupleC
Dewan 290-F99 57
Coupling Policies
Semantics ValueC = T Syntax FormatC = T View ViewC = T Implicit TOn < Send Explicit TOn = Send Synchronous TOn, LOn = Inc ASynchronous TOn > Inc WYSIWIS *C = T Ton, Lon = Inc Serializable TCorr = Committed
Dewan 290-F99 58
Design of Collaboration Functions
- Session Management
- Coupling
- Concurrency Control
- Access Control
- Undo/Redo
- Merging
- Awareness
Dewan 290-F99 59
Concurrency Control Examples
- RTCAL
- Grove
- CES
- GroupDraw
- Sync
- Floor Control
- No Control
- Tickle Locks
- Optimistic,
Selection- based Locks
- Optimistic
Transactions
Dewan 290-F99 60
Concurrency Control Goals
- Consistency
- Concurrency
- Performance
Dewan 290-F99 61
Concurrency Control Dimensions
- Free Vs Controlled
- Correctness Criterion
- User-Transaction Mapping
- Sharing and Inconsistency Detection Time
– Lock Granularity – Locking/Unlocking Actions
Dewan 290-F99 62
Free Vs Controlled
- WYSIWIS Vs WYSINWIS Coupling
- Small Vs Large Teams
- Efficiency
Dewan 290-F99 63
Concurrency Control Correctness
T1
- 11
- 12
T2 T3
- 21
- 22
- 31
- 32
Actual Schedule
- 31 o21 o11o22 o12 o32
T3 T2 T1 Serial Schedule =
Dewan 290-F99 64
Concurrent Drawing
Dewan 290-F99 65
Concurrent Drawing
Dewan 290-F99 66
Concurrent Drawing
Dewan 290-F99 67
Non-Serializable: Reject
T1 R(Drawing) W (Drawing) T2 R (Drawing) W (Drawing)
Dewan 290-F99 68
Finer-Granularity: Serializable
T1 R(Line) W (Line) T2 R (Rectangle) W (Rectangle)
Dewan 290-F99 69
Non- Serializable: Accept
T1 R(Drawing) W (Line) T2 R (Drawing) W (Rectangle)
Dewan 290-F99 70
Concurrent Drawing
Dewan 290-F99 71
Concurrent Drawing
Dewan 290-F99 72
Concurrent Drawing
Dewan 290-F99 73
Type-Specific: Reject
T1 R(Line) Rotate (Line) T2 R (Line) Color (Line)
Dewan 290-F99 74
Type-Specific: Serializable
T1 R(Line.Bounds) Rotate (Line) T2 R (Line.Color) Color (Line)
Dewan 290-F99 75
Concurrent Drawing
Dewan 290-F99 76
Concurrent Drawing
Dewan 290-F99 77
Concurrent Drawing
Dewan 290-F99 78
Concurrent Drawing
Dewan 290-F99 79
Schedule
T1 R(Drawing) W (Line) T2 R (Drawing) W (Rectangle) R(Drawing) W (Line)
Dewan 290-F99 80
Splitting Transaction
T1 R(Drawing) W (Line) T2 R (Drawing) W (Rectangle) R(Drawing) W (Line) T3
Dewan 290-F99 81
Joining Transactions
U1 R(Drawing) W (Line) U2 R (Drawing) W (Rectangle) R(Drawing) W (Line)
Dewan 290-F99 82
Nested Long Transactions
Program Module L, M Module N, O Module L Module M Proc P Proc Q Team A Team B rogrammers Testers A B
Dewan 290-F99 83
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-F99 84
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-F99 85
Design of Collaboration Functions
- Session Management
- Coupling
- Concurrency Control
- Access Control
- Undo/Redo
- Merging
- Awareness
Collaborative Application
Application Window Window User 1 User 2
Access Control
Application Window Window User 1 User 2
Meta Access Control
Application Window Window User 1 User 2 Authorizer Meta Authorizer
Access Control Prevents
Alice’s Exam Alice Bob’s Exam Bob
Couple
Security Violations
Listener 1 Turing Lecture Session
Doug Engelbart
Create Join
Listener 1000
Join
Overuse of Scarce Resources
Bob’s Proposal
Read Write
Mistakes Alice
Dewan 290-F99 90
Access Control Principles
- Total Mediation
- No Secret Design
- Least Privilege (Need to Know)
- Ease of Use
Traditional Protected Objects
matmult.java Matrix matmult.java Graphics Button.java R W X R W I D M
Traditional Access Control
matmult.java Matrix matmult.java Graphics Button.java R W X R W I D M
Collaborative Systems
matmult.java Matrix matmult.java Graphics Button.java R W X R W I D M matmult.java public int i; void f() { public int i; void f() { void g() { int i, // tricky void g() make private! Data Rights Coupling Rights Buffer Rights Numerous Rights! UI Rights!
Dewan 290-F99 94
- Colab. Objects & Rights
Session JoinSessionR ReadSessionR ModifySessionR RemoveParticipantR DeleteSessionR Window CursorR ScrollR ResizeR MoveR No Leave SessionR Apply to Coupled windows
Dewan 290-F99 95
Model/View Rights
Semantic Object UpdateR WriteR InsertR DeleteR ReadR Interaction Object HideR ElideR SelectR TitleR FontR ColorR IndentR ValueCR ViewCR FmtCR TIncR TRawR LIncR Data Rights Coupling Rights View Rights
Dewan 290-F99 96
Optimistic Access Control
Semantic Object
- UpdateR
+WriteR +InsertR +DeleteR +ReadR Interaction Object
Dewan 290-F99 97
Pessimistic Access Control
Semantic Object
- UpdateR
Interaction Object
- WriteR
- InsertR
- DeleteR
- ReadR
Dewan 290-F99 98
Traditional Access Matrix
Objects
Subjects rights
Dewan 290-F99 99
Extended Access Matrix
Objects + groups
Subjects + groups rights + groups
Suite Access Control
AnAnnotation +CoupleR Annotator +ScrollCoupleR +DataCoupleR Bob Alice Alice’s Annotation Bob’s Annotation Bob Alice Access List Entry
Suite Access Control: Implications
UpdateR WriteR InsertR DeleteR ReadR
Dewan 290-F99 102
User Groups as Protected Objects
Role TakeR LeaveR DeleteR
Suite Access Control: Implications
+TransmitIncrementR +TransmitCompleteR +TransmitPeriodicR +TransmitExplicitR +ModifySessionR +CreateSessionR +ReadSessionR
Roles, Right Inheritance, Implications, User- defined rules
Suite Meta-Access Control: First- Class Access Control Objects
Protected Object User Authorizer Access Control Roles, Right Inheritance, Implications Rights Meta Rights Meta Control
Roles, Right Inheritance, Implications, User- defined rules
Suite Meta-Access Control: First- Class Access Control Objects
Protected Object User Authorizer Access Control Roles, Right Inheritance, Implications Rights Meta Rights Meta Control Bootstrapping!
Build Access-Control Class
Protected Object User AC
Instantiate Class Again
Protected Object User* User AC AC*
Must Instantiate Again
Protected Object User* User AC AC* User** AC**
Infinite Recursion
Protected Object User* User AC AC* User** AC** User*** AC***
Roles, Right Inheritance, Implications, User- defined rules
Stopping Recursion
Protected Object User Access Control Roles, Right Inheritance, Implications
Roles, Right Inheritance, Implications, User- defined rules
Existing Meta Control
Protected Object User Access Control Roles, Right Inheritance, Implications
- wner
central authorizer
Flexible Authorizer Assignment
public int i; void f() { public int i; void f() { No Authorizer
Flexible Authorizer Assignment
public int i; void f() { public int i; void f() { moderator Central Authorizer
Flexible Authorizer Assignment
public int i; void f() { public int i; void f() { Single Owner Alice
Flexible Authorizer Assignment
public int i; void f() { public int i; void f() { Multiple Owners Alice Bob
Partial Authorization
public int i; void f() { public int i; void f() { Alice Bob Professor
Partial Authorization
public int i; void f() { public int i; void f() { Alice Bob Professor Leader
Delegation
Professor TA 1 Exam +CoupleR Students Delegate TA 2 Delegate
Shallow Revocation
Professor TA 1 Exam +CoupleR Students TA 2 Delegate
Deep Revocation
Professor TA 1 Students TA 2
Proportional Overhead
Programming Contest Brainstorming Military Programming
Incremental Migration Path
Programming Contest Brainstorming Military Programming
Economy of Concepts
Protected Objects Meta Control Access Control
Fine-Grained Meta Rights => Partial Authorization
+CoupleR +CoupleR* +DataR +DataR* +SessionR +SessionR*
Automatically-Generated Include and Imply Relationships => Proportional Overhead, Economy
+ModifySessionR +CreateSessionR +SessionR +ModifySessionR* +CreateSessionR* +SessionR*
Authorizer Problem: Owner
+CoupleR* public int i; void f() { Bob (Object Creator) Alice (Application Starter) +ScrollR +ScrollR* +CoupleR
Authorizer Problem => Ownership
Bob (Object Creator) public int i; void f() { Alice (Application Starter)
Owner Lists => Joint Ownership
Bob (Object Creator) Alice Bob +OlistR +OlistR* public int i; void f() { Alice (Application Starter)
Default Ownership Semantics
+OwnerR +OListR, OListR*, AllR, AllR* Alice Bob +OwnerR +OwnerR Default Ownership public int i; void f() { OL ~ ACL
Flexible Ownership Semantics => Flexible Authorizer Assgnmt
No authorizer +OwnerR Class Object All AllR* ACL
Flexible Ownership Semantics => Flexible Authorizer Assgnmt
Class Object Administrator Central authorizer AllR* +OwnerR ACL
Total & Partial Delegation => Proportional Cost & Economy
Alice Alice Bob Exam +CoupleR Students Total
Total & Partial Delegation => Proportional Cost & Economy
Alice Alice Bob Alice Bob Exam +CoupleR Students Exam +CoupleR* Exam +CoupleR Students Total Partial
Shallow Revocation
Alice Alice Alice Bob Exam +CoupleR Students Exam +CoupleR Students Total Partial
Shallow Revocation
Alice Alice Alice Bob Exam +CoupleR Students Exam
- CoupleR*
Exam +CoupleR Students Total Partial
Delegation for Flexible Revocation
Alice Grantee Exam
- CoupleR
Faculty Student Grantee +AddMemberR Bob Grantee +AddMemberR*
Delegation for Flexible Revocation
Alice Grantee Exam
- CoupleR
Grantee +AddMemberR Bob Grantee +AddMemberR*
Delegation for Flexible Revocation
Alice Grantee Exam
- CoupleR
Faculty Student Grantee +AddMemberR Bob Grantee +AddMemberR*
Delegation for Flexible Revocation
Alice Grantee Exam +CoupleR Faculty Student Grantee
- AddMemberR
Bob Grantee
- AddMemberR*
Delegation for Flexible Revocation
Alice Grantee Exam +CoupleR Student Grantee
- AddMemberR
Bob Grantee
- AddMemberR*
Partial Undo
Delegation for Flexible Revocation
Alice Grantee Exam
- CoupleR
Grantee
- AddMemberR
Bob Grantee
- AddMemberR*
Total Revocation
Dewan 290-F99 142
Example Policies
Drawing +AllR All
Free for All
Outline +InsertR All
Grove
+OwnerR +DataR,+DataR*
Dewan 290-F99 143
Examples (Contd.)
User A Buffer +ReadR User B
2-Way Talk
+AllR User A User B Buffer +ReadR User A +AllR User B User N’s Buffer
N-Way Chat
+AllR User N Transcript +ReadR All
Dewan 290-F99 144
Examples (Contd.)
Program Name +WriteR Chairman
Software Inspection Tool
+AllR All Program +ReadR All +FormatR, FormatR* Formatter
Dewan 290-F99 145
Examples (Contd.)
Class Object
Programming Contest: Exam Phase
+ReadR, +AllR* Proctor Program1 +DataR Team1 Team1 +CouplingR (Team1, Proctor) +OwnerR +DataR,+DataR
Dewan 290-F99 146
Examples (Contd.)
Class Object
Programming Contest: Review Phase
+ReadR, +AllR* Proctor Program1 +DataR Team1 Team1 +CouplingR (Team1, Proctor) +OwnerR +CouplingR (All), +InsertR, +ReadR All +AllR, +AllR* +DataR,+DataR
Dewan 290-F99 147
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
Experience with Meta Control Specifications
- Grove
- Unix
- AFS
- Mail, Talk
- Collaborative Inspection Tool
- Programming Contest Tool (Competition
and Inspection Phases)
1-27 Access Specifications 6 ms Overhead
Experience (contd)
- Graphical Tool for Displaying
Inheritance and Implications
- Use 1-Dimensional Inheritance at
a Time
Summary of Access Control
- Flexible Authorizer
Assignment
- Partial Authorization
- Flexible Delegation &
Revocation
- Proportional
Overhead
- Economy of
Abstractions
- User-Defined Ownership
Semantics
- Fine-Grained Meta Rights
- Indirect Roles
- Inheritance, Implications
- Meta Rights, Owner Lists,
Owner Right
Dewan 290-F99 151
Undo/Redo: Motivation
- Recover from Self
Errors in 1-User Commands
- Explore Self
Alternatives
- Be more Daring
- Others’ Errors
- System Errors (Conc Inp)
- Colab Commands
– Coupling, Access, …
- Explore Group
Alternatives
- Dare to modify shared
information
Dewan 290-F99 152
Requirements
- Easy to Use
- Efficient
- Consistency
- Undo Hard to reverse
Action
- Matched to Do
- Undo Undo
- Undo Computation
- Undo remote displays
- Undo of remote
commands
- Undo collaboration
commands
- Compatibility with
single-user models
Dewan 290-F99 153
Multiuser UndoVs Database Abort
- Consistency
– Cascaded Abort – I/O not Undoable
- System Triggers
Generally
- Initiating User Can
Undo
- All Pending Actions
Undone
- Consistency
– Undoing Remote displays
- User Triggers
Generally
- Any User Can Undo
- Specific Pending or
Committed Actions Undone
Dewan 290-F99 154
US&R Model
C1 C2 C3 C1 C2 C3 Undo C1 C2 C3 C1 C2 C3 Undo Redo C1 C2 C3 C1 C2 C4 C3 C4 C1 C2 C4 C3 C1 C2 C4 C3 Undo Skip Redo C1 C2 C4 C3
Dewan 290-F99 155
History Model
C1 C2 C3 C1 C2 C3 Undo C1 C2 C3 C3’ C1 C2 C3 C3’ C2’ Undo C4 C1 C2 C3 C3’ C2’C4 Undo C1 C2 C3 C3’ C2’C4 C4’ Undo C1 C2 C3 C3’ C2’C4 C4’C2’’
Dewan 290-F99 156
Multi-user Undo Factors
- Single-User Undo
- Coupling
- Access Control
- Broadcast Scheme
- Concurrency Control
Dewan 290-F99 157
Global, Last-Command Undo
A1 B1 A2 A1 B1 A2 A1 B1 A1 B1 A2 Undo A1 B1 A2 A1 B1 A2
Dewan 290-F99 158
Disjoint Manipulation
Insert O1 Insert O2 Insert O1 Insert O2 Undo Insert O1 Insert O2 Insert O3 Insert O1 Insert O2 Insert O3
O1 O2
Insert O3
O3
Insert O1 Insert O2 Insert O3 Insert O1 Insert O2 Insert O3
Dewan 290-F99 159
Concurrent Serialized Interaction
A1 B1 A1 B1 A2 Undo A1 B1 A2 A1 B1 A2 A1 B1 A2 A1 B1 A2 Undo
Dewan 290-F99 160
Concurrent Non-Serialized Interaction
A1 B1 A1 B1 A2 Undo A1 B1 A2 A1 B1 A1 A2 B1 A1 B1 A2 Undo A2 Entire undo history can be locked
Dewan 290-F99 161
Non-WYSIWIS Coupling
A1 B1 A1 B1 A2
Dewan 290-F99 162
Local- Corresponding Undo
A1 B1 A2 A1 B1 A2 A1 B1 A2 B1 A1 B1 A1 A2 Undo B1 A1 A2 Undo
Dewan 290-F99 163
Cooperative Manipulation
Create O Move O Undo Undo Create O Move O O Create O Move O Exception!
Dewan 290-F99 164
Selection-based Undo
A1 B1 A2 A3 Undo(B1) A1 B1 A2 A3 A1 B1 A3 A1 B1 A3
Dewan 290-F99 165
Selection, Corresponding Undo
A1 B1 A2 A3 Undo Undo A1 B1 A2 A3 A1 B1 A3 A1 B1 A3 A1 B1 A3 A1 B1 A2 A3
Dewan 290-F99 166
Undo Filters
Create O1 Create O2 Move O1 Move O2 Create O2 Move O1 Create O1 Move O2 Filter Blue User Filter Red User Commands Executed
Dewan 290-F99 167
Undo Filters
Create O1 Create O2 Move O1 Move O2 Create O2 Move O2 Create O1 Move O1 Filter O1 Filter O2 Commands Executed
Dewan 290-F99 168
Ambiguities in Selection-based Undo
Color Red Color Yellow Color Green Undo (Color Yellow) abc Delete 2, b ac Delete 2, b Insert 2,d adc Delete 2, b Insert 2, d Undo (Delete 2, b
Dewan 290-F99 169
Asynchronous Commands
A1 B1 A2 A3 Transmit (A2, A3) A1 B1 A1 B1 A2 A3 A1 B1 A2 A3
Dewan 290-F99 170
Asynchronous Commands
A1 B1 A2 A3 Transmit (A2, A3) A1 B1 A2 A3 T(A2, A3) A1 B1 A1 B1 T (A2, A3)
Dewan 290-F99 171
Single-User Interaction
Dewan 290-F99 172
Single-User Undo
Dewan 290-F99 173
Multi-User Interaction
Dewan 290-F99 174
Multi-User Undo
Dewan 290-F99 175
Race Condition: Undo Decision
Dewan 290-F99 176
Race Condition: Concurrent Change
Dewan 290-F99 177
Undo by Reference
Dewan 290-F99 178
WYSINWIS Histories
Dewan 290-F99 179
Corresponding Undo
Dewan 290-F99 180
Transmitting Changes
Dewan 290-F99 181
Undoing Transmission
Dewan 290-F99 182
Triggering Computations
Dewan 290-F99 183