m beaudouin lafon groupware 1 master recherche universit
play

M. Beaudouin-Lafon - Groupware 1 Master Recherche - Universit - PowerPoint PPT Presentation

Master Recherche - Universit Paris-Sud Concept Collaborative creation and editing of shared computer artifacts - Typically a shared document - All users have the illusion that they edit the same document Shared Editing Notion of group awareness


  1. Master Recherche - Université Paris-Sud Concept Collaborative creation and editing of shared computer artifacts - Typically a shared document - All users have the illusion that they edit the same document Shared Editing Notion of group awareness Michel Beaudouin-Lafon - Knowing what the others are doing -> different from, e.g., a multi-user database Notion of collaborative task Université Paris-Sud - Users work towards the same goal - Implicit of explicit coordination of their actions Types of shared editors The notion of congruence Stefik et al., 1987 Different document types: text, graphics, spreadsheet, etc. View congruence Part of the document being viewed Synchronous: Changes immediately visible to all Asynchronous: Changes visible to others at a later time Display space congruence Organization of the windows Homogeneous: All users must use the same software Heterogeneous: Users can use different software Time of display congruence When changes are seen by other users Collaboration-aware: Include group awareness features Collaboration-transparent: No group awareness features Subgroup congruence Users who see the changes M. Beaudouin-Lafon - Groupware 1

  2. Master Recherche - Université Paris-Sud WYSIWIS / WYSIAWIS Sample shared editors (historical) Text, asynchronous (different time) – Quilt (Leland, Fish & Kraut, 1988) WYSIWIS – Prep (Neuwirth et al., 1989) Strict view congruence Text, synchronous (real-time) – Grove (Ellis, Gibbs & Rein, 1989) – ShrEdit (McGuffin & Olson, 1992) – SASSE (Baecker et al., 1993) WYSIAWIS Relaxed view congruence Graphics, synchronous (real-time) – GroupDesign (Karsenty & Beaudouin-Lafon, 1992) Real-time text editor: GROVE Asynchronous text editor: Prep Ellis et al., 1989 Neuwirth et al., 1992 Group Outline Viewing Editor – Concurrent editing at the character level – Private, Shared and Public views – Clouds to show the activity of other users – Aging text: blue at first, then progressively black M. Beaudouin-Lafon - Groupware 2

  3. Master Recherche - Université Paris-Sud Real-time text editor: Sasse Real-time graphics: GroupDesign Baecker et al., 1993 Karsenty, 1992 Group-awareness widgets - Scrollbars - Radar view GroupDesign Modern systems Karsenty, 1992 Group-awareness features: – Show participants as colors SubethaEdit – Immediate feedback of commands for the local user – Echo of the command for the other users, until completed Local site Remote sites Microsoft Office Google docs (icon) During resize interaction At the end (animation) of resize interaction M. Beaudouin-Lafon - Groupware 3

  4. Master Recherche - Université Paris-Sud Problems of modern systems Homogeneous All users must use the same application Mostly cloud-based Implementation of real-time groupware Who owns your documents and where are they? What if you do not have network access? Do not support different levels of coupling Strong coupling: pure WYSIWIS Loose coupling: WYSIAWIS Very loose coupling: asynchronous Approaches Some vocabulary Collaboration-transparent system Participant: a user in a session – Wrapping a single-user application Session: one or more documents, edited by one or more users – Screen and window sharing Invitation: giving a user access to a session – Turn taking Floor control: policy for managing input from multiple users – Example: VNC Turn-taking: Floor control where one user can edit at a time Telepointer: visualization of one’s cursor on other users’ screens Collaboration-aware system Coupling: how local actions are tied to remote actions – Designed from the start for collaborative work Response time: time for an action to be executed locally – Consistency of distributed copies Notification time: time for an action to be executed remotely – Robustness: a failure of a distant network or computer should not affect the local user Replication: transparently managing multiple copies of a document – Example: Google Docs Robustness: sensitivity to remote faults M. Beaudouin-Lafon - Groupware 4

  5. Master Recherche - Université Paris-Sud Implementation Implementation Some similarities with operating systems and databases: responses – Several users, geographical distribution, concurrent access, replication, faults... user feedback operations objects – BUT groupware does not try to be transparent , i.e. hide users commands Specific issues: – Group awareness Three main types of software architecture: • View congruence ( WYSIWIS, WYSIAWIS ) – Centralised: simple, but low response time, brittle • Feedthrough (telling other users what I am doing) – Replicated: good response/notification time, but complex – Latecomers – Hybrid: mostly replicated with some centralized functions • Getting users that arrive during the session up to speed Development tools: screen sharing, shared window systems, groupware toolkits Managing conflicts Causality and logical clocks Problem: consistency of distributed data Strong notion of causality Each site generates events and sends them to other sites If A happened before B, then A must be executed before B Each site must execute the events so that the result is (because A may have influenced B) consistent across sites Total ordering of events: Lamport’s logical clocks Two classes of algorithms One logical clock per site (counter) – pessimistic (locks) Incremented for each local event, Sent with each event – optimistic (events + undo) When an event arrives with a timestamp t if t > localclock then localclock <- t +1 Optimistic algorithms: Timestamp defines a partial order of events – operational transformation, e.g. dOpt (GROVE) Turned into a global order with an ordering of sites – optimized undo/redo, e.g. ORESTE (GroupDesign) (t1, s1) < (t2, s2) iff t1 < t2 or (t1 = t2 & s1 < s2) M. Beaudouin-Lafon - Groupware 5

  6. Master Recherche - Université Paris-Sud Undo-redo algorithm ORESTE Karesenty & Beaudouin-Lafon, 1993 Principles Principle Every operation op must have an inverse op -1 – Consistent state when the system is quiescent (all sent messages have been received and processed) Each site maintains a history of events – Uses Lamport timestamps for total ordering (op 1 , t 1 , s 1 ) … (op n , t n , s n ) – Undo/redo when a message arrives out of order When an event arrives out of sync Optimizing undo/redo (op i , t i , s i ) with (t i , s i ) < (t n , s n ) – Concept of compatible order Undo the operations between i and n – Take advantage of commutativity and masking Execute op i between operations Redo operations between i and n – Use total order in case of a conflict ORESTE : commutativity ORESTE : masking A changes the shape to an ellipse A changes color to blue B changes the color to orange B changes color to orange Total order is A then B Total order is A then B A B A B B A B A A can be ignored because it is masked by B A and B commute M. Beaudouin-Lafon - Groupware 6

  7. Master Recherche - Université Paris-Sud Operational transform: problem Operational transform: problem Concurrent editing of text When A inserts m, B’s cursor should move to the right Each user represented by the offset of his/her cursor When B deletes w, A’s cursor should move to the left Basic operations: Move cursor forward, backward Site A Site B Insert character Hello |w|orld Hello |w|orld Delete character Hello m|w|orld (A inserts m) Hello ||orld (B deletes character) Problem: Hello m||orld (A receives delete) Hello m||orld (B receives insert m) Site A Site B Hello |w|orld Hello |w|orld Is this sufficient? Hello m||world (A inserts m) Hello ||orld (B deletes character) Not quite Hello |w|orld (A receives delete) Hello |m|orld (B receives insert m) If cursors at same position, it may not work If operations are delayed longer, it may not work Operational transform: solution Operational transform: example Total ordering of operations (Lamport timestamps) Forward transformation: include impact of op2 into op1 When an operation arrives out of order, it is transformed: T(insert(p1, c1, s1), insert(p2, c2, s2)) It is modified to take into account the effects of the if (p1 < p2) or (p1 = p2 and s1 < s2) operations that have occurred since it was issued then return ins (p1, c1, s1) else return ins (p1+1, c1, s1) For each pair of operations op1, op2, where op2 arrived after op1 but occurred before it, Backward transformation: exclude impact of op2 from op1 we need a transformation T(op1, op2) = op’2 so that T -1 (insert(p1, c1, s1), insert(p2, c2, s2)) op’2(op1(text)) = op1(op2(text)) if (p1 < p2) or (p1 = p2 and s1 < s2) then return ins (p1, c1, s1) When an operation arrives, it is transformed by those that else return ins (p1-1, c1, s1) have occurred since then Note: this requires a potentially unbounded history buffer M. Beaudouin-Lafon - Groupware 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend