Taxonomies of Collaborative Applications Prasun Dewan Department - - PowerPoint PPT Presentation

taxonomies of collaborative applications
SMART_READER_LITE
LIVE PREVIEW

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.


slide-1
SLIDE 1

Dewan 290-F99 1

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

slide-2
SLIDE 2

Dewan 290-F99 2

  • 7. Application Taxonomies
  • Ellis’s Time Space
  • Ellis’s Common Task/Shared Environment
  • VR Taxonomy
  • Malone’s Taxonomy
slide-3
SLIDE 3

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

slide-4
SLIDE 4

Dewan 290-F99 4

RTCAL Vs Electronic Class Room

Proposal: 10am Vote: No Public Appts Public Appts Topic, Participants Chair, Controller

slide-5
SLIDE 5

Dewan 290-F99 5

Ellis’s Shared Environment / Common Task Dimension

Electronic Classroom Time Sharing Environment Software Review System Mail Common Task Shared Environment

slide-6
SLIDE 6

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

* +

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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”

slide-11
SLIDE 11

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

slide-12
SLIDE 12

Dewan 290-F99 12

Concurrency Control

  • RTCAL
  • Grove
  • CES
  • GroupDraw
  • Floor Control
  • No Control
  • Tickle Locks
  • Optimistic

Locks

slide-13
SLIDE 13

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

slide-14
SLIDE 14

Dewan 290-F99 14

Design Dimensions

  • Session Management
  • Coupling
  • Concurrency Control
  • Access Control
  • Undo/Redo
  • Merging
  • Awareness
slide-15
SLIDE 15

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

slide-16
SLIDE 16

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?
slide-17
SLIDE 17

Dewan 290-F99 17

Session Management

  • Telephone
  • Talk
  • Menu System
  • MUDs
  • DIVE
  • Invitation
  • Invitation
  • Name-based
  • Room-based
  • Aura-based
slide-18
SLIDE 18

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

slide-19
SLIDE 19

Dewan 290-F99 19

Implicit Sessions

  • Artifacts being edited
  • Location in rooms
  • Intersection of auras in virtual

environment

Session Joining/Leaving Side Effect of:

slide-20
SLIDE 20

Dewan 290-F99 20

Design of Collaboration Functions

  • Session Management
  • Coupling
  • Concurrency Control
  • Access Control
  • Undo/Redo
  • Merging
  • Awareness
slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

Dewan 290-F99 23

Awareness Purpose

Location Current Tasks Potential for Interruptibility Presence of Coworkers Context for Smalltalk Curiosity

slide-24
SLIDE 24

Dewan 290-F99 24

Awareness Dimensions

Shared? Degree? When? History? User 1 User 2

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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
slide-29
SLIDE 29

Dewan 290-F99 29

When Awareness Event Shared

Instantly Periodic Explicitly Retrieved Audio Video Diff Snapshots Diff Plan CAVECAT Active Diff Portholes PREP Finger

slide-30
SLIDE 30

Dewan 290-F99 30

History of Events Shown

Current Value Since Last Access Since Conference Start GroupDesk REPLAYABLE WYSNIWIST

slide-31
SLIDE 31

Dewan 290-F99 31

Design of Collaboration Functions

  • Session Management
  • Coupling
  • Concurrency Control
  • Access Control
  • Undo/Redo
  • Merging
  • Awareness
slide-32
SLIDE 32

Dewan 290-F99 32

Coupling Examples

File save load Mail send receive Sync Talk h hel h hel Async Talk hi hello hi hello

slide-33
SLIDE 33

Dewan 290-F99 33

RTCAL Vs GroupKit

Public Appts Private Appts Public Appts Public Appts Public Appts

slide-34
SLIDE 34

Dewan 290-F99 34

Coupling Design Space

Sync Talk ASync Talk Mail File GroupDraw

slide-35
SLIDE 35

Dewan 290-F99 35

Sync Vs Async Talk

My Text Your Text My Text Your Text

slide-36
SLIDE 36

Dewan 290-F99 36

Flexible Coupling

My Text Your Text My Text Your Text communicateOn: {Keystroke, Return}

slide-37
SLIDE 37

Dewan 290-F99 37

Fine-grained Coupling

My Text Your Text My Text Your Text

slide-38
SLIDE 38

Dewan 290-F99 38

Distributed Control

My Text Your Text My Text Your Text

slide-39
SLIDE 39

Dewan 290-F99 39

Produced Exported

Coupling Principle

