What is Google Wave?

The big problem with Google Wave is the ambiguous naming. You see statements like “wave is like e-mail, but better”, or “wave is a protocol like SMTP”. Neither is quite right, and people get frustrated by the fact that the basic concepts of Google Wave are opaque. Let’s try to figure it out.

E-mail.
When we say “e-mail”, we often mean a set of technologies and pieces of software that implement those technologies. But sometimes we mean the “e-mail messages” themselves. “wave” is just that ambiguous.

With e-mail, we have the message itself, then the MUA, the MTA, the IMAP server, maybe the POP3 server and the mail store (mbox or Maildir or PST or Exchange). We have the “message headers”, we have the SMTP “message envelope”. And, of course, we have some supporting infrastructure like DNS MX records and URI schemes. The Wikipedia page on “e-mail” does a great job of describing the details.

Wave is at least that complicated.
With wave, we have the wave itself (which is kind of like a “message”), then we have the wave client (which is kind of like a MUA), then we have the wave server (which is kind of like an MTA), and the server is also storing the wave, so it’s also like a mail store and POP3/IMAP server. Google describes waves as “equal parts conversation and document”, and it called its server wave.google.com, and it called its client Google Wave, which doesn’t help!

Let’s start from the beginning again: a “wave” is a hosted XML document that lives on a server. The “wave” consists of “blips”. The “wave” has “participants” in that wave, and the participants may have access only to certain blips and not the whole wave. Each blip can be edited by the participants at any time, and the full revision history is kept.

The above paragraph doesn’t sound too bad, but there are still questions. What’s a “wavelet”? What’s “Wave Federation Protocol”? What wave clients are available? Wave servers? With that, we’re off to read the spec and the guide.

That’s not quite right!
Turns out, “waves” are comprised of “wavelets”. “Wavelets” are comprised of “blips”. The contents of “blips” are called “documents”. Each wave is hosted by a particular server. Each wavelet is hosted by a particular server (not necessarily the same one as the one that hosts the wave). “Federated” is a fancy word for “shared”. Not all wavelets are federated.

A “wave provider” operates a “wave service”. The service consists of a “wave store” and a “wave server”. And if they named it something other than ‘wave’, sentences like this would be easier to parse:

Typically, the wave service serves waves to users of the wave provider which connect to the wave service frontend

There are also “gadgets” and “robots”. A robot is an automated participant, and can do anything that a human participant can do. A gadget is a piece of code that participants can interact with, within the wave.

Here’s another great article that’s one level higher than what I wrote:
An Introduction to Google Wave - Google Wave: Up and Running

In conclusion, it’s important to separate the UI of the Google Wave client from the underlying concepts of the Google Wave platform. Just like your preview pane layout in Mozilla Thunderbird has nothing to do with how “e-mail” works, the way the Google Wave client shows bolding and wave structure is not helpful when trying to figure out the difference between a wavelet and a blip.

Leave a Reply

You must be logged in to post a comment.