O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types

547 visualizações

Publicada em

GROUP 2016 Presentation of the paper "Near Real-Time Peer-to-Peer Shared Editing on Extensible
Data Types" by Petru Nicolaescu, Kevin Jahns, Michael Derntl and Ralf Klamma.

Publicada em: Software
  • Seja o primeiro a comentar

Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types

  1. 1. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 1 Learning Layers This slide deck is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types Petru Nicolaescu*, Kevin Jahns*, Michael Derntl**, Ralf Klamma* *Advanced Community Information Systems (ACIS) RWTH Aachen University, Germany **eScience-Center Eberhard Karls Universität Tübingen, Germany nicolaescu@dbis.rwth-aachen.de
  2. 2. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 2 Learning Layers Responsive Open Community Information Systems Community Visualization and Simulation Community Analytics Community Support WebAnalytics WebEngineering Advanced Community Information Systems (ACIS) Group @ RWTH Aachen Requirements Engineering
  3. 3. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 3 Learning Layers Collaboration on Shared Data - Algorithmic Perspective: YATA  Near real-time (NRT) collaboration beyond text editing  Ensure scalability, flexibility and various (complex) data types Lorem Ipsum text Collaboration Engine Introduction graphs objects
  4. 4. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 4 Learning Layers Collaboration on Shared Data - System Perspective: Yjs  Support NRT shared editing on the Web  P2P, client-server and federated communication protocols  Easy configuration and modular architecture – Various communication (messaging) protocols – Persistence (in-memory, local database) – Data type needs by custom Web applications  Open-source, scalable, easy-to-use framework http://y-js.org Introduction
  5. 5. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 5 Learning Layers Related Work  Operational Transformation (OT) [ElGi89], [SuEl98], [SXAg14] – Focus on transforming conflicting operations – Composed of a control algorithm and a transformation function – Mostly designed for client-server environments – YATA vs. OT – Reduces time to synchronize (good time complexity) – Smaller size of propagated messages – Not restricted to certain data types  Conflict-free Replicated Data Types (CRDTs) [PMSL09], [SPBZ11] – Focus on avoiding conflicts via commutative operations – State-based vs. operation-based – Designed for P2P environments – YATA vs. CRDTs – Deletions follow the tombstone approach – Ensures a total order based on an internal data structure representation (doubly linked list) – Designed for shared editing on the Web – Good time complexity http://y-js.org
  6. 6. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 6 Learning Layers YATA: Formalization, Rules, Characteristics  Belongs to CRDT family  Insert/delete operations  Main properties – Intention preservation – Conflicting insertions – Origin crossing forbidden – Transitivity – Insertions with same origin are ordered by creator id – Proven correctness – Enforcement of a strict total order relation for insertions – Antisymmetry, transitivity and totality rules are fulfilled http://y-js.org Algorithmic perspective
  7. 7. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 7 Learning Layers YATA: Extendable Data Types  Simple data types (list, replace and map managers)  Specific/more complex data formats (XML, JSON) formed by composing simple types http://y-js.org Algorithmic perspective
  8. 8. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 9 Learning Layers Open-Source YATA Implementation: Yjs  Client-side Web-based library implemented in JavaScript  Connectors for messaging protocols (WebSockets, XMPP, WebRTC)  Operations/internal data saved in memory or using a local database  Configuration of needed data types (text, list, map, JSON, etc.)  Garbage collection/offline editing http://y-js.org System perspective
  9. 9. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 10 Learning Layers  Exploration of 3D objects on the Web  Graph-based visual modeling on the Web  Video drawing  Code editing  Rich-text editing  Chat  State synchronization of Web components across multiple devices NRT Collaborative Applications Powered by Yjs http://y-js.org System perspective
  10. 10. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 11 Learning Layers Conclusion and Future Work  Near real-time shared editing on arbitrary data types  YATA: CRDT algorithm designed for P2P settings  Implementation available as open-source JS library (Yjs)  Arbitrary communication protocols (XMPP, WebRTC, WebSockets)  Operation history configurable: in-memory, in-browser or using a database  Custom data types can be combined with other existing types  Open-source community (academia and industry)  Next: maintainance, further evaluation of Yjs, adding awareness, more types and applications http://y-js.org
  11. 11. Lehrstuhl Informatik 5 (Information Systems) Prof. Dr. M. Jarke 12 Learning Layers Contact Information https://github.com/y-js  Email: yjs@dbis.rwth-aachen.de  Slides available on SlideShare: Nicolaescu Petru http://y-js.org Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types Petru Nicolaescu, Kevin Jahns, Michael Derntl, Ralf Klamma

×