Time-based Coupling File Commit int num1; Text num1 = 0 communicateOn: {Period, Time) Dewan 290-F99 47
Mail-based Coupling File Load Commit Text Text communicateOn: {…, Send, Receive) Dewan 290-F99 48
Mail-based Coupling File Load Commit Text Buffer Text transmitOn: {..., Commit, Send) listenOn: {..., Commit, Receive) Dewan 290-F99 49
Sharing Objects Base Load Commit Version Buffer Version transmitOn: {…, Increment, Completion) Increment = Keystroke || Mousedrag Completion= Return || Mouserelease Dewan 290-F99 50
Suite Communication Model Inc < Complete < Send Cur. Base Op Correctness Raw < Parsed < Valid< Comm LTime TTime Version Buffer Version LPeriod TPeriod TOn TCorrectness LCorrectness LOn Value Transmitted if: Value Received When (Op, CurCorr) >= Min (LPeriod, LTime) (TOp, TCorr) Receive Executed LPeriod, LTime: {T, ListenNow} (LOp, LCorr) Dewan 290-F99 51
Coupling Objects Vs Versions X = 5 X = 6 X = 5 X = 5 Y = 25 Dewan 290-F99 52
Coupling Objects Vs Versions hello world Hello world hello World My Out Message John’s Inbox/ /Input Line Chat History Hello John Goodbye John Hello John Dewan 290-F99 53
RTCAL Vs GroupKit Public Appts Public Appts Private Appts Public Appts Public Appts Dewan 290-F99 54
Suite Sharing Model Base TOp Value Version Buffer Version Cursor Font Widget Color RW Scrollbar Dewan 290-F99 55
Suite Sharing Model Value Value ValueC FormatC Font Font Color Version Color Version TOp TOp TCorr TCorr CoupleC CommC ValueC ValueC FormatC FormatC Dewan 290-F99 56
Coupling Policies Semantics Syntax View ValueC = T FormatC = T ViewC = T Synchronous ASynchronous Implicit TOn, LOn = Inc TOn > Inc TOn < Send WYSIWIS Serializable Explicit *C = T TCorr = Ton, Lon = TOn = Send Committed Inc Dewan 290-F99 57
Design of Collaboration Functions • Session Management • Coupling • Concurrency Control • Access Control • Undo/Redo • Merging • Awareness Dewan 290-F99 58
Concurrency Control Examples • RTCAL • Floor Control • Grove • No Control • CES • Tickle Locks • GroupDraw • Optimistic, Selection- based Locks • Sync • Optimistic Transactions Dewan 290-F99 59
Concurrency Control Goals • Consistency • Concurrency • Performance Dewan 290-F99 60
Concurrency Control Dimensions • Free Vs Controlled • Correctness Criterion • User-Transaction Mapping • Sharing and Inconsistency Detection Time – Lock Granularity – Locking/Unlocking Actions Dewan 290-F99 61
Free Vs Controlled • WYSIWIS Vs WYSINWIS Coupling • Small Vs Large Teams • Efficiency Dewan 290-F99 62
Concurrency Control Correctness T1 T2 T3 o11 o21 o31 o12 o22 o32 Actual Schedule Serial Schedule = o31 o21 o11o22 o12 o32 T3 T2 T1 Dewan 290-F99 63
Concurrent Drawing Dewan 290-F99 64
Concurrent Drawing Dewan 290-F99 65
Concurrent Drawing Dewan 290-F99 66
Non-Serializable: Reject T1 T2 R(Drawing) R (Drawing) W (Drawing) W (Drawing) Dewan 290-F99 67
Finer-Granularity: Serializable T1 T2 R(Line) R (Rectangle) W (Line) W (Rectangle) Dewan 290-F99 68
Non- Serializable: Accept T1 T2 R(Drawing) R (Drawing) W (Line) W (Rectangle) Dewan 290-F99 69
Concurrent Drawing Dewan 290-F99 70
Concurrent Drawing Dewan 290-F99 71
Concurrent Drawing Dewan 290-F99 72
Type-Specific: Reject T1 T2 R(Line) R (Line) Rotate (Line) Color (Line) Dewan 290-F99 73
Type-Specific: Serializable T1 T2 R(Line.Bounds) R (Line.Color) Rotate (Line) Color (Line) Dewan 290-F99 74
Concurrent Drawing Dewan 290-F99 75
Concurrent Drawing Dewan 290-F99 76
Concurrent Drawing Dewan 290-F99 77
Concurrent Drawing Dewan 290-F99 78
Schedule T1 T2 R(Drawing) W (Line) R (Drawing) W (Rectangle) R(Drawing) W (Line) Dewan 290-F99 79
Splitting Transaction T1 T2 R(Drawing) W (Line) R (Drawing) W (Rectangle) T3 R(Drawing) W (Line) Dewan 290-F99 80
Joining Transactions U1 U2 R(Drawing) W (Line) R (Drawing) W (Rectangle) R(Drawing) W (Line) Dewan 290-F99 81
Nested Long Transactions Program Team B Team A Module N, O Module L, M Testers rogrammers Module L Module M A B Proc P Proc Q Dewan 290-F99 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-F99 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-F99 84
Design of Collaboration Functions • Session Management • Coupling • Concurrency Control • Access Control • Undo/Redo • Merging • Awareness Dewan 290-F99 85
Collaborative Application Application Window Window User 1 User 2
Access Control Application Window Window User 1 User 2
Meta Access Control Application Window Window Meta Authorizer Authorizer User 1 User 2
Access Control Prevents Security Violations Mistakes Alice’s Bob’s Bob’s Proposal Exam Exam Couple Read Write Alice Bob Alice Overuse of Scarce Resources Join Join Turing Lecture Listener Listener 1 Session 1000 Create Doug Engelbart
Access Control Principles • Total Mediation • No Secret Design • Least Privilege (Need to Know) • Ease of Use Dewan 290-F99 90
Traditional Protected Objects Matrix matmult.java matmult.java Graphics Button.java R W X R W I D M
Traditional Access Control Matrix matmult.java matmult.java Graphics Button.java R W X R W I D M
Collaborative Systems Data Rights Matrix matmult.java matmult.java Graphics Button.java Coupling Rights Buffer Rights R W X UI Rights! R W I D M Numerous Rights! make matmult.java private! public int i; public int i; void g() { // tricky int i, void g() void f() { void f() {
Colab. Objects & Rights Session Window JoinSessionR CursorR ReadSessionR ScrollR ModifySessionR ResizeR RemoveParticipantR MoveR DeleteSessionR No Leave SessionR Apply to Coupled windows Dewan 290-F99 94
Model/View Rights Semantic UpdateR Object Interaction Object WriteR ValueCR HideR InsertR ViewCR ElideR DeleteR FmtCR SelectR ReadR TIncR TitleR FontR TRawR ColorR Data Rights LIncR IndentR Coupling Rights View Rights Dewan 290-F99 95
Optimistic Access Control Semantic -UpdateR Object Interaction Object +WriteR +InsertR +DeleteR +ReadR Dewan 290-F99 96
Pessimistic Access Control Semantic -UpdateR Object Interaction Object -WriteR -InsertR -DeleteR -ReadR Dewan 290-F99 97
Traditional Access Matrix Objects Subjects rights Dewan 290-F99 98
Extended Access Matrix Objects + groups Subjects rights + + groups groups Dewan 290-F99 99
Suite Access Control Bob +ScrollCoupleR Bob Access List Entry +DataCoupleR Annotator +CoupleR AnAnnotation Alice Alice Alice’s Annotation Bob’s Annotation
Recommend
More recommend