Enviar pesquisa
Carregar
Operational transformation
•
11 gostaram
•
7,681 visualizações
Matteo Collina
Seguir
Tecnologia
Design
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 77
Baixar agora
Baixar para ler offline
Recomendados
DevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web Development
Johannes Brodwall
Introduction to Meteor at ChaDev Lunch
Introduction to Meteor at ChaDev Lunch
Andrew McPherson
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things Day
Matteo Collina
The internet of things - Rails Girls Galway
The internet of things - Rails Girls Galway
Matteo Collina
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
Matteo Collina
Exposing M2M to the REST of us
Exposing M2M to the REST of us
Matteo Collina
Making things that work with us - Distill
Making things that work with us - Distill
Matteo Collina
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Matteo Collina
Recomendados
DevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web Development
Johannes Brodwall
Introduction to Meteor at ChaDev Lunch
Introduction to Meteor at ChaDev Lunch
Andrew McPherson
Making things that works with us - First Italian Internet of Things Day
Making things that works with us - First Italian Internet of Things Day
Matteo Collina
The internet of things - Rails Girls Galway
The internet of things - Rails Girls Galway
Matteo Collina
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
No. la sottile arte di trovare il tempo dove non esite - codemotion 2015
Matteo Collina
Exposing M2M to the REST of us
Exposing M2M to the REST of us
Matteo Collina
Making things that work with us - Distill
Making things that work with us - Distill
Matteo Collina
Making your washing machine talk with a power plant
Making your washing machine talk with a power plant
Matteo Collina
Star Guide Delivery Performance (2.2)
Star Guide Delivery Performance (2.2)
ddodd
E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)
Matteo Collina
CI-18n
CI-18n
Matteo Collina
E così vuoi sviluppare un'app
E così vuoi sviluppare un'app
Matteo Collina
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.
Matteo Collina
Enter the app era with ruby on rails
Enter the app era with ruby on rails
Matteo Collina
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Matteo Collina
Making things that works with us codemotion
Making things that works with us codemotion
Matteo Collina
The usability of open data
The usability of open data
Matteo Collina
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)
Matteo Collina
Making things that works with us
Making things that works with us
Matteo Collina
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejs
Matteo Collina
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
L'universo dietro alle App
L'universo dietro alle App
Matteo Collina
Digital transformation sweet spot: Business operations
Digital transformation sweet spot: Business operations
Marcel Santilli
Operational research
Operational research
Dr Ramniwas
Linear programming ppt
Linear programming ppt
Meenakshi Tripathi
Transportation Problem in Operational Research
Transportation Problem in Operational Research
Neha Sharma
Linear programing
Linear programing
Aniruddh Tiwari
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
François-Guillaume Ribreau
Back To The Future.Key 2
Back To The Future.Key 2
gueste8cc560
Mais conteúdo relacionado
Destaque
Star Guide Delivery Performance (2.2)
Star Guide Delivery Performance (2.2)
ddodd
E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)
Matteo Collina
CI-18n
CI-18n
Matteo Collina
E così vuoi sviluppare un'app
E così vuoi sviluppare un'app
Matteo Collina
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.
Matteo Collina
Enter the app era with ruby on rails
Enter the app era with ruby on rails
Matteo Collina
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Matteo Collina
Making things that works with us codemotion
Making things that works with us codemotion
Matteo Collina
The usability of open data
The usability of open data
Matteo Collina
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)
Matteo Collina
Making things that works with us
Making things that works with us
Matteo Collina
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejs
Matteo Collina
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Matteo Collina
L'universo dietro alle App
L'universo dietro alle App
Matteo Collina
Digital transformation sweet spot: Business operations
Digital transformation sweet spot: Business operations
Marcel Santilli
Operational research
Operational research
Dr Ramniwas
Linear programming ppt
Linear programming ppt
Meenakshi Tripathi
Transportation Problem in Operational Research
Transportation Problem in Operational Research
Neha Sharma
Linear programing
Linear programing
Aniruddh Tiwari
Destaque
(20)
Star Guide Delivery Performance (2.2)
Star Guide Delivery Performance (2.2)
E così vuoi sviluppare un'app (ci servono le APi!)
E così vuoi sviluppare un'app (ci servono le APi!)
CI-18n
CI-18n
E così vuoi sviluppare un'app
E così vuoi sviluppare un'app
No. la sottile arte di trovare il tempo dove non esite.
No. la sottile arte di trovare il tempo dove non esite.
Enter the app era with ruby on rails
Enter the app era with ruby on rails
Crea il TUO database con LevelDB e Node.js
Crea il TUO database con LevelDB e Node.js
Making things that works with us codemotion
Making things that works with us codemotion
The usability of open data
The usability of open data
Enter the app era with ruby on rails (rubyday)
Enter the app era with ruby on rails (rubyday)
Making things that works with us
Making things that works with us
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Building a multi protocol broker for the internet of things using nodejs
Building a multi protocol broker for the internet of things using nodejs
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
L'universo dietro alle App
L'universo dietro alle App
Digital transformation sweet spot: Business operations
Digital transformation sweet spot: Business operations
Operational research
Operational research
Linear programming ppt
Linear programming ppt
Transportation Problem in Operational Research
Transportation Problem in Operational Research
Linear programing
Linear programing
Semelhante a Operational transformation
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
François-Guillaume Ribreau
Back To The Future.Key 2
Back To The Future.Key 2
gueste8cc560
With Great Nerdery Comes Great Responsibility
With Great Nerdery Comes Great Responsibility
John Anderson
The road to professional web development
The road to professional web development
Christian Heilmann
jQuery Conference Toronto
jQuery Conference Toronto
dmethvin
Advanced Topics in Continuous Deployment
Advanced Topics in Continuous Deployment
Mike Brittain
Operationalizing Clojure Confidently
Operationalizing Clojure Confidently
Prasanna Gautam
FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023
Matthew Groves
Performance #6 threading
Performance #6 threading
Vitali Pekelis
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate Javascript
Andrew Lovett-Barron
Back To The Future
Back To The Future
Bill Scott
Progress of JavaScript Architecture
Progress of JavaScript Architecture
Tonya Mork
muCon 2017 - Build Confidence in your System with Chaos Engineering
muCon 2017 - Build Confidence in your System with Chaos Engineering
Sylvain Hellegouarch
Getting Business Exec Buy-in for Architecture Change
Getting Business Exec Buy-in for Architecture Change
Dominica DeGrandis
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
Mike Brittain
The world of gradle - an introduction for developers
The world of gradle - an introduction for developers
Tricode (part of Dept)
jQuery in the [Aol.] Enterprise
jQuery in the [Aol.] Enterprise
Dave Artz
Y U NO CRAFTSMAN
Y U NO CRAFTSMAN
droidcon Dubai
HTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
David Padbury
Y U NO CRAFTSMAN
Y U NO CRAFTSMAN
Paul Blundell
Semelhante a Operational transformation
(20)
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
Back To The Future.Key 2
Back To The Future.Key 2
With Great Nerdery Comes Great Responsibility
With Great Nerdery Comes Great Responsibility
The road to professional web development
The road to professional web development
jQuery Conference Toronto
jQuery Conference Toronto
Advanced Topics in Continuous Deployment
Advanced Topics in Continuous Deployment
Operationalizing Clojure Confidently
Operationalizing Clojure Confidently
FluentMigrator - Dayton .NET - July 2023
FluentMigrator - Dayton .NET - July 2023
Performance #6 threading
Performance #6 threading
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate Javascript
Back To The Future
Back To The Future
Progress of JavaScript Architecture
Progress of JavaScript Architecture
muCon 2017 - Build Confidence in your System with Chaos Engineering
muCon 2017 - Build Confidence in your System with Chaos Engineering
Getting Business Exec Buy-in for Architecture Change
Getting Business Exec Buy-in for Architecture Change
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
The world of gradle - an introduction for developers
The world of gradle - an introduction for developers
jQuery in the [Aol.] Enterprise
jQuery in the [Aol.] Enterprise
Y U NO CRAFTSMAN
Y U NO CRAFTSMAN
HTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
Y U NO CRAFTSMAN
Y U NO CRAFTSMAN
Último
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Roshan Dwivedi
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Principled Technologies
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Edi Saputra
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
The Digital Insurer
Último
(20)
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
Operational transformation
1.
The Secret behind
Google Docs, Google Wave and Zoho Suite: Operational Transformation
2.
Who I am
Matteo Collina Twitter: @matteocollina Website: matteocollina.com
3.
What do I
do?
4.
I study a
lot.. CCAC North Library http://www.flickr.com/photos/ccacnorthlib/3554627894/in/photostream/ CC by 2.0
5.
...and today I'll speak
about what I've studied! CCAC North Library http://www.flickr.com/photos/ccacnorthlib/3554627894/in/photostream/ CC by 2.0
6.
We will see...
7.
We will see... 1.
Why Real Time is cool 2. Why we are solving the wrong problem 3. An algorithm to rule them all
8.
9.
10.
is all about interaction..
11.
..between people,
12.
that acts through
Browsers,
13.
that communicate through
a server!
14.
15.
16.
We can create new
forms of collaboration!
17.
18.
There are LOTS
of frameworks
19.
There are LOTS
of frameworks...
20.
...and companies!
21.
...and companies! Thanks!
22.
The frameworks
are solving 1. How we present the data to the user 2. How to transfer the data on the wire
23.
Where is the interaction
between people?
24.
What happens when they
change the same document?
25.
26.
Really?
27.
Johannes Gilger http://www.flickr.com/photos/heipei/3236351860/
28.
How can we
handle conflicts? Johannes Gilger http://www.flickr.com/photos/heipei/3236351860/
29.
Can users understand
this? Johannes Gilger http://www.flickr.com/photos/heipei/3236351860/
30.
31.
We usually lock our documents to
protect them!
32.
Only the user that locked
the document can edit it!
33.
Some people are doing
it correctly..
34.
Some people are doing
it correctly.. ..how?
35.
What happens when we
edit a document?
36.
37.
Insert(0,"hello ") Delete(6, 5) Insert(6,"world")
38.
s = "jsday" Insert(0,"hello
") s = "hello jsday"
39.
s = "hello
jsday" Delete(6, 5) s = "hello "
40.
s = "hello
" Insert(6,"world") s = "hello world"
41.
The operations are processed as
they arrive: what happens if there are more users sending them?
42.
What happens if
the operations come from two users?
43.
44.
sA = "hello
world" sB = "hello world"
45.
What happens if
operations get delayed? sA = "hello world" sB = "hello world"
46.
47.
sA = "hello
jsday" sB = "hello world"
48.
49.
50.
Operational Transformation
51.
Operational Transformation ➡
has been a research topic for more than 20 years ➡ is a family of algorithms ❖ Jupiter has lead to Google Docs / Wave
52.
Operational Transformation 1. reorders
the operations 2. handles the conflicts between operations 3. garantees the same result on all nodes
53.
Reorder Problem
54.
How can we
reorder the operations?
55.
56.
What is the intention
behind the delete?
57.
s = "hello
jsday" The intention behind the Delete(6, 5) delete is to remove the "jsday" string s = "hello "
58.
Delete(6, 5)
Delete'(12, 5) Insert(6,"world")
59.
Delete(6, 5)
Delete'(12, 5) Insert(6,"world") OT transposes the Delete through the Insert
60.
61.
s = "hello
worldjsday" Delete'(12, 5) s = "hello world"
62.
s = "hello
worldjsday" OT is about changing where Delete'(12, 5) and how the ops are = "hello uted s exec world"
63.
What happens if two
users delete the same string?
64.
What happens
if two users delete the same string? Delete(6, 5) NoOperation Delete(6, 5)
65.
Operational Transformation reorders
the operations handles the conflicts between operations garantees the same result on all nodes
66.
Unfortunately, there is some
nasty math involved!
67.
DEMO!!!
http://www.flickr.com/photos/oneaustin/1261907803
68.
markdocs.com
69.
TL;DR
http://www.flickr.com/photos/evilaugust/3307382858
70.
TL;DR Operational transformation: • allows
to build true real time applications; • is really hard; • garantee the same results for every users! http://www.flickr.com/photos/evilaugust/3307382858
71.
Check out realify.it!
72.
..but we started with
a question!
73.
What do I
do?
74.
What do I
do? • Ph.D. Student • Software Engineer @ Mavigex • Conference Speaker (?)
75.
Choose your tools
wisely! http://www.flickr.com/photos/chuffy/186676221
76.
Thank You!
77.
Any Questions?
Baixar agora