11
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 [email protected]

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

Embed Size (px)

Citation preview

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

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

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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