AWOB Evaluation of Google Wave

MPDL,GAVO

Google Wave
Google Wave is a real-time communication platform. It combines aspects of email, instant messaging, wikis, web chat, social networking, and project management to build one elegant, in-browser communication client.

Terminology:

 * Wavelet: A wavelet is also a threaded conversation, but only a subset of a larger conversation (or a wave). It’s like a single IM conversation – a small part of a larger conversation and a larger history. Wavelets, though, can be created and managed separately from a wave.
 * Blip: Even smaller than a Wavelet, a Blip is a single, individual message. It’s like a single line of an IM conversation. Blips can have other blips attached to them, called children. In addition, blips can either be published or unpublished (once again, it’s sort of like typing out an IM message but not yet sending it).
 * Document: A document actually refers to the content within a blip. This seems to refer to the actual characters, words, and files associated with a blip.
 * Extension: An extension is a mini-application that works within a wave. So these are the apps you can play with while using Wave. There are two main types of extenisons: Gadgets and Robots
 * Gadgets: A gadget is an application users can participate with, many of which are built on Google’s OpenSocial platform. A good comparison would be iGoogle gadgets or Facebook applications.
 * Robots: Robots are an automated participant within a wave. They can talk with users and interact with waves. They can provide information from outside sources (i.e. Twitter) or they can check content within a wave and perform actions based on them (i.e. provide you a stock quote if a stock name is mentioned).
 * Embeded Wave: An embeded wave is a way to take a Google Wave and the conversation within it and place it on your website. Users could use this as a chatroom, as a way to contact you, or for something more.

Features:

 * Real-time: In most instances, you can see what someone else is typing, character-by-character.
 * Embeddability: Waves can be embedded on any blog or website.
 * Applications and Extensions: Just like a Facebook application or an iGoogle gadget, developers can build their own apps within waves. They can be anything from bots to complex real-time games.
 * Wiki functionality: Anything written within a Google Wave can be edited by anyone else, because all conversations within the platform are shared. Thus, you can correct information, append information, or add your own commentary within a developing conversation.
 * Open source: The Google Wave code will be open source, to foster innovation and adoption amongst developers.
 * Playback: You can playback any part of the wave to see what was said.
 * Natural language: Google Wave can autocorrect your spelling, even going as far as knowing the difference between similar words, like “been” and “bean.” It can also auto-translate on-the-fly.
 * Drag-and-drop file sharing: No attachments; just drag your file and drop it inside Google Wave and everyone will have access.

Wave Extensions:

 * Wave Gadget is one of two types of Google Wave extensions. Gadgets are fully-functional applications.
 * Robots are the other type of Google Wave extension.

Google Wave Federation Protocol

 * The Google Wave Federation Protocol is an extension of the Extensible Messaging and Presence Protocol (XMPP).
 * XMPP is simular to SMTP.
 * XMPP-Server autentiification and authorization with Jabber Identifier (JID).
 * JID looks like „alice@example.com“ simular to E-Mail Address.
 * XMPP Java Libraries:
 * http://www.igniterealtime.org/projects/smack/index.jsp
 * http://java.net/projects/jso/
 * http://code.google.com/appengine/docs/java/xmpp/overview.html
 * http://freshmeat.net/projects/feridian/

From Google Wave to Wave in a Box
The main sub project of Apache Wave is "Wave in a Box", a stand alone wave server and rich web client that can serve as a Wave reference implementation.

Wave in a Box (WIAB) is the name of the main product at the moment, which is a server that hosts and federates waves, supports extensive APIs, and provides a rich web client. This project also includes an implementation of the Wave Federation protocol, to enable federated collaboration systems (such as multiple interoperable Wave In a Box instances).

Activities:
News
 * 2011-04-28 Issues tracking migrated from Google Code to Jira
 * 2011-02-19 Wave Project Web Site created.
 * 2010-12-01 Wave enters incubation

Setting Up:
Before we can start exploring Wave In a Box (WIAB) we need to setup our development environment. For this we need to fill the following requirements:
 * Java JDK - Either Sun/Oracle JDK or Open JDK both appear to work
 * ANT Build tool
 * Mercurial Distributed Source Control Package
 * Eclipse - The chosen IDE for Wave development
 * MongoDB (optional)
 * Wave In A Box source

Outcome

 * Wave will not be considered as first choice for AWOB. Developments will be monitored and in case the Apache project takes-up with more activity we will reconsider if needed