Imported Shared Max(T1, T2) (T1) (T2) (T0)

slide-40
SLIDE 40

Dewan 290-F99 40

Distributed Control

My Text Your Text My Text Your Text Keystroke < Return communicateOn = Max (TransmitOn, ListenOn)

slide-41
SLIDE 41

Dewan 290-F99 41

Shared Text

Text Text Asymmetric Control communicateOn : {Keystroke, Return, Delete) Keystroke < Return, Delete

slide-42
SLIDE 42

Dewan 290-F99 42

File-based Coupling

Text Text File Commit Load communicateOn: {…, Committed}

slide-43
SLIDE 43

Dewan 290-F99 43

Correctness-based Coupling

int num, num1 = 0 Text File Unparsed

slide-44
SLIDE 44

Dewan 290-F99 44

Correctness-based Coupling

int num; num1 = 0 Text File Parsed

slide-45
SLIDE 45

Dewan 290-F99 45

Correctness-based Coupling

int num1; num1 = 0 Text File Validated

slide-46
SLIDE 46

Dewan 290-F99 46

Correctness-based Coupling

int num1; num1 = 0 Text File communicateOn: {Raw, Parsed, Validated, Committed} Commit Raw < Parsed < Validated < Committed

slide-47
SLIDE 47

Dewan 290-F99 47

Time-based Coupling

int num1; num1 = 0 Text File communicateOn: {Period, Time) Commit

slide-48
SLIDE 48

Dewan 290-F99 48

Mail-based Coupling

Text Text File Commit Load communicateOn: {…, Send, Receive)

slide-49
SLIDE 49

Dewan 290-F99 49

Mail-based Coupling

Text Text File Commit Load transmitOn: {..., Commit, Send) Buffer listenOn: {..., Commit, Receive)

slide-50
SLIDE 50

Dewan 290-F99 50

Sharing Objects

Version Version Base Commit Load transmitOn: {…, Increment, Completion) Buffer Completion= Return || Mouserelease Increment = Keystroke || Mousedrag

slide-51
SLIDE 51

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}

slide-52
SLIDE 52

Dewan 290-F99 52

Coupling Objects Vs Versions

X = 6 X = 5 X = 5 X = 5 Y = 25

slide-53
SLIDE 53

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

slide-54
SLIDE 54

Dewan 290-F99 54

RTCAL Vs GroupKit

Public Appts Private Appts Public Appts Public Appts Public Appts

slide-55
SLIDE 55

Dewan 290-F99 55

Suite Sharing Model

Version Version Base Buffer

Value TOp Font Cursor Widget Color RW Scrollbar

slide-56
SLIDE 56

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

slide-57
SLIDE 57

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

slide-58
SLIDE 58

Dewan 290-F99 58

Design of Collaboration Functions

  • Session Management
  • Coupling
  • Concurrency Control
  • Access Control
  • Undo/Redo
  • Merging
  • Awareness
slide-59
SLIDE 59

Dewan 290-F99 59

Concurrency Control Examples

  • RTCAL
  • Grove
  • CES
  • GroupDraw
  • Sync
  • Floor Control
  • No Control
  • Tickle Locks
  • Optimistic,

Selection- based Locks

  • Optimistic

Transactions

slide-60
SLIDE 60

Dewan 290-F99 60

Concurrency Control Goals

  • Consistency
  • Concurrency
  • Performance
slide-61
SLIDE 61

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

slide-62
SLIDE 62

Dewan 290-F99 62

Free Vs Controlled

  • WYSIWIS Vs WYSINWIS Coupling
  • Small Vs Large Teams
  • Efficiency
slide-63
SLIDE 63

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 =

slide-64
SLIDE 64

Dewan 290-F99 64

Concurrent Drawing

slide-65
SLIDE 65

Dewan 290-F99 65

Concurrent Drawing

slide-66
SLIDE 66

Dewan 290-F99 66

Concurrent Drawing

slide-67
SLIDE 67

Dewan 290-F99 67

Non-Serializable: Reject

T1 R(Drawing) W (Drawing) T2 R (Drawing) W (Drawing)

slide-68
SLIDE 68

Dewan 290-F99 68

Finer-Granularity: Serializable

T1 R(Line) W (Line) T2 R (Rectangle) W (Rectangle)

slide-69
SLIDE 69

Dewan 290-F99 69

Non- Serializable: Accept

T1 R(Drawing) W (Line) T2 R (Drawing) W (Rectangle)

