On Google Wave – Part 3: Extensibility

by Steven Devijver on June 6, 2009 · 2 comments

Continued from part 2: unified messaging.

Google Wave provides two ways to add new features to Wave: robots and gadgets.

A robot resides on a Wave provider and receives all updates for those waves it participates in. Robots can also update wave content, for example by automatically replacing www.google.com with http://www.google.com. Other examples of robots in the demo video is the spell checker and the translation feature.

A gadget resides on the Wave client (in the browser) and changes the look and feel of the wave. A Sudoku game could for example be a gadget.

Robots are ideal for heavy computations, and when access to external data is required – like a CRM database or a web service – which cannot be accessed by a browser.

Third-party additions to Waves will typically consist of both robots and gadgets. Because organizations will likely host their own Wave providers it will be possible to deploy third-party robots in the safety of their own private networks.

Robots and gadgets can interact and there are probably many opportunities to do so. While robots have a unique username (<username>@<domain>) gadgets are loaded from a URL. It’s therefore plausible that we’ll see some generic gadgets appear like spreadsheets which are independent from robots. That means that developers can build robots that add the spreadsheet gadget and fill it with their own data.

Each gadget has what is called a state. Here information can be stored that the gadget needs to be properly configured, or to display data like in the case of a spreadsheet gadget. Robots can access and modify the state of a gadget. Each time the state of a gadget changes all robots are immediately alerted, and when a robot changes the state of a gadget that gadget is also immediately alerted. Courtesy of Wave’s associative memory architecture.

Hence, it’s most likely not possible to write a gadget which cannot possibly be modified and controlled by other robots than your own. State values could be encrypted, but encryption and decryption in Javascript is no small feat. We’ll most likely see gadgets emerge – like the Google Maps gadget – which can be added and controlled by any controller who chooses to do so.

Third-party gadgets and robots will offer important contributions to how people collaborate which is the subject of the next post.

{ 2 trackbacks }

On Google Wave – Part 4: Collaboration - Endesha - Where Leaders Meet
06.07.09 at 11:36 am
On Google Wave – Part 2: Unified Messaging - Endesha - Where Leaders Meet
06.07.09 at 8:05 pm

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>