Google wave java robot overview
As most of you are aware by now, developers can write java robots that can aid a conversation that happens in google wave. A conversation is a wavelet and each reply in this wavelet is called a blip. There are some ‘getting started’ tutorials available out there that are of great help. These links should help you
Grasping the overall picture of a java robot is a little difficult. This is because there are no flow or architecture diagrams (at least none that I know of) that show you the sequence of events. Given below is a diagram that does that. Assume that you wrote a java robot that is meant to edit blips in a wavelet. The robot should provide a profanity filter service which will delete objectionable words from the wave. This is how the series of events happen.
Google wave robot sequence of events:
1. User logs in
2. Replies to a blip.
3. Our java robot is already deployed under a .appspot.com address. Its capability allows it to trigger an event that signals that a blip was created.
4. The triggered event is actually a HTTP request that goes out to the java robot servlet from google wave. The servlet then contacts wave using the wave client library API.
5. The blips in the wave are accessed using the client API. An event object return all the blips that were created.
6. The blip in question is identified and edited if needed.
More on gadgets:
To get a feel for what a gadget is and how it can be used, check out the ISBN gadget and the gadget help files. Gadgets that are integrated with wave have a sense of state. This state is just a saved variable that is accessible by all users on that wave. This is like having a variable exposed to several threads at the same time. If you modify the state variables in the gadget, do so carefully since it is equivalent to accessing a non thread safe variable.
So there you go. The wave is still a developer’s playground and less of a lay man user’s tool. It will soon mature. If you happen to have a wave account, give the robots a try. Let others know what robot you made.