slide-70
SLIDE 70

Dewan 290-F99 70

Concurrent Drawing

slide-71
SLIDE 71

Dewan 290-F99 71

Concurrent Drawing

slide-72
SLIDE 72

Dewan 290-F99 72

Concurrent Drawing

slide-73
SLIDE 73

Dewan 290-F99 73

Type-Specific: Reject

T1 R(Line) Rotate (Line) T2 R (Line) Color (Line)

slide-74
SLIDE 74

Dewan 290-F99 74

Type-Specific: Serializable

T1 R(Line.Bounds) Rotate (Line) T2 R (Line.Color) Color (Line)

slide-75
SLIDE 75

Dewan 290-F99 75

Concurrent Drawing

slide-76
SLIDE 76

Dewan 290-F99 76

Concurrent Drawing

slide-77
SLIDE 77

Dewan 290-F99 77

Concurrent Drawing

slide-78
SLIDE 78

Dewan 290-F99 78

Concurrent Drawing

slide-79
SLIDE 79

Dewan 290-F99 79

Schedule

T1 R(Drawing) W (Line) T2 R (Drawing) W (Rectangle) R(Drawing) W (Line)

slide-80
SLIDE 80

Dewan 290-F99 80

Splitting Transaction

T1 R(Drawing) W (Line) T2 R (Drawing) W (Rectangle) R(Drawing) W (Line) T3

slide-81
SLIDE 81

Dewan 290-F99 81

Joining Transactions

U1 R(Drawing) W (Line) U2 R (Drawing) W (Rectangle) R(Drawing) W (Line)

slide-82
SLIDE 82

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

slide-83
SLIDE 83

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

slide-84
SLIDE 84

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

slide-85
SLIDE 85

Dewan 290-F99 85

Design of Collaboration Functions

  • Session Management
  • Coupling
  • Concurrency Control
  • Access Control
  • Undo/Redo
  • Merging
  • Awareness
slide-86
SLIDE 86

Collaborative Application

Application Window Window User 1 User 2

slide-87
SLIDE 87

Access Control

Application Window Window User 1 User 2

slide-88
SLIDE 88

Meta Access Control

Application Window Window User 1 User 2 Authorizer Meta Authorizer

slide-89
SLIDE 89

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

slide-90
SLIDE 90

Dewan 290-F99 90

Access Control Principles

  • Total Mediation
  • No Secret Design
  • Least Privilege (Need to Know)
  • Ease of Use
slide-91
SLIDE 91

Traditional Protected Objects

matmult.java Matrix matmult.java Graphics Button.java R W X R W I D M

slide-92
SLIDE 92

Traditional Access Control

matmult.java Matrix matmult.java Graphics Button.java R W X R W I D M

slide-93
SLIDE 93

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!

slide-94
SLIDE 94

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

slide-95
SLIDE 95

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

slide-96
SLIDE 96

Dewan 290-F99 96

Optimistic Access Control

Semantic Object

  • UpdateR

+WriteR +InsertR +DeleteR +ReadR Interaction Object

slide-97
SLIDE 97

Dewan 290-F99 97

Pessimistic Access Control

Semantic Object

  • UpdateR

Interaction Object

  • WriteR
  • InsertR
  • DeleteR
  • ReadR
slide-98
SLIDE 98

Dewan 290-F99 98

Traditional Access Matrix

Objects

Subjects rights

slide-99
SLIDE 99

Dewan 290-F99 99

Extended Access Matrix

Objects + groups

Subjects + groups rights + groups

slide-100
SLIDE 100

Suite Access Control

AnAnnotation +CoupleR Annotator +ScrollCoupleR +DataCoupleR Bob Alice Alice’s Annotation Bob’s Annotation Bob Alice Access List Entry

slide-101
SLIDE 101

Suite Access Control: Implications

UpdateR WriteR InsertR DeleteR ReadR

slide-102
SLIDE 102

Dewan 290-F99 102

User Groups as Protected Objects

Role TakeR LeaveR DeleteR

slide-103
SLIDE 103

Suite Access Control: Implications

+TransmitIncrementR +TransmitCompleteR +TransmitPeriodicR +TransmitExplicitR +ModifySessionR +CreateSessionR +ReadSessionR

slide-104
SLIDE 104

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

slide-105
SLIDE 105

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!

slide-106
SLIDE 106

Build Access-Control Class

Protected Object User AC

slide-107
SLIDE 107

Instantiate Class Again

Protected Object User* User AC AC*

