Wave Presentation

2,351 views

Published on

A presentation on Google Wave (well, at least what was known as of Aug 25th, 2009 ;-) )

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,351
On SlideShare
0
From Embeds
0
Number of Embeds
132
Actions
Shares
0
Downloads
81
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Wave Presentation

  1. 1. Google Wave Monday, August 31, 2009
  2. 2. Google Wave for Developers A Quick Overview Google Wave Hackfest STL William J. Edney bedney@technicalpursuit.com © 2007 William J. Edney Last updated 20090824 You are free to use this work, with certain restrictions. For full licensing information, please see the last slide/page. Monday, August 31, 2009
  3. 3. What is Wave?  Email re-imagined  A unification of email, IM, blogs and wikis  A new collaborative platform Monday, August 31, 2009
  4. 4. Monday, August 31, 2009
  5. 5. Monday, August 31, 2009
  6. 6. Monday, August 31, 2009
  7. 7. Monday, August 31, 2009
  8. 8. Monday, August 31, 2009
  9. 9. Monday, August 31, 2009
  10. 10. Monday, August 31, 2009
  11. 11. But wait… there’s more… Monday, August 31, 2009
  12. 12. But wait… there’s more… A lot more for developers… A real platform Monday, August 31, 2009
  13. 13. But wait… there’s more… A lot more for developers… A real platform  Client Monday, August 31, 2009
  14. 14. But wait… there’s more… A lot more for developers… A real platform  Client  Server Monday, August 31, 2009
  15. 15. But wait… there’s more… A lot more for developers… A real platform  Client  Server  Protocols (several, in fact) Monday, August 31, 2009
  16. 16. Monday, August 31, 2009
  17. 17. Terminology Monday, August 31, 2009
  18. 18. A Wave  What the user sees in the ‘email-like’ Web client  A threaded discussion  A logical grouping of wavelets Monday, August 31, 2009
  19. 19. A Wavelet  A container for 1..n blips  Can have 1..n participants  Entity that is hosted  Manages access control Monday, August 31, 2009
  20. 20. Monday, August 31, 2009
  21. 21. Monday, August 31, 2009
  22. 22. Monday, August 31, 2009
  23. 23. Monday, August 31, 2009
  24. 24. A Blip  A single message  Uses a Document to hold content  Blips can be nested in other blips  Uses Annotations to hold metadata Monday, August 31, 2009
  25. 25. Monday, August 31, 2009
  26. 26. Monday, August 31, 2009
  27. 27. A Document  Holds the content of a blip Monday, August 31, 2009
  28. 28. An Annotation  Holds metadata, like formatting  Unlike HTML, formatting information is not embedded in a Wave Document Monday, August 31, 2009
  29. 29. A Participant  An entity that can create or edit waves  Can be a human  Can be a robot (agent) Monday, August 31, 2009
  30. 30. Architecture Monday, August 31, 2009
  31. 31. Monday, August 31, 2009
  32. 32. Monday, August 31, 2009
  33. 33. Monday, August 31, 2009
  34. 34. Monday, August 31, 2009
  35. 35. Monday, August 31, 2009
  36. 36. Monday, August 31, 2009
  37. 37. Monday, August 31, 2009
  38. 38. Monday, August 31, 2009
  39. 39. Multi-client / single-server Monday, August 31, 2009
  40. 40. Multi-client / single-server GWT protocol Monday, August 31, 2009
  41. 41. Multi-client / single-server GWT protocol Google protobuf Monday, August 31, 2009
  42. 42. Multi-client / single-server GWT protocol Google protobuf Google protobuf Monday, August 31, 2009
  43. 43. Multi-client / single-server GWT protocol JSON-RPC Google protobuf Google protobuf Monday, August 31, 2009
  44. 44. Multi-client / multi-server Monday, August 31, 2009
  45. 45. Multi-client / multi-server Monday, August 31, 2009
  46. 46. Multi-client / multi-server Monday, August 31, 2009
  47. 47. Multi-client / multi-server Wave Federation Protocol (XMPP- based) Monday, August 31, 2009
  48. 48. Operational Transformation Monday, August 31, 2009
  49. 49. Wave is a multi-user, real-time environment How do we keep things in sync? Monday, August 31, 2009
  50. 50. Changes to a document can be modeled as operations  Operations can be transformed into other operations  Operations can be composed (condensed) into other operations Monday, August 31, 2009
  51. 51. Operations Example Skip 8 ElementStart tagName: “li” Insert “hello” ElementEnd Monday, August 31, 2009
  52. 52. Operations are how changes are modeled  Operations can be transformed into other operations  Operations can be composed (condensed) into other operations Monday, August 31, 2009
  53. 53. Concurrency (naive) Monday, August 31, 2009
  54. 54. Concurrency (correct) Monday, August 31, 2009
  55. 55. Editors do not produce HTML  Editors extract operations against documents and store ‘metadata’ like formatting in annotations  Editors perform operations against documents and, using formatting metadata in annotations, produce the visible result Monday, August 31, 2009
  56. 56. API Monday, August 31, 2009
  57. 57. Embed API  Embed the Wave ‘editor’ GUI into a web page loadWave(waveId:String, opt_loadCallback:Function) addParticipant() addReply() Monday, August 31, 2009
  58. 58. Embed API tips  For now, you must be logged in to Wave in order to view a Wave on a web page  The Wave ID can only be determined from the full client - see the “Debug” menu  The Wave being viewed must have the ‘public@a.gwave.com’ user added Monday, August 31, 2009
  59. 59. Gadget API  Write Wave gadgets to use inside of a Wave  Similar to writing a Google Gadget setStateCallback(callback:Function, opt_context:Object) setParticipantCallback(callback:Function, opt_context:Object) wave.getState() submitDelta(delta:Object) Monday, August 31, 2009
  60. 60. Gadget API tips/caveats  If you want to know when your gadget is loaded, register an ‘onload’ handler  The full OpenSocial API isn’t supported, but its coming  The security model is still being worked out - submitDelta() has no restrictions. Monday, August 31, 2009
  61. 61. Robot (Agent) API Write your own ‘automated participant’ for the Wave system  Two supported languages: Java and Python  Runs on Google App Engine  Has full access to a wave - its wavelets, blips, etc. Monday, August 31, 2009
  62. 62. Robot (Agent) API tips/caveats  Only runs on Google App Engine for now  Think ‘events’ - wave events received from the wave: Wavelet Created/Removed Participants Changed Blip Deleted/Submitted Document Changed Monday, August 31, 2009
  63. 63. Robot (Agent) API tips/caveats  If you’re writing in Java, you need to manually create your capabilities.xml file  Don’t forget to include the Wave client libraries as part of your project! Monday, August 31, 2009
  64. 64. Conclusion Monday, August 31, 2009
  65. 65. Thank you! Email: bedney@technicalpursuit.com Monday, August 31, 2009
  66. 66. Licensing of this work This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0 or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. In addition to the rights and restrictions common to all Creative Commons licenses, the Attribution-ShareAlike License features the following key conditions: Attribution. The licensor permits others to copy, distribute, display, and perform the work. In return, licensees must give the original author credit. Share Alike. The licensor permits others to distribute derivative works under a license identical to the one that governs the licensor’s work. Questions? Email bedney@technicalpursuit.com Monday, August 31, 2009

×