SwellRT: Awakening Decentralized Collaboration

31
This project has received funding from the European Union’s Seventh Framework Programme for research, technological development and demonstration under grant agreement no 610961 SwellRT: Awakening Decentralized Collaboration Samer Hassan, Pablo Ojanguren @samerP2P

Transcript of SwellRT: Awakening Decentralized Collaboration

This project has received funding from the European Union’s Seventh Framework Programme for research, technological development and demonstration under grant agreement no 610961

SwellRT: Awakening Decentralized Collaboration

Samer Hassan, Pablo Ojanguren

@samerP2P

Centralization

● For-profit

● Surveillance

● Monopoly

● Centralised Control

● Top-down

● US-centric

● Proprietary Software

● Single Ownership

Decentralization

● Privacy

● Anonymity

● Decentralised Control

● Bottom-up

● Diversity

Emerging Alternatives

How do we collaborate?

Collaboration App Types

ProjectManagement Communication

Text / File based Collaboration Blend RT

Collaboration

Email

Federated

Open Standard

Free/Open Source

Universal?

The collaboration we want...

Real-Time Collaboration

Federated Infrastructure

Free/Open Source

Flexible, Extensible… API

History

SwellRT History

SwellRT History

✓ Real-time collaboration

✓ Federated

✘ Free/Libre Open Source

✘ API

✓ Real-time collaboration

✓ Federated

✓ Free/Libre Open Source

✘ API

✓ Real-time collaboration

✘ Federated

✘ Free/Libre Open Source

✓ API

✓ Real-time collaboration

✓ Federated

✓ Free/Libre Open Source

✓ API

Collaboration Technologies

CentralizedCloud

Decentralized

Monolithic app / service

Low Level API / LibraryTogetherJS

WebRTC, YJS

More value for developers

ShareJSDerbyJS

SwellRT

What is SwellRT?

SwellRT

Development Framework for Decentralized Real-Time Collaborative Apps

Federated Database for Collaborative Objects

Objects Have a global ID on Internet

myserver.net/s+zpk87MzATiA

Objects =

JSON Documentswith steroids

“Hello World” 325.00

0€

{ "wave_id":"local.net/s+zpk87MzATiA",

"participants":[ "[email protected]", "@local.net", "[email protected]", "[email protected]", "[email protected]", "[email protected]" ],

"root":{ "id":"local.net/s+zpk87MzATiA",

"Pad":{

"Annotations":"",

"xml":"<body acl=\"\" ap=\"default\" p=\"root.pad\"><line/>Hu hu hu<line/><line/>Di dii<line/><line/>Trolorolo<line/><line/>Dipistrofia</body>",

"author":"[email protected]",

"contributors":[ "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]" ],

"lastmodtime":1455131731414 },

"promoter":"[email protected]", "title":"SwellRT X", "contributors":[ "[email protected]", "[email protected]", "[email protected]", "[email protected]" ], "communities":[ "local.net/s+5Mnx1Mu4_mA" ],

Participants

Humans &

Bots

Collaborative Objects

Access ControlRules

Object

Participantshave a global ID

on Internet

[email protected]

Database / Framework

SwellRT API

App (Frontend)

SwellRT(Backend)

Database

Framework

● Persistence● Search engine● Real-time access control

(concurrency control)

● Email integration● Notifications ● Identity provider● Multi Platform Reactive API ● Pre-built Components● Backend Management Tools

Federated

Server Server

Server Server

Changes

Real-time changepropagation

Collaborative Object

More features...

● JavaScript, Java, Android clients

● Rich Text Editor with Widgets

● Provided as Docker Image

● Mobile Notifications

Benefits for Developers

Hiding complexity, avoiding extra code for

- Data storage

- Data sharing, communications, sync...

- User identity management

- Federation

- New UX patterns like Reactive UI

Technologies Quadrant

CentralizedCloud

Decentralized

Monolithic app / service

Low Level API / LibraryTogetherJS

WebRTC, YJS

End-user products / services

Hard adoption

Platform

More value for developers

Useful to build...

...a new Slack

...a new GDrive

...a new Trello

An example?

Web App: http://teem.works

Android App: http://tiny.cc/teemapp

Web http://swellrt.org

https://github.com/P2Pvalue/swellrt

SwellRT

Thank you

This presentation is a composition of text and images. The text is released as Creative Commons Attribution 4.0 International. The images are mostly copyrighted and used under Fair Use. The image logos belong to their corresponding brands/ projects/ institutions. Sources: P2Pvalue, GRASIA UCM, Wikipedia, Microsoft and unknown others

@samerP2P