Operational transformation
Embed Size (px)
DESCRIPTION
Text 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"