google wave

28
Monika Adamczyk Software Architect, MACO TECH INC http://www.maco-tech.com [email protected]

Upload: monika-adamczyk

Post on 06-May-2015

2.035 views

Category:

Technology


2 download

DESCRIPTION

High level overview of Google Wave technology

TRANSCRIPT

Page 1: Google Wave

Monika Adamczyk

Software Architect, MACO TECH INC

http://www.maco-tech.com

[email protected]

Page 2: Google Wave

AGENDA

Google Wave Overview

Wave Embed API

Wave Extensions

Wave Gadgets API

Wave Robots API

Google Wave Sandbox Demo

Q&A

Page 3: Google Wave
Page 4: Google Wave

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

Page 5: Google Wave

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

Page 6: Google Wave

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

Page 7: Google Wave

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)

Page 8: Google Wave
Page 9: Google Wave

WAVE EMBED ARCHITECTURE

<script include…/>

Web Page

Wave Client Wave Server

Page 10: Google Wave

WAVE EMBED API

Methods

LoadWave

SetUIConfig

Add Reply

Follow

Page 11: Google Wave

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>

Page 12: Google Wave

EMBEDDED WAVE EXAMPLE

Page 13: Google Wave
Page 14: Google Wave

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

Page 15: Google Wave

ROBOT VS. GADGET COMPARISONRobot Gadget

Runs on application servers and interact with the wave over a protocol

Only one instance of each robot per wave

Robots can modify a wave and perform the same operations as human participant

Robots can modify a Gadget

Runs within the wave client itself

A gadget can have multiple instances, one per participant interacting with it

Gadgets can’t modify a wave and have limited visibility into the wave

Gadgets don’t know that a robot exists and can’t modify it

Page 16: Google Wave
Page 17: Google Wave

WAVE GADGET ARCHITECTURE

Multiple clients talking to the Wave Server using Wave XML

John’s client

Gadget in iFrame

Wave HXML

Jane’s client

Bill’s client

Wave Server

Page 18: Google Wave

HELLO WORLD GADGET

<?xml version="1.0" encoding="UTF-8" ?>

<Module><ModulePrefs title="Hello Wave"><Require feature="wave" />

</ModulePrefs><Content type="html"><![CDATA[

Hello, Wave!]]>

</Content></Module>

declares that the gadget has access to the Wave Gadgets API

Page 19: Google Wave

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()

Page 20: Google Wave

GADGET EXAMPLES

Page 21: Google Wave
Page 22: Google Wave

WAVE ROBOT ARCHITECTUREJohn’s client

Wave Server

SpellyRobot Proxy

Linky

App Engine

*Currently all robots run on App Engine

Page 23: Google Wave

WAVE ROBOT API

Model

TextView,

GadgetView

FormView

Events

Wavelets (BlipCreate, ParticipantChange, TitleChanged

Blips (ContributorsChanged, BlipDeleted, BlipSubmitted, DocumentChanged)

Form (ButtonClicked)

Page 24: Google Wave

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

Page 25: Google Wave

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

Page 26: Google Wave
Page 27: Google Wave
Page 28: Google Wave

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