taxonomies of collaborative applications
play

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.


  1. Time-based Coupling File Commit int num1; Text num1 = 0 communicateOn: {Period, Time) Dewan 290-F99 47

  2. Mail-based Coupling File Load Commit Text Text communicateOn: {…, Send, Receive) Dewan 290-F99 48

  3. Mail-based Coupling File Load Commit Text Buffer Text transmitOn: {..., Commit, Send) listenOn: {..., Commit, Receive) Dewan 290-F99 49

  4. Sharing Objects Base Load Commit Version Buffer Version transmitOn: {…, Increment, Completion) Increment = Keystroke || Mousedrag Completion= Return || Mouserelease Dewan 290-F99 50

  5. 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

  6. Coupling Objects Vs Versions X = 5 X = 6 X = 5 X = 5 Y = 25 Dewan 290-F99 52

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

  8. RTCAL Vs GroupKit Public Appts Public Appts Private Appts Public Appts Public Appts Dewan 290-F99 54

  9. Suite Sharing Model Base TOp Value Version Buffer Version Cursor Font Widget Color RW Scrollbar Dewan 290-F99 55

  10. 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

  11. 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

  12. Design of Collaboration Functions • Session Management • Coupling • Concurrency Control • Access Control • Undo/Redo • Merging • Awareness Dewan 290-F99 58

  13. Concurrency Control Examples • RTCAL • Floor Control • Grove • No Control • CES • Tickle Locks • GroupDraw • Optimistic, Selection- based Locks • Sync • Optimistic Transactions Dewan 290-F99 59

  14. Concurrency Control Goals • Consistency • Concurrency • Performance Dewan 290-F99 60

  15. 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

  16. Free Vs Controlled • WYSIWIS Vs WYSINWIS Coupling • Small Vs Large Teams • Efficiency Dewan 290-F99 62

  17. 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

  18. Concurrent Drawing Dewan 290-F99 64

  19. Concurrent Drawing Dewan 290-F99 65

  20. Concurrent Drawing Dewan 290-F99 66

  21. Non-Serializable: Reject T1 T2 R(Drawing) R (Drawing) W (Drawing) W (Drawing) Dewan 290-F99 67

  22. Finer-Granularity: Serializable T1 T2 R(Line) R (Rectangle) W (Line) W (Rectangle) Dewan 290-F99 68

  23. Non- Serializable: Accept T1 T2 R(Drawing) R (Drawing) W (Line) W (Rectangle) Dewan 290-F99 69

  24. Concurrent Drawing Dewan 290-F99 70

  25. Concurrent Drawing Dewan 290-F99 71

  26. Concurrent Drawing Dewan 290-F99 72

  27. Type-Specific: Reject T1 T2 R(Line) R (Line) Rotate (Line) Color (Line) Dewan 290-F99 73

  28. Type-Specific: Serializable T1 T2 R(Line.Bounds) R (Line.Color) Rotate (Line) Color (Line) Dewan 290-F99 74

  29. Concurrent Drawing Dewan 290-F99 75

  30. Concurrent Drawing Dewan 290-F99 76

  31. Concurrent Drawing Dewan 290-F99 77

  32. Concurrent Drawing Dewan 290-F99 78

  33. Schedule T1 T2 R(Drawing) W (Line) R (Drawing) W (Rectangle) R(Drawing) W (Line) Dewan 290-F99 79

  34. Splitting Transaction T1 T2 R(Drawing) W (Line) R (Drawing) W (Rectangle) T3 R(Drawing) W (Line) Dewan 290-F99 80

  35. Joining Transactions U1 U2 R(Drawing) W (Line) R (Drawing) W (Rectangle) R(Drawing) W (Line) Dewan 290-F99 81

  36. 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

  37. 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

  38. 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

  39. Design of Collaboration Functions • Session Management • Coupling • Concurrency Control • Access Control • Undo/Redo • Merging • Awareness Dewan 290-F99 85

  40. Collaborative Application Application Window Window User 1 User 2

  41. Access Control Application Window Window User 1 User 2

  42. Meta Access Control Application Window Window Meta Authorizer Authorizer User 1 User 2

  43. 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

  44. Access Control Principles • Total Mediation • No Secret Design • Least Privilege (Need to Know) • Ease of Use Dewan 290-F99 90

  45. Traditional Protected Objects Matrix matmult.java matmult.java Graphics Button.java R W X R W I D M

  46. Traditional Access Control Matrix matmult.java matmult.java Graphics Button.java R W X R W I D M

  47. 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() {

  48. 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

  49. 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

  50. Optimistic Access Control Semantic -UpdateR Object Interaction Object +WriteR +InsertR +DeleteR +ReadR Dewan 290-F99 96

  51. Pessimistic Access Control Semantic -UpdateR Object Interaction Object -WriteR -InsertR -DeleteR -ReadR Dewan 290-F99 97

  52. Traditional Access Matrix Objects Subjects rights Dewan 290-F99 98

  53. Extended Access Matrix Objects + groups Subjects rights + + groups groups Dewan 290-F99 99

  54. Suite Access Control Bob +ScrollCoupleR Bob Access List Entry +DataCoupleR Annotator +CoupleR AnAnnotation Alice Alice Alice’s Annotation Bob’s Annotation

Recommend


More recommend