SlideShare a Scribd company logo
1 of 28
Download to read offline
Monika Adamczyk
Software Architect, MACO TECH INC
http://www.maco-tech.com
monika@maco-tech.com
AGENDA
 Google Wave Overview
 Wave Embed API
 Wave Extensions
    Wave Gadgets API
    Wave Robots API
 Google Wave Sandbox Demo
 Q&A
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
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
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
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)
WAVE EMBED ARCHITECTURE
     Web Page

      <script
    include…/>




    Wave Client   Wave Server
WAVE EMBED API
 Methods
   LoadWave
   SetUIConfig
   Add Reply
   Follow
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="http://wave-api.appspot.com/public/embed.js"
   type="text/javascript"></script>
  <script type="text/javascript">
  function initialize() {
    var wavePanel = new WavePanel('http://wave.google.com/a/wavesandbox.com/');
    wavePanel.loadWave('wavesandbox.com!w+waveID');
    wavePanel.init(document.getElementById('waveframe'));
  }
  </script>
 </head>
 <body onload="initialize()">
  <div id="waveframe" style="width: 500px; height: 100%"></div>
 </body>
</html>
EMBEDDED WAVE EXAMPLE
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
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
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
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>
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()
GADGET EXAMPLES
WAVE ROBOT ARCHITECTURE
                                                 John’s
                                                 client
           Wave Server




               Robot     Linky
  Spelly       Proxy




            App Engine


                         *Currently all robots run on App
                         Engine