slide-108
SLIDE 108

Must Instantiate Again

Protected Object User* User AC AC* User** AC**

slide-109
SLIDE 109

Infinite Recursion

Protected Object User* User AC AC* User** AC** User*** AC***

slide-110
SLIDE 110

Roles, Right Inheritance, Implications, User- defined rules

Stopping Recursion

Protected Object User Access Control Roles, Right Inheritance, Implications

slide-111
SLIDE 111

Roles, Right Inheritance, Implications, User- defined rules

Existing Meta Control

Protected Object User Access Control Roles, Right Inheritance, Implications

  • wner

central authorizer

slide-112
SLIDE 112

Flexible Authorizer Assignment

public int i; void f() { public int i; void f() { No Authorizer

slide-113
SLIDE 113

Flexible Authorizer Assignment

public int i; void f() { public int i; void f() { moderator Central Authorizer

slide-114
SLIDE 114

Flexible Authorizer Assignment

public int i; void f() { public int i; void f() { Single Owner Alice

slide-115
SLIDE 115

Flexible Authorizer Assignment

public int i; void f() { public int i; void f() { Multiple Owners Alice Bob

slide-116
SLIDE 116

Partial Authorization

public int i; void f() { public int i; void f() { Alice Bob Professor

slide-117
SLIDE 117

Partial Authorization

public int i; void f() { public int i; void f() { Alice Bob Professor Leader

slide-118
SLIDE 118

Delegation

Professor TA 1 Exam +CoupleR Students Delegate TA 2 Delegate

slide-119
SLIDE 119

Shallow Revocation

Professor TA 1 Exam +CoupleR Students TA 2 Delegate

slide-120
SLIDE 120

Deep Revocation

Professor TA 1 Students TA 2

slide-121
SLIDE 121

Proportional Overhead

Programming Contest Brainstorming Military Programming

slide-122
SLIDE 122

Incremental Migration Path

Programming Contest Brainstorming Military Programming

slide-123
SLIDE 123

Economy of Concepts

Protected Objects Meta Control Access Control

slide-124
SLIDE 124

Fine-Grained Meta Rights => Partial Authorization

+CoupleR +CoupleR* +DataR +DataR* +SessionR +SessionR*

slide-125
SLIDE 125

Automatically-Generated Include and Imply Relationships => Proportional Overhead, Economy

+ModifySessionR +CreateSessionR +SessionR +ModifySessionR* +CreateSessionR* +SessionR*

slide-126
SLIDE 126

Authorizer Problem: Owner

+CoupleR* public int i; void f() { Bob (Object Creator) Alice (Application Starter) +ScrollR +ScrollR* +CoupleR

slide-127
SLIDE 127

Authorizer Problem => Ownership

Bob (Object Creator) public int i; void f() { Alice (Application Starter)

slide-128
SLIDE 128

Owner Lists => Joint Ownership

Bob (Object Creator) Alice Bob +OlistR +OlistR* public int i; void f() { Alice (Application Starter)

slide-129
SLIDE 129

Default Ownership Semantics

+OwnerR +OListR, OListR*, AllR, AllR* Alice Bob +OwnerR +OwnerR Default Ownership public int i; void f() { OL ~ ACL

slide-130
SLIDE 130

Flexible Ownership Semantics => Flexible Authorizer Assgnmt

No authorizer +OwnerR Class Object All AllR* ACL

slide-131
SLIDE 131

Flexible Ownership Semantics => Flexible Authorizer Assgnmt

Class Object Administrator Central authorizer AllR* +OwnerR ACL

slide-132
SLIDE 132

Total & Partial Delegation => Proportional Cost & Economy

Alice Alice Bob Exam +CoupleR Students Total

slide-133
SLIDE 133

Total & Partial Delegation => Proportional Cost & Economy

Alice Alice Bob Alice Bob Exam +CoupleR Students Exam +CoupleR* Exam +CoupleR Students Total Partial

slide-134
SLIDE 134

Shallow Revocation

Alice Alice Alice Bob Exam +CoupleR Students Exam +CoupleR Students Total Partial

slide-135
SLIDE 135

Shallow Revocation

Alice Alice Alice Bob Exam +CoupleR Students Exam

  • CoupleR*

Exam +CoupleR Students Total Partial

slide-136
SLIDE 136

Delegation for Flexible Revocation

Alice Grantee Exam

  • CoupleR

Faculty Student Grantee +AddMemberR Bob Grantee +AddMemberR*

slide-137
SLIDE 137

Delegation for Flexible Revocation

Alice Grantee Exam

  • CoupleR

Grantee +AddMemberR Bob Grantee +AddMemberR*

slide-138
SLIDE 138

Delegation for Flexible Revocation

Alice Grantee Exam

  • CoupleR

Faculty Student Grantee +AddMemberR Bob Grantee +AddMemberR*

slide-139
SLIDE 139

Delegation for Flexible Revocation

Alice Grantee Exam +CoupleR Faculty Student Grantee

  • AddMemberR

Bob Grantee

  • AddMemberR*
slide-140
SLIDE 140

Delegation for Flexible Revocation

Alice Grantee Exam +CoupleR Student Grantee

  • AddMemberR

Bob Grantee

  • AddMemberR*

Partial Undo

slide-141
SLIDE 141

Delegation for Flexible Revocation

Alice Grantee Exam

  • CoupleR

Grantee

  • AddMemberR

Bob Grantee

  • AddMemberR*

Total Revocation

slide-142
SLIDE 142

Dewan 290-F99 142

Example Policies

Drawing +AllR All

Free for All

Outline +InsertR All

Grove

+OwnerR +DataR,+DataR*

slide-143
SLIDE 143

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

slide-144
SLIDE 144

Dewan 290-F99 144

Examples (Contd.)

Program Name +WriteR Chairman

Software Inspection Tool

+AllR All Program +ReadR All +FormatR, FormatR* Formatter

slide-145
SLIDE 145

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

slide-146
SLIDE 146

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

slide-147
SLIDE 147

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

slide-148
SLIDE 148

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

slide-149
SLIDE 149

Experience (contd)

  • Graphical Tool for Displaying

Inheritance and Implications

  • Use 1-Dimensional Inheritance at

a Time

slide-150
SLIDE 150

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

slide-151
SLIDE 151

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

slide-152
SLIDE 152

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

slide-153
SLIDE 153

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

slide-154
SLIDE 154

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

slide-155
SLIDE 155

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’’

slide-156
SLIDE 156

Dewan 290-F99 156

Multi-user Undo Factors

  • Single-User Undo
  • Coupling
  • Access Control
  • Broadcast Scheme
  • Concurrency Control
slide-157
SLIDE 157

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

slide-158
SLIDE 158

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

slide-159
SLIDE 159

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

slide-160
SLIDE 160

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

slide-161
SLIDE 161

Dewan 290-F99 161

Non-WYSIWIS Coupling

A1 B1 A1 B1 A2

slide-162
SLIDE 162

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

slide-163
SLIDE 163

Dewan 290-F99 163

Cooperative Manipulation

Create O Move O Undo Undo Create O Move O O Create O Move O Exception!

slide-164
SLIDE 164

Dewan 290-F99 164

Selection-based Undo

A1 B1 A2 A3 Undo(B1) A1 B1 A2 A3 A1 B1 A3 A1 B1 A3

slide-165
SLIDE 165

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

slide-166
SLIDE 166

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

slide-167
SLIDE 167

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

slide-168
SLIDE 168

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

slide-169
SLIDE 169

Dewan 290-F99 169

Asynchronous Commands

A1 B1 A2 A3 Transmit (A2, A3) A1 B1 A1 B1 A2 A3 A1 B1 A2 A3

slide-170
SLIDE 170

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)

slide-171
SLIDE 171

Dewan 290-F99 171

Single-User Interaction

slide-172
SLIDE 172

Dewan 290-F99 172

Single-User Undo

slide-173
SLIDE 173

Dewan 290-F99 173

Multi-User Interaction

slide-174
SLIDE 174

Dewan 290-F99 174

Multi-User Undo

slide-175
SLIDE 175

Dewan 290-F99 175

Race Condition: Undo Decision

slide-176
SLIDE 176

Dewan 290-F99 176

Race Condition: Concurrent Change

slide-177
SLIDE 177

Dewan 290-F99 177

Undo by Reference

slide-178
SLIDE 178

Dewan 290-F99 178

WYSINWIS Histories

slide-179
SLIDE 179

Dewan 290-F99 179

Corresponding Undo

slide-180
SLIDE 180

Dewan 290-F99 180

Transmitting Changes

slide-181
SLIDE 181

Dewan 290-F99 181

Undoing Transmission

slide-182
SLIDE 182

Dewan 290-F99 182

Triggering Computations

slide-183
SLIDE 183

Dewan 290-F99 183

Undoing Computation