Upload
nicolaescu-petru
View
297
Download
2
Embed Size (px)
Citation preview
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
1
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
2
LearningLayers
Responsive Open
Community Information
Systems
Community Visualization
and Simulation
Community Analytics
Community Support
Web
An
alytics
Web
En
gin
eeri
ng
Advanced Community Information
Systems (ACIS) Group @ RWTH Aachen
Requirements
Engineering
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
3
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
4
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
5
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
6
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
7
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
9
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
10
LearningLayers
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
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
11
LearningLayers
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 orusing a database
Custom data types can be combined with other existingtypes
Open-source community (academia and industry)
Next: maintainance, further evaluation of Yjs, addingawareness, more types and applications
http://y-js.org
Lehrstuhl Informatik 5
(Information Systems)
Prof. Dr. M. Jarke
12
LearningLayers
Contact Information
https://github.com/y-js
Email: [email protected]
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