An Introduction to Google Wave 

Google Wave was born out of the notion that while email and instant messaging work well, they were both created a long time ago. As the lead developer puts it - “Wave is what email would look like if it were invented today.” Indeed it is.

Nearly everyone uses email and instant messaging on the web these days, but imagine if you could tie those together with a wiki - and then add real-time playback functionality, on-the-fly language translation and drag-and-drop file sharing. Google Wave does all this and a lot more.

So far the only way to use the product is via Google’s own client at wave.google.com, however this access is restricted to developers who signed up after the Google I/O conference. Luckily, we have access and have had a chance to review the project in detail.

Let’s start with the basics and define a few terms. A wave is a threaded conversation. It can include just one person, or it can include a group of users. Waves may contain wavelets which are just smaller conversations. The actual message content is contained in blips. The diagram below explains this relationship a little more clearly:

In this diagram a group of people are sharing a conversation while two of the participants are having a private side conversation. Everyone’s messages to each other are in the form of blips, which can be seen by all participants in a wave or wavelet. In this way, Wave is a bit like a chat room.

With this in mind, we can begin to examine the user interface. The Wave Inbox can be seen below:

Wave features a left-hand sidebar for navigation and below that a list of contacts. The middle column is the Wave Inbox. This has a similar look and feel to Gmail’s inbox except it features the faces of all contacts who are involved in each wave. There is also an indicator to let you know about new content in the wave.

Clicking on any of the wave threads in the middle will open a pane to the right that shows the contents of the wave. This is where it gets interesting. If, for example, one wave is a message from a friend and you want to reply to it, there’s no need to draft a reply email. You can just start typing below your friend’s message and they will be alerted the next time they come online. If you’re both online, you can chat with each other in real time.

All the participants in a wave can not only see and reply to each other’s messages, they can also edit them. In this way a wave is like a wiki entry that can be modified by several people at once in real time. And when new participants are added, they can use the “Playback” feature to watch the wave grow and develop from the beginning.

Individual waves can be embedded into simple web pages and also accessed via gadgets - in Facebook, for example, or in a desktop widget. The Wave interface lets users know when content they are editing is public or if it is only viewable by the wave participants. This design opens a number of interesting possibilities.

But there’s more - participation in a wave can be automated with robots. A robot can reply to messages and generate new content based on what happens in the wave. For example, a Flickr robot could pull all of a user’s Flickr photos into a wave when that person joins the wave, or a stock price robot could look up a stock price every time a stock ticker symbol is used. Google even has a spell checker robot that not only suggests correct spelling while you type, it actually tries to put your words into context to make sure you’re using the right terminology.

Behind the scenes, Wave’s functionality is made possible by moving around small pieces of XML. These are transferred in real time between the participants using Google’s Wave Federation Protocol. To encourage experimentation, Google has open sourced the protocol and published their APIs.

Google is using several protocols to streamline communications between the different elements of the system. Communication between Wave servers is done with XMPP, while communication with remote robots is done using JSON. The big picture is illustrated below:

The key thing to note here is that the communication between the end user’s system and the Wave server is still proprietary. This will definitely limit the adoption of Wave in the enterprise space.

In addition, all of this data moving in real time has significant performance implications. Google has created a new data serialization technique called Protocol Buffers to address some of these concerns, but we’ve not yet explored it fully. There is much discussion in the development community around the pros and cons of this model, but to be fair, Wave is still in its infancy and the way Google is engaging with the development community is very encouraging.

To summarize, Google Wave seeks to combine a number of past and current communication techniques into a unified platform that will greatly simplify the creation of structured user content. It is certainly very impressive - and if it gains traction with Internet users at large, it could have a profound effect on the future of the Internet.


8 Responses to “An Introduction to Google Wave”

    • #4111 Comment
    • September 4th, 2009
    • 2:47 pm
    Johan wrote in to say...

    This is the best overview of Google Wave I’ve seen so far. Thanks for putting it together!

    • #4266 Comment
    • September 16th, 2009
    • 9:39 pm
    Concentric Sky Blog - Learn more about what we do wrote in to say...

    [...] allows units of information to be manipulated like variables in an equation. Projects such as Google Wave, Wolfram Alpha, and the Semantic Web seek to make the web computable, or in other words, machine [...]

    • #4327 Comment
    • September 20th, 2009
    • 4:43 am
    Computers & Tech wrote in to say...

    Hi there,
    Great post, I just came across your blog and I’m already a fan.

    • #4573 Comment
    • October 7th, 2009
    • 9:41 pm
    Paul wrote in to say...

    I was going to write a similar blog concerning this topic, you beat me to it. You did a nice job!

    • #4633 Comment
    • October 12th, 2009
    • 6:12 am
    Xavier Q. wrote in to say...

    Usually I don’t leave a comment but I wanted to let you know that this was very helpful.

    • #4793 Comment
    • October 20th, 2009
    • 7:45 pm
    Michael Correra wrote in to say...

    Some of this setup reminds me of LMS platforms that have similar threads, and added coments are cascaded down to the right to see visually the time and content connection.Looks great …looking forward to geeting more info, especially what applications would benefit from this technology.

    • #4959 Comment
    • November 19th, 2009
    • 11:59 am
    steve wrote in to say...

    I’ve been a waver for about three weeks now. And while I sorta get how it might be useful, especially for long-term collaboration, I don’t really *get it* yet. All of the wave interactions I have going right now are essentially indistinguishable from email. For the first few days, I had it up all the time- but now I only remember to check it maybe once a week… and since Wave doesn’t provide any event notifications to outside platforms, I don’t notice when someone bothers to respond to me.

    so then I don’t respond to their response.

    And the wave just… dies.

    and as far as I can tell, you can’t yet embed images or videos in a wave.

    So at this point at least, I don’t have any reason to keep going back.

    • #5099 Comment
    • December 9th, 2009
    • 12:08 am
    Abrar wrote in to say...

    Very helpful information, thank you very much for sharing. Can you send me an invite?

Leave a Comment