WAVE ROBOT API
 Model
    TextView,
    GadgetView
    FormView
 Events
    Wavelets (BlipCreate, ParticipantChange, TitleChanged
    Blips (ContributorsChanged, BlipDeleted,
     BlipSubmitted, DocumentChanged)
    Form (ButtonClicked)
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
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
GOOGLE WAVE RESOURCES
 Google Wave Main Hub
    http://wave.google.com/
 Wave Account Signup:
    Developer - https://services.google.com/fb/forms/wavesignupfordev/
    Non-developer - https://services.google.com/fb/forms/wavesignup/
 Google Wave API
    http://code.google.com/apis/wave/
 Google Wave Protocol
    http://www.waveprotocol.org/
 Google Wave Developer Blog
    http://googlewavedev.blogspot.com/
 Google Wave Discussion Groups
    Google Wave API – http://groups.google.com/group/google-wave-api
    Google Wave Protocol - http://groups.google.com/group/wave-protocol

More Related Content

Similar to Google Wave

Programming For Google Wave
Programming For Google WaveProgramming For Google Wave
Programming For Google WaveRodrigo Borges
 
Developing a Google Wave Extension
Developing a Google Wave ExtensionDeveloping a Google Wave Extension
Developing a Google Wave ExtensionBrian Kennish
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklum Ukraine
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwtsupertoy2015
 
jQuery Mobile with HTML5
jQuery Mobile with HTML5jQuery Mobile with HTML5
jQuery Mobile with HTML5madhurpgarg
 
Google wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final bGoogle wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final bLaddie Odom
 
Google Wave First Look
Google Wave   First LookGoogle Wave   First Look
Google Wave First LookVijay Raj
 
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, PlatformGoogle Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, PlatformPamela Fox
 
Firefox os-introduction
Firefox os-introductionFirefox os-introduction
Firefox os-introductionzsoltlengyelit
 
Making mobile apps with web technology (revised)
Making mobile apps with web technology (revised)Making mobile apps with web technology (revised)
Making mobile apps with web technology (revised)Manyoung Cho
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
Google Web Toolkits
Google Web ToolkitsGoogle Web Toolkits
Google Web ToolkitsYiguang Hu
 
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache CordovaHazem Saleh
 
Android App Development using HTML5 Technology
Android App Development using HTML5 TechnologyAndroid App Development using HTML5 Technology
Android App Development using HTML5 TechnologyOon Arfiandwi
 
Widgets - the Wookie project
Widgets - the Wookie projectWidgets - the Wookie project
Widgets - the Wookie projectscottw
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyJames Williams
 

Similar to Google Wave (20)

Programming For Google Wave
Programming For Google WaveProgramming For Google Wave
Programming For Google Wave
 
Google Wave Basics
Google Wave BasicsGoogle Wave Basics
Google Wave Basics
 
Developing a Google Wave Extension
Developing a Google Wave ExtensionDeveloping a Google Wave Extension
Developing a Google Wave Extension
 
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitJava Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
Java Web Programming on Google Cloud Platform [3/3] : Google Web Toolkit
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overviewCiklumJavaSat15112011:Andrew Mormysh-GWT features overview
CiklumJavaSat15112011:Andrew Mormysh-GWT features overview
 
T 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By GwtT 0230 Google Wave Powered By Gwt
T 0230 Google Wave Powered By Gwt
 
jQuery Mobile with HTML5
jQuery Mobile with HTML5jQuery Mobile with HTML5
jQuery Mobile with HTML5
 
Google wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final bGoogle wave-oiss-long-032910-final b
Google wave-oiss-long-032910-final b
 
Google Wave First Look
Google Wave   First LookGoogle Wave   First Look
Google Wave First Look
 
Google Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, PlatformGoogle Wave 20/20: Product, Protocol, Platform
Google Wave 20/20: Product, Protocol, Platform
 
Firefox os-introduction
Firefox os-introductionFirefox os-introduction
Firefox os-introduction
 
Making mobile apps with web technology (revised)
Making mobile apps with web technology (revised)Making mobile apps with web technology (revised)
Making mobile apps with web technology (revised)
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Google Web Toolkits
Google Web ToolkitsGoogle Web Toolkits
Google Web Toolkits
 
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
 
Android App Development using HTML5 Technology
Android App Development using HTML5 TechnologyAndroid App Development using HTML5 Technology
Android App Development using HTML5 Technology
 
Widgets - the Wookie project
Widgets - the Wookie projectWidgets - the Wookie project
Widgets - the Wookie project
 
Meteor seminar
Meteor seminarMeteor seminar
Meteor seminar
 
Griffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java TechnologyGriffon: Re-imaging Desktop Java Technology
Griffon: Re-imaging Desktop Java Technology
 

Recently uploaded

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jNeo4j
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxNeo4j
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPTiSEO AI
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 

Recently uploaded (20)

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 

Google Wave

  • 1. Monika Adamczyk Software Architect, MACO TECH INC http://www.maco-tech.com monika@maco-tech.com
  • 2. AGENDA  Google Wave Overview  Wave Embed API  Wave Extensions  Wave Gadgets API  Wave Robots API  Google Wave Sandbox Demo  Q&A
  • 3.
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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)
  • 8.
  • 9. WAVE EMBED ARCHITECTURE Web Page <script include…/> Wave Client Wave Server
  • 10. WAVE EMBED API  Methods  LoadWave  SetUIConfig  Add Reply  Follow
  • 11. 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="http://wave-api.appspot.com/public/embed.js" type="text/javascript"></script> <script type="text/javascript"> function initialize() { var wavePanel = new WavePanel('http://wave.google.com/a/wavesandbox.com/'); wavePanel.loadWave('wavesandbox.com!w+waveID'); wavePanel.init(document.getElementById('waveframe')); } </script> </head> <body onload="initialize()"> <div id="waveframe" style="width: 500px; height: 100%"></div> </body> </html>
  • 13.
  • 14. 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
  • 15. 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
  • 16.
  • 17. 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
  • 18. 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>
  • 19. 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()
  • 21.
  • 22. WAVE ROBOT ARCHITECTURE John’s client Wave Server Robot Linky Spelly Proxy App Engine *Currently all robots run on App Engine
  • 23. WAVE ROBOT API  Model  TextView,  GadgetView  FormView  Events  Wavelets (BlipCreate, ParticipantChange, TitleChanged  Blips (ContributorsChanged, BlipDeleted, BlipSubmitted, DocumentChanged)  Form (ButtonClicked)
  • 24. 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
  • 25. 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
  • 26.
  • 27.
  • 28. GOOGLE WAVE RESOURCES  Google Wave Main Hub  http://wave.google.com/  Wave Account Signup:  Developer - https://services.google.com/fb/forms/wavesignupfordev/  Non-developer - https://services.google.com/fb/forms/wavesignup/  Google Wave API  http://code.google.com/apis/wave/  Google Wave Protocol  http://www.waveprotocol.org/  Google Wave Developer Blog  http://googlewavedev.blogspot.com/  Google Wave Discussion Groups  Google Wave API – http://groups.google.com/group/google-wave-api  Google Wave Protocol - http://groups.google.com/group/wave-protocol