Google Wave arrived back in May with a blast of publicity — including a keynote of its own at Google's I/O conference. The initial story from the Google team was impressive, with Wave touted as a revolution in collaboration from star developers the Rasmussen brothers (the team behind the first iteration of Google Maps).
Wave certainly builds on the company's strengths, running in the browser and hosted in the cloud. Lars Rasmussen has a lot of ambition for Wave, wanting it to replace email. At I/O, he put it like this: "While email is an incredibly successful protocol, we can use computing advances to do better. Wave is our answer".
The Wave team has thought hard about the structure of a conversation, and how this can be replicated online. Each wave is a collaborative space comprising groups of 'wavelets', which are themselves built up of 'blips'. A blip is the basic unit of conversation in a wave, hosting an XML document. Blips don't need to be human readable — they can contain files or even executable code. Developers can build on these by using what Google calls 'robots' to interact with wavelets and blips. For example, at I/O Google demonstrated a robot that could handle real-time translations.
Google Wave is built around HTML 5, so you'll need to use what Google calls a 'modern browser' — Chrome, Safari or Firefox (or IE with Google's new Chrome Frame plugin). Once you're using Wave, you'll see a list of currently accessible waves, along with your current contacts. It's just like using a cross between IM and a wiki.
Wave looks, at first, like an in-browser instant messaging tool. It's a multi-user tool, too, so you can quickly have a conversation with an entire team. Unlike other IM tools, Wave lets you see each letter as it's typed, and replies can start before you've finished typing. That makes it much more like a real-world conversation, but it can also be disconcerting — especially if you're accustomed to editing your text while you collect your thoughts. Fortunately there's an option to use a draft mode to hide your edits until you're ready to send them to the rest of the wave's participants.
There are plenty of formatting tools, so you can use a wave to build a document collaboratively. More than one participant can edit the same wavelet — with no locks, just an indicator to show where everyone is typing. You probably wouldn't share a Wave-created document outside the flow of conversation without reformatting and editing it, but it's a good way to get started, or to get feedback from a geographically distributed team. Waves are managed by a server that operates in two parts: the server, which handles communication with end users and other Wave servers; and the store, which manages the content of both local and remote waves.
But the Google Wave client is really only part of the story: the real heart of Wave is its protocols. Based on the open XML messaging protocol XMPP, Wave servers and clients can be kept in sync with streams of structured information that also allow clients to see the entire history of a Wave. Cryptographic tools keep Waves secure and also help prevent untrusted clients and servers from joining a Wave.
Just like Microsoft's Live Mesh, Wave is all about keeping end-points in sync with each other. The difference is really only in the emphasis the two companies have put on their tools: Microsoft has concentrated on keeping computers and devices synced, while Google has focused on people. There's nothing to stop machines and software communicating via Wave — all you need to do is look at the many bots that sit on Wave and provide services to users.
Waves can be embedded in external applications — turning them into collaborative publication tools. Google has already made its embed API available, and developers have produced tools for adding waves to web applications, as well as managing the content in several waves — so you can use private waves to build content, and public waves to share the completed text with the world.
You're not limited to a Wave server and a dedicated Wave client. Your Waves can also be embedded in other applications. You'll find tools for linking them to many of the major blogging platforms, making them an alternative way of publishing content — and of turning the content your readers see into something that's created collaboratively and updated in near-real time. The open-source embed code can form the basis of your own embedded waves — perhaps in a corporate dashboard or an intranet site, or even in a project management tool.
Wave protocols are open, so anyone can build a Wave client or a Wave server, in Flash, in Silverlight, or in just about any technology they want. All it needs to do is support the Wave Federation Protocol. Google's vision isn't just one huge wave — it's a myriad waves of all shapes and sizes that can connect to each other independently of Google. There's no need for Google to control waves, all it needs to do is index them and sell advertising based on their content. With IM closed off from the web, a web-based real-time communication protocol makes commercial sense for a search engine that relies on a large and rich corpus of information for its success.
Third-party developers have had access to the Wave client since May, and have been using that time to build and test their own robots — at the same time as Google has been refining the underlying platform and the Wave protocols. With robots that link into messaging services like Twitter and into search tools (including Wolfram Alpha), there's plenty to get to grips with — and you can make these tools part of your own conversations with colleagues.
Developers make good stress testers, and the initial Wave service has had a lot of testing in the last few months. Google is now confident that Wave is ready for mass adoption, and should be opening the doors to a wider beta programme at the end of September.