Google Wave


Published on

High level overview of Google Wave technology

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Google Wave

  1. 1. Monika Adamczyk Software Architect, MACO TECH INC
  2. 2. AGENDA  Google Wave Overview  Wave Embed API  Wave Extensions  Wave Gadgets API  Wave Robots API  Google Wave Sandbox Demo  Q&A
  3. 3. WHAT IS GOOGLE WAVE  New tool for communication and collaboration on web  A wave is equal parts conversation and document  It combines email with instant messaging and real- time collaborations
  4. 4. HOW WAVE WORKS  Wave is created by one participant  Other participants are added to the wave  Everyone can use richly formatted text, photos, gadgets etc.  Participants can insert a reply or edit the wave directly  Participants can see on screen nearly instantly what others are typing in the wave  Participants can use “playback” capabilities to rewind the wave and see how it evolved
  5. 5. BASIC WAVE ENTITIES  Participants – human participants and robots  Wave – threaded conversation with one or more participants  Wavelet – threaded conversation that is spawned from a wave  Blip – basic unit of conversation which consists a single message
  6. 6. GOOGLE WAVE API  Embedded Waves – developers can enhance existing web applications by embedding Google Wave directly in their applications  Extensions – developers can enhance Google Wave by authoring mini-applications that interact with wave  Robots  Gadgets  Extension Installers which bundle up Backend (robots and gadgets) and Frontend UI elements into an integrated package (currently supported only in Google Wave client)
  7. 7. WAVE EMBED ARCHITECTURE Web Page <script include…/> Wave Client Wave Server
  8. 8. WAVE EMBED API  Methods  LoadWave  SetUIConfig  Add Reply  Follow
  9. 9. SAMPLE FOR EMBEDDED WAVE <html > <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Wave Embed API Example: Simple Wave</title> <script src="" type="text/javascript"></script> <script type="text/javascript"> function initialize() { var wavePanel = new WavePanel(''); wavePanel.loadWave('!w+waveID'); wavePanel.init(document.getElementById('waveframe')); } </script> </head> <body onload="initialize()"> <div id="waveframe" style="width: 500px; height: 100%"></div> </body> </html>
  11. 11. EXTENSION TYPES  Robots  Software backed wave participants  Commonly used for automated tasks  Can interact with the conversation based on their capabilities  Gadgets  Shared programs which run within the wave  All participants of the wave have access to it
  12. 12. ROBOT VS. GADGET COMPARISON Robot Gadget  Runs on application servers  Runs within the wave client and interact with the wave itself over a protocol  A gadget can have multiple  Only one instance of each instances, one per participant robot per wave interacting with it  Robots can modify a wave  Gadgets can’t modify a wave and perform the same and have limited visibility operations as human into the wave participant  Gadgets don’t know that a  Robots can modify a Gadget robot exists and can’t modify it
  13. 13. WAVE GADGET ARCHITECTURE John’s Multiple clients talking to the Wave Server using Wave client XML Gadget in iFrame Jane’s Bill’s client client Wave HXML Wave Server
  14. 14. HELLO WORLD GADGET <?xml version="1.0" encoding="UTF-8" ?> declares that the gadget has <Module> access to the Wave Gadgets API <ModulePrefs title="Hello Wave"> <Require feature="wave" /> </ModulePrefs> <Content type="html"> <![CDATA[ Hello, Wave! ]]> </Content> </Module>
  15. 15. WAVE GADGET API  Wave  getParticipants(), getState(), getMode(), getTime(), getViewer(), getHost(), setParticipantCalback(), setStateCallback()  State  getKeys(), submitDelta(delta), submitValue(delta), getKey(kep, opt_default)  Participant  getId(), getDisplayName(), getThumbnailUrl()
  17. 17. WAVE ROBOT ARCHITECTURE John’s client Wave Server Robot Linky Spelly Proxy App Engine *Currently all robots run on App Engine
  18. 18. WAVE ROBOT API  Model  TextView,  GadgetView  FormView  Events  Wavelets (BlipCreate, ParticipantChange, TitleChanged  Blips (ContributorsChanged, BlipDeleted, BlipSubmitted, DocumentChanged)  Form (ButtonClicked)
  19. 19. WAVE ROBOT API (cont.)  Operations  Wavelet (AppendBlip, AddParticipant, Create, RemoveSelf, SetDataDoc, SetTitle, CreateBlip)  Blip (CreateChild, Delete)  Annotation (Delete, Set)  Document (Append, AppendStyleId, Insert, Delete, Replace, Elements, InlineBlip
  20. 20. ROBOT EXAMPLES  Polly  Handles the flow of polling  Uses input forms within wave  Bloggy  Publishes waves to a blog  Linky  Generates URL links in blips  Tweety  Synch between waves and Twitter
  21. 21. GOOGLE WAVE RESOURCES  Google Wave Main Hub   Wave Account Signup:  Developer -  Non-developer -  Google Wave API   Google Wave Protocol   Google Wave Developer Blog   Google Wave Discussion Groups  Google Wave API –  Google Wave Protocol -