60
SwellRT: Facilitating decentralized real-time collaboration Samer Hassan @samerP2P #Decentralization Berkman Klein Center at Harvard Universidad Complutense de Madrid

SwellRT: Facilitating decentralized real-time collaboration

Embed Size (px)

Citation preview

Page 1: SwellRT: Facilitating decentralized real-time collaboration

SwellRT:

Facilitating decentralized real-time collaboration

Samer Hassan @samerP2P #Decentralization

Berkman Klein Center at Harvard

Universidad Complutense de Madrid

Page 2: SwellRT: Facilitating decentralized real-time collaboration

Consuming responsibly

Page 3: SwellRT: Facilitating decentralized real-time collaboration

Using responsibly

Page 4: SwellRT: Facilitating decentralized real-time collaboration

Legal Context

City

State

Federation

Page 5: SwellRT: Facilitating decentralized real-time collaboration

Technology is Political

Page 6: SwellRT: Facilitating decentralized real-time collaboration

Technical Context

App

Platform

Infrastructure

Page 7: SwellRT: Facilitating decentralized real-time collaboration

Web 2.0: Platforms

Page 8: SwellRT: Facilitating decentralized real-time collaboration

Web 2.0: Platforms

Page 9: SwellRT: Facilitating decentralized real-time collaboration

Web 2.0: Platforms

Page 10: SwellRT: Facilitating decentralized real-time collaboration

Web 2.0: Platforms

Page 11: SwellRT: Facilitating decentralized real-time collaboration

How bad is it?

Page 12: SwellRT: Facilitating decentralized real-time collaboration

Centralization

For-profit

Surveillance

Monopoly

Centralised Control

Top-down

US-centric

Proprietary Software

Single Ownership

Page 13: SwellRT: Facilitating decentralized real-time collaboration

This was different...

Page 14: SwellRT: Facilitating decentralized real-time collaboration

Decentralization

Bottom-up

Diversity

Privacy

Anonymity

Decentralised Control

Page 15: SwellRT: Facilitating decentralized real-time collaboration

Emerging Alternatives

Page 16: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration

Page 17: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration

Page 18: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration

Page 19: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration

Page 20: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration

Page 21: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration

Page 22: SwellRT: Facilitating decentralized real-time collaboration

Multiple Use Cases

- File Sharing

- Microblogging

- Permanent Storage

- Shared ledger

- Social Networking

- Collaboration…?

Page 23: SwellRT: Facilitating decentralized real-time collaboration

How do we collaborate?

Page 24: SwellRT: Facilitating decentralized real-time collaboration

Collaboration App Types

ProjectManagement

Communication Text / File based Collaboration

Blend RTCollaboration

Page 25: SwellRT: Facilitating decentralized real-time collaboration

We may want to build...

Page 26: SwellRT: Facilitating decentralized real-time collaboration

We may want to build...

Page 27: SwellRT: Facilitating decentralized real-time collaboration

We may want to build...

Page 28: SwellRT: Facilitating decentralized real-time collaboration

Building Decentralized Software is Hard

Page 29: SwellRT: Facilitating decentralized real-time collaboration

Development Frameworks assume centralization

Page 30: SwellRT: Facilitating decentralized real-time collaboration

What is SwellRT?

Page 31: SwellRT: Facilitating decentralized real-time collaboration

Development Framework for Decentralized Real-Time Collaborative Apps

Page 32: SwellRT: Facilitating decentralized real-time collaboration

Collaboration Technologies

Centralized Decentralized

Monolithic

Low Level API / LibraryTogetherJS

WebRTC, YJS

More value for developers

ShareJSDerbyJS

Page 33: SwellRT: Facilitating decentralized real-time collaboration

Similar Technologies

Framework API Framework Framework Framework

Open Source

Decentralized

Rich Text

Page 34: SwellRT: Facilitating decentralized real-time collaboration

History

Page 35: SwellRT: Facilitating decentralized real-time collaboration

