Operational transformation
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Operational transformation

on

  • 6,629 views

 

Statistics

Views

Total Views
6,629
Views on SlideShare
3,398
Embed Views
3,231

Actions

Likes
7
Downloads
41
Comments
0

14 Embeds 3,231

http://www.matteocollina.com 3006
http://localhost 69
http://2012.jsday.it 60
http://www.php-talks.com 33
http://play.daumcorp.com 20
http://www.collina.me 18
http://lanyrd.com 10
http://www.phptalks.de 5
http://hi-tech.leonardo.it 3
https://www.linkedin.com 3
https://abs.twimg.com 1
https://www.matteocollina.com 1
http://www.google.fr 1
http://www.google.it 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Operational transformation Presentation Transcript

  • 1. The Secret behind Google Docs, Google Wave and Zoho Suite: OperationalTransformation
  • 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 Illspeak about whatIve 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 cool2. Why we are solving the wrong problem3. An algorithm to rule them all
  • 8. is all aboutinteraction..
  • 9. ..between people,
  • 10. that acts through Browsers,
  • 11. that communicate through a server!
  • 12. We can createnew forms ofcollaboration!
  • 13. There are LOTS of frameworks
  • 14. There are LOTS of frameworks...
  • 15. ...and companies!
  • 16. ...and companies! Thanks!
  • 17. The frameworks are solving1. How we present the data to the user2. How to transfer the data on the wire
  • 18. Where is theinteraction between people?
  • 19. What happens whenthey change the same document?
  • 20. Really?
  • 21. Johannes Gilger http://www.flickr.com/photos/heipei/3236351860/
  • 22. How can we handle conflicts? Johannes Gilger http://www.flickr.com/photos/heipei/3236351860/
  • 23. Can usersunderstand this? Johannes Gilger http://www.flickr.com/photos/heipei/3236351860/
  • 24. We usuallylock ourdocumentsto protectthem!
  • 25. Only theuser thatlocked thedocumentcan edit it!
  • 26. Some people aredoing it correctly..
  • 27. Some people aredoing it correctly.. ..how?
  • 28. What happens whenwe edit a document?
  • 29. Insert(0,"hello ")Delete(6, 5)Insert(6,"world")
  • 30. s = "jsday"Insert(0,"hello ")s = "hello jsday"
  • 31. s = "hello jsday"Delete(6, 5)s = "hello "
  • 32. s = "hello "Insert(6,"world")s = "hello world"
  • 33. The operationsare processedas they arrive:what happens ifthere are moreusers sendingthem?
  • 34. What happens if theoperations come from two users?
  • 35. sA = "hello world" sB = "hello world"
  • 36. What happens if operations get delayed?sA = "hello world" sB = "hello world"
  • 37. sA = "hello jsday" sB = "hello world"
  • 38. OperationalTransformation
  • 39. OperationalTransformation➡ has been a research topic for more than 20 years➡ is a family of algorithms ❖ Jupiter has lead to Google Docs / Wave
  • 40. OperationalTransformation 1. reorders the operations 2. handles the conflicts between operations 3. garantees the same result on all nodes
  • 41. Reorder Problem
  • 42. How can we reorder the operations?
  • 43. What is theintention behind the delete?
  • 44. s = "hello jsday" The intention behind theDelete(6, 5) delete is to remove the "jsday" strings = "hello "
  • 45. Delete(6, 5) Delete(12, 5) Insert(6,"world")
  • 46. Delete(6, 5) Delete(12, 5) Insert(6,"world") OT transposes the Delete through the Insert
  • 47. s = "hello worldjsday"Delete(12, 5)s = "hello world"
  • 48. s = "hello worldjsday" OT is aboutchanging where Delete(12, 5)and how the ops are = "hello uted s exec world"
  • 49. What happensif two users delete the same string?
  • 50. What happens if two users delete the same string?Delete(6, 5) NoOperation Delete(6, 5)
  • 51. OperationalTransformation reorders the operations handles the conflicts between operations garantees the same result on all nodes
  • 52. Unfortunately,there is some nasty math involved!
  • 53. DEMO!!! http://www.flickr.com/photos/oneaustin/1261907803
  • 54. markdocs.com
  • 55. TL;DR http://www.flickr.com/photos/evilaugust/3307382858
  • 56. TL;DROperational 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
  • 57. Check out realify.it!
  • 58. ..but we startedwith a question!
  • 59. What do I do?
  • 60. What do I do? • Ph.D. Student • Software Engineer @ Mavigex • Conference Speaker (?)
  • 61. Choose your tools wisely! http://www.flickr.com/photos/chuffy/186676221
  • 62. Thank You!
  • 63. Any Questions?