One of the great advantages of Google Wave is the availability of open APIs that make it relatively simple for developers to extend and customize features and functionality. Additionally, these open APIs enable the integration of Google Wave with third party services, including a variety of other communication, collaboration, and social network applications and services.
At present the Google Wave APIs can be used for two types of development: extensions and embedded waves. Below is a summary of each type of API development.
ExtensionsExtensions are mini-applications integrated through the Google Wave API that enhance the functionality of a wave. The API currently supports two types of extensions: robots and gadgets.
Robots are programmatically controlled participants that interact with other participants (human and/or robot) in a wave. Robots typically reside in the cloud (e.g., Google App Engine) and operationally they can interact with and respond to actions that occur in a wave.
Gadgets are small applications that run inside of a wave and are accessible to all participants. Some of the more popular gadgets are games (e.g., a chess game) and utilities (e.g., Google Maps).1
There is a separate API for each type of extension, and the approach to developing with these APIs depends on the type of extension that will be developed. Because robots reside in the cloud, the Robots API typically involves server side programming with languages such as Python and Java (currently robots can only reside within Google App Engine, thereby limiting the programming language to those languages supported by that platform). Gadgets run in a browser, and thus programming with the Gadgets API entails working with AJAX (Javascript and XML).
Robots vs. GadgetsThe table below provides a brief summary of some of the key differences between robots and gadgets2.
Table 1-1. Key Differences Between Google Wave Extensions
| Robot | Gadget |
| Runs in the cloud. | Runs on the client (browser). |
| One instance of a given robot per wave. Remember that a robot is like a participant on a wave, so each participant/robot is a unique instance, but a wave can have many participants/robots. | Multiple instances per wave. |
| Able to modify a wave and perform the same operations as a human participant. | Not able to modify the wave, and has limited visibility into the wave. Is only able to detect changes in the wave's participants. |
| Can modify a gadget. | Not only can't modify a robot, has no way to know that the robot exists. |
1 Based in part on the Wave Entities section of the Google Wave API Overview
2 From the Wave Extensions overview on the Google Wave API documentation site
Embedded WavesGoogle Wave's architecture lends itself well to integration with external services and applications. While extensions enhance the features and functionality of a wave, embedded waves integrate communication and collaboration functionality with other web applications. The Wave Embed API is a Javascript API that loads a wave (either an existing or net new wave) into a web page (in similar fashion to loading a gadget into Google Wave, a wave can be loaded as a mini application into other applications).
One way to think about the difference between extensions and embedded waves is in terms of how each type of API development approach reaches users (see the image below). Robots and gadgets reach users through a wave, while embedded APIs reach users through applications and web pages. In other words, extensions rely on waves as containers, and embedded waves rely on applications and web pages as containers.
Waves are containers for extensions, while applications and web pages are containers for embedded waves.
Google made the conscious decision to include these APIs as part of the initial release of Google Wave, in part, based on the success of some of its other APIs, such as the Google Maps API and Google App Engine. I should remind you that the success of Google Wave relies, in part, on consistent participation by developers keen on extending the functionality of Google Wave and integrating Google Wave with other applications. As a result, you can be assured that Google will continue to focus on providing APIs that are useful, easy to implement, and readily accessible to a broad set of developers. Whether you are a novice programmer or a ninja coder, it is likely that you will be able to quickly develop with the Google Wave APIs.
Get in front of Google Wave, the exciting new real-time communication and collaboration technology that unifies email, instant messaging (IM), wiki, and social networking functions on one integrated platform. With this exclusive ebook, you'll quickly learn Google Wave's fundamental concepts and learn about the Google Wave Client, the web app that allows end users to participate and collaborate. Get a good look at this game-changing technology while it's still in the development stage.




Help







