wave presentation
Post on 17-Oct-2014
3.269 views
DESCRIPTION
A presentation on Google Wave (well, at least what was known as of Aug 25th, 2009 ;-) )TRANSCRIPT
![Page 1: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/1.jpg)
Google Wave
Monday, August 31, 2009
![Page 2: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/2.jpg)
© 2007 William J. EdneyLast updated 20090824
You are free to use this work, with certain restrictions.For full licensing information, please see the last slide/page.
Google Wave Hackfest STLWilliam J. Edney
A Quick OverviewGoogle Wave for Developers
Monday, August 31, 2009
![Page 3: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/3.jpg)
What is Wave?
Email re-imagined A unification of email, IM, blogs
and wikis A new collaborative platform
Monday, August 31, 2009
![Page 4: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/4.jpg)
Monday, August 31, 2009
![Page 5: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/5.jpg)
Monday, August 31, 2009
![Page 6: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/6.jpg)
Monday, August 31, 2009
![Page 7: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/7.jpg)
Monday, August 31, 2009
![Page 8: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/8.jpg)
Monday, August 31, 2009
![Page 9: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/9.jpg)
Monday, August 31, 2009
![Page 10: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/10.jpg)
Monday, August 31, 2009
![Page 11: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/11.jpg)
But wait… there’s more…
Monday, August 31, 2009
![Page 12: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/12.jpg)
But wait… there’s more…A lot more for developers…
A real platform
Monday, August 31, 2009
![Page 13: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/13.jpg)
But wait… there’s more…A lot more for developers…
A real platform Client
Monday, August 31, 2009
![Page 14: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/14.jpg)
But wait… there’s more…A lot more for developers…
A real platform Client Server
Monday, August 31, 2009
![Page 15: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/15.jpg)
But wait… there’s more…A lot more for developers…
A real platform Client Server
Protocols (several, in fact)
Monday, August 31, 2009
![Page 16: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/16.jpg)
Monday, August 31, 2009
![Page 17: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/17.jpg)
Terminology
Monday, August 31, 2009
![Page 18: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/18.jpg)
A Wave What the user sees in
the ‘email-like’ Web client A threaded discussion
A logical grouping of wavelets
Monday, August 31, 2009
![Page 19: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/19.jpg)
A Wavelet A container for 1..n blips Can have 1..n participants
Entity that is hosted Manages access control
Monday, August 31, 2009
![Page 20: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/20.jpg)
Monday, August 31, 2009
![Page 21: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/21.jpg)
Monday, August 31, 2009
![Page 22: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/22.jpg)
Monday, August 31, 2009
![Page 23: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/23.jpg)
Monday, August 31, 2009
![Page 24: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/24.jpg)
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
![Page 25: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/25.jpg)
Monday, August 31, 2009
![Page 26: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/26.jpg)
Monday, August 31, 2009
![Page 27: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/27.jpg)
A Document Holds the content of a blip
Monday, August 31, 2009
![Page 28: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/28.jpg)
An Annotation Holds metadata, like formatting
Unlike HTML, formatting information is not embedded in a
Wave Document
Monday, August 31, 2009
![Page 29: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/29.jpg)
A Participant An entity that can create or edit
waves Can be a human
Can be a robot (agent)
Monday, August 31, 2009
![Page 30: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/30.jpg)
Architecture
Monday, August 31, 2009
![Page 31: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/31.jpg)
Monday, August 31, 2009
![Page 32: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/32.jpg)
Monday, August 31, 2009
![Page 33: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/33.jpg)
Monday, August 31, 2009
![Page 34: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/34.jpg)
Monday, August 31, 2009
![Page 35: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/35.jpg)
Monday, August 31, 2009
![Page 36: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/36.jpg)
Monday, August 31, 2009
![Page 37: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/37.jpg)
Monday, August 31, 2009
![Page 38: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/38.jpg)
Monday, August 31, 2009
![Page 39: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/39.jpg)
Multi-client / single-server
Monday, August 31, 2009
![Page 40: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/40.jpg)
Multi-client / single-server
GWT protocol
Monday, August 31, 2009
![Page 41: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/41.jpg)
Multi-client / single-server
GWT protocol
Google protobuf
Monday, August 31, 2009
![Page 42: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/42.jpg)
Multi-client / single-server
GWT protocol
Google protobuf Google protobuf
Monday, August 31, 2009
![Page 43: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/43.jpg)
Multi-client / single-server
GWT protocol
Google protobuf Google protobuf
JSON-RPC
Monday, August 31, 2009
![Page 44: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/44.jpg)
Multi-client / multi-server
Monday, August 31, 2009
![Page 45: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/45.jpg)
Multi-client / multi-server
Monday, August 31, 2009
![Page 46: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/46.jpg)
Multi-client / multi-server
Monday, August 31, 2009
![Page 47: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/47.jpg)
Multi-client / multi-server
Wave Federation
Protocol (XMPP-based)
Monday, August 31, 2009
![Page 48: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/48.jpg)
OperationalTransformation
Monday, August 31, 2009
![Page 49: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/49.jpg)
Wave is a multi-user, real-time environment
How do we keep things in sync?
Monday, August 31, 2009
![Page 50: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/50.jpg)
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
![Page 51: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/51.jpg)
Operations Example
Skip 8
ElementStarttagName: “li”
Insert“hello”
ElementEnd
Monday, August 31, 2009
![Page 52: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/52.jpg)
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
![Page 53: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/53.jpg)
Concurrency (naive)Concurrency (the naive way)
Monday, August 31, 2009
![Page 54: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/54.jpg)
Concurrency (correct)Concurrency (the correct way)
Monday, August 31, 2009
![Page 55: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/55.jpg)
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
![Page 56: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/56.jpg)
API
Monday, August 31, 2009
![Page 57: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/57.jpg)
Embed API Embed the Wave ‘editor’ GUI into a
web page
loadWave(waveId:String,opt_loadCallback:Function)
addParticipant()
addReply()
Monday, August 31, 2009
![Page 58: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/58.jpg)
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 ‘[email protected]’ user added
Monday, August 31, 2009
![Page 59: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/59.jpg)
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
![Page 60: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/60.jpg)
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
![Page 61: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/61.jpg)
Robot (Agent) APIWrite 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
![Page 62: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/62.jpg)
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 ChangedBlip Deleted/Submitted
Document Changed
Monday, August 31, 2009
![Page 63: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/63.jpg)
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
![Page 64: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/64.jpg)
Conclusion
Monday, August 31, 2009
![Page 66: Wave Presentation](https://reader034.vdocuments.net/reader034/viewer/2022051608/5441d1c5b1af9fef4b8b47ff/html5/thumbnails/66.jpg)
Licensing of this workThis 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.0or 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 [email protected]
Monday, August 31, 2009