Crash course in Wave and Apache Wave

This articles tries to give a brief introduction to that ‘Wave‘ thingy everyone used to talk about, explaining the concept, history overview and even how to get it running by yourself.

Quick history lesson

At the Google I/O conference on May 27, 2009, Google announced this new communication concept: “Wave”. Most technical people attending the event “got it” right away and applauded.

Later that year, Wave was open for testing through the typical invite system. Google Wave, however, was still half baked and unusable. Most of the critics dismiss it as yet another unnecessary social network, a solution waiting for a problem, etc.

Nearing the end of 2010, statistical analysis at Google showed the public reception wasn’t as good as expected. Google decides to pull the plug and open source parts of it, deviating resources to other projects.

Before the year 2010 ends, with many parts of it open sourced by Google, the small dev community gathers the pieces, and starts the new Apache Wave project.

Nowadays, in 2011, Apache Wave is actively developed by the open source community, and an alpha version can be easily run in your computer.

 

Cool… what was “wave” again?

For the computer literates, here you have two easy to understand comparison tables, using email as a reference:

Concept descriptionE-Mail termWave term
A piece of informationan emaila wave
The act of sending a piece of informationto email someoneto wave someone
ProtocolSMTP, POP3, IMAP...Wave Protocol
Interaction between different serversability to send email from one @domain to another @domainwave server federation
Development of the project concepts and reference softwareIETF + independent developers?Apache Wave

Software descriptionE-Mail softwareWave software
Proprietary server+webclient packageYahoo! MailGoogle Wave
Open source server+webclient packageZimbraWave In A Box
Open source serverEximGoogle FedOne
Open source clientThunderbirdGoogle Wave-Splash
Open source webclientRoundCubeMicro-Box

What can Wave be used for?

Wave aims to be a common denominator to many other communication forms. An open standard that anyone can use and implement (even in the form of proprietary servers or clients, like Google Wave). Let’s see an example:

 

In a common use case, your internet workflow could involve:

  • An email client running on your desktop
  • Twitter client
  • Facebook tab
  • An feed reader
  • Receiving messages from two mailing lists
  • Manually checking some random movie forums weekly for new posts
  • Get notified by email of replies to some blog post comments you wrote

 

In the wave world case, your internet workflow would involve:

  • A Wave client
  • Or, alternatively, go the old route: keep using the very same specific clients for each of those services, even if they use the Wave Protocol under the hood (just like Facebook Chat and GTalk run on top of Jabber).

 

Most importantly, and this cannot be stressed enough:

You are free to choose which clients to use as interface.

And you are also free to choose which servers to use for storing your data waves.

Now try doing that with Facebook, Twitter, Flickr…

 

Test a WaveInABox demo now

So you want to test the open source Apache Wave software? The wave community runs some test servers and clients on the net. The most common one is located at http://waveinabox.net, and is updated daily.

Disclaimer: WaveInABox server and client are still in very early development stage, so do not rely on them at all, and do not expect everything to work correctly.

Wave In A Box

Or deploy your own WaveInABox

Maybe you want to test it locally, perhaps play with the code, or even run it privately for personal purposes. In that case, it’s really easy to get it up and running in Linux:

# apt-get install mercurial ant default-jdk eclipse
$ hg clone https://wave-protocol.googlecode.com/hg wave-in-a-box
$ cd wave-in-a-box
$ ant compile-gwt
$ ant dist-server
$ ant -f server-config.xml -Dwave_server_domain=$HOSTNAME -Dsigner_info_store_type=file -Daccount_store_type=file -Ddelta_store_type=file -Dattachment_store_type=disk
$ ./run-server.sh

(there’s instructions for Windows and MacOSX too)

At this point, the server is running, and the web client can be accessed at http://localhost:9898.

Final words

Even if this article is very shallow, I hope it provides a different perspective of the whole subject, and helps people see the actual purpose behind the waves.

By the way, I’m reachable at stenyak@googlewave.com and stenyak@waveinabox.net. Feel free to wave me any time! 😉

Tags: , [en] | April 27th, 2011 |

9 Responses to “Crash course in Wave and Apache Wave”

  1. Txus Ordorika Says:

    Nice post Stenyak. I hope this post will help some people to identify different concepts around wave that Google didn’t explain well.

    Keep on waving!

  2. ClaudeA Says:

    Where were the ad campaigns for Google Wave? I’ve been hoping for this level of competitive collaboration connectedness for years!

    Now, it’s gone b$ I knew about it, and search a lot I had done!

  3. ian Says:

    Wow; this is seriously awesome. I was able to get a wave server up and running in about five minutes, and the longest part was installing the packages.

    I’m so glad that the Wave protocol won’t die out completely – it has such potential to be revolutionary.

    Thanks!!

  4. Ola Says:

    Glad I found this site, I really need a collaboration tool that somehow combines wiki and email and Wave looks really promising

  5. Manuel Says:

    I have been working for almost 2 years with Google wave, and I have to say is one of the best collaborative tools I have ever seen.

  6. ApC Says:

    Hi, I´m a newbie with this new Wave version, althoug I used Google Wave when it was launched and I liked it.
    Now, I´m thining about a local Wave server installation, but I need to clarify one important question for us… what´s the database use at this moment?
    I read it used MongoDB in the past, but I read some plans to migrate to MySQL, too… does anybody know if this change was made or is in roadmap for the future?

    Thanks in advance.

  7. stenyak Says:

    Previously MongoDB was also used, but currently a file-based back end is the best supported storage backend.
    I’m not sure whether there’s a MySQL backend in progress (I think not, but don’t know for sure).
    A better place to ask these kind of question would be the Apache Wave mailing list, which you can find here:
    http://incubator.apache.org/wave/mailing-lists.html

  8. Rodd Says:

    WAVE developers use MAILING LISTS to share knowledge. Seems that dogfooding principle is not something applicable to the wave.

  9. Yuri Says:

    @Rodd
    The Wave is being developed at Apache Foundation, which has a few strict rules – one of them is to have all official discussions be held on the project mailing list. This explains why we use mailing list instead of WIAB.

Leave a Reply