E-mail

Federated

Open Standard

Free/Open Source

Universal?

Page 36: SwellRT: Facilitating decentralized real-time collaboration

SwellRT History

Page 37: SwellRT: Facilitating decentralized real-time collaboration

✓ 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

SwellRT History

Page 38: SwellRT: Facilitating decentralized real-time collaboration

✓ Real-time collaboration

✓ Federated

✓ Free/Libre Open Source

✓ API

SwellRT History

Giving back: Apache Wave adopting SwellRT codebase

Page 39: SwellRT: Facilitating decentralized real-time collaboration

Federated Database for Collaborative Objects

Page 40: SwellRT: Facilitating decentralized real-time collaboration

Participantshave a global ID

on Internet

[email protected]

Page 41: SwellRT: Facilitating decentralized real-time collaboration

Collaborative Objects

Have a global ID in Internet

myserver.net/s+zpk87MzATiA

Page 42: SwellRT: Facilitating decentralized real-time collaboration

Collaborative Objects

=JSON Documents

with steroids

“Patient #135A”

$2,000

Page 43: SwellRT: Facilitating decentralized real-time collaboration

Privacy + Collaborative Objects

Object

Access ControlRules

Page 44: SwellRT: Facilitating decentralized real-time collaboration

Privacy + Collaborative Objects

Access ControlRules

Object

Page 45: SwellRT: Facilitating decentralized real-time collaboration

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 46: SwellRT: Facilitating decentralized real-time collaboration

Database / Framework

SwellRT API

App (Frontend)

SwellRT(Backend)

● Storage● Sync● Identity● Federation● Reactive UI

Page 47: SwellRT: Facilitating decentralized real-time collaboration

Database / Framework

SwellRT API

App (Frontend)

SwellRT(Backend)

● Storage● Sync● Identity● Federation● Reactive UI

Page 48: SwellRT: Facilitating decentralized real-time collaboration

Federated

Server Server

Server Server

Page 49: SwellRT: Facilitating decentralized real-time collaboration

Federated

Server Server

Server Server

Page 50: SwellRT: Facilitating decentralized real-time collaboration

Changes

Real-time changepropagation

Collaborative Object

Changes Sync

Page 51: SwellRT: Facilitating decentralized real-time collaboration

Changes

Real-time changepropagation

Collaborative Object

Changes Sync

Page 52: SwellRT: Facilitating decentralized real-time collaboration

Database Framework

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

•Persistence•Search engine•Real-time access control (concurrency control)

Page 53: SwellRT: Facilitating decentralized real-time collaboration

➔ Rich Text Editor + Widgets

➔ Provided as Image

➔ Clients for

More Features

Page 54: SwellRT: Facilitating decentralized real-time collaboration

An Example

Page 55: SwellRT: Facilitating decentralized real-time collaboration

A visual way to get people involved

Explore other projects

Page 56: SwellRT: Facilitating decentralized real-time collaboration
Page 57: SwellRT: Facilitating decentralized real-time collaboration

An example: Teem

Web App: http://teem.works

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

Page 58: SwellRT: Facilitating decentralized real-time collaboration

Samer HassanBerkman Center at Harvard

Universidad Complutense de Madridhttp://samer.hassan.name

@samerP2P

This presentation is a composition of text and images by Samer Hassan. 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 or institutions. Sources of other images: CSA Tabacalera, Calvin & Hobbes, Big Bang Theory, Brainless Tales, Baran (1964), P2Pvalue, GRASIA UCM, Wikipedia, Microsoft, Journal of Peer Production, Teemu Arina’s slideshare, and unknown others

Questions?

Page 60: SwellRT: Facilitating decentralized real-time collaboration

Thank you

Samer Hassan @samerP2P

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: Mercado de Economía

Social de Madrid, Dries Buytaert Blog, Baran (1964), P2Pvalue, GRASIA UCM, Wikipedia, Microsoft and

unknown others