Page 1
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
Page 2
Centralization
● For-profit
● Surveillance
● Monopoly
● Centralised Control
● Top-down
● US-centric
● Proprietary Software
● Single Ownership
Page 3
Decentralization
● Privacy
● Anonymity
● Decentralised Control
● Bottom-up
● Diversity
Page 4
Emerging Alternatives
Page 5
How do we collaborate?
Page 6
Collaboration App Types
ProjectManagement Communication
Text / File based Collaboration Blend RT
Collaboration
Page 7
Email
Federated
Open Standard
Free/Open Source
Universal?
Page 8
The collaboration we want...
Real-Time Collaboration
Federated Infrastructure
Free/Open Source
Flexible, Extensible… API
Page 11
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
Page 12
Collaboration Technologies
CentralizedCloud
Decentralized
Monolithic app / service
Low Level API / LibraryTogetherJS
WebRTC, YJS
More value for developers
ShareJSDerbyJS
SwellRT
Page 14
SwellRT
Development Framework for Decentralized Real-Time Collaborative Apps
Page 15
Federated Database for Collaborative Objects
Page 16
Objects Have a global ID on Internet
myserver.net/s+zpk87MzATiA
Page 17
Objects =
JSON Documentswith steroids
“Hello World” 325.00
0€
Page 18
{ "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" ],
Page 19
Participants
Humans &
Bots
Collaborative Objects
Access ControlRules
Object
Page 20
Participantshave a global ID
on Internet
[email protected]
Page 21
Database / Framework
SwellRT API
App (Frontend)
SwellRT(Backend)
Page 22
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
Page 23
Federated
Server Server
Server Server
Page 24
Changes
Real-time changepropagation
Collaborative Object
Page 25
More features...
● JavaScript, Java, Android clients
● Rich Text Editor with Widgets
● Provided as Docker Image
● Mobile Notifications
Page 26
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
Page 27
Technologies Quadrant
CentralizedCloud
Decentralized
Monolithic app / service
Low Level API / LibraryTogetherJS
WebRTC, YJS
End-user products / services
Hard adoption
Platform
More value for developers
Page 28
Useful to build...
...a new Slack
...a new GDrive
...a new Trello
Page 29
An example?
Web App: http://teem.works
Android App: http://tiny.cc/teemapp
Page 30
Web http://swellrt.org
https://github.com/P2Pvalue/swellrt
SwellRT
Page 31
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