Operational transformation

download Operational transformation

of 77

  • date post

    05-Dec-2014
  • Category

    Technology

  • view

    6.731
  • download

    1

Embed Size (px)

description

 

Transcript of Operational transformation

  • 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.ickr.com/photos/ccacnorthlib/3554627894/in/photostream/ CC by 2.0
  • 5. ...and today Illspeak about whatIve studied!CCAC North Library http://www.ickr.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.ickr.com/photos/heipei/3236351860/
  • 22. How can we handle conicts? Johannes Gilger http://www.ickr.com/photos/heipei/3236351860/
  • 23. Can usersunderstand this? Johannes Gilger http://www.ickr.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 conicts 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"