What is Google Wave?
Vic Gundotra, Vice President, Engineering
at Google began the proceedings of day 2 at Google I/O on an excited note - “Yesterday
we promised you a surprise and this morning, Google would surprise you” The day
ended with a continuous applause towards this product named Google Wave which is
slated for a widely awaited release in one year. Google Wave is the brainchild of
two brothers Lars Rasmussen and Jens Rasmussen along with Stephanie Hannon, who
are the same people behind a widely acknowledged application known to all of us
by the name of Google Maps.
What is the Google Wave Revolution?
Google Wave is all about objects called
Waves and Wavelets. Google hopes that this technology would change the way people
communicate and collaborate over the internet. Google believes that Google wave
would be the next biggest thing after e-mail was founded forty years ago. What are all these objects named as waves and wavelets all about?
Is Wave going to become as synonymous as what Windows became in the 90’s?
Waves are centralized communication
objects that can be manipulated by any number of users from any location at the
same time. The big buzz word that industry
watchers predict would make Google Wave a success is its real-time capabilities.
Done with the Definition, let us get
into the intricate aspects of what has come to be known as the Google Wave Technology.
Email is by far the most popular way
to communicate over the internet and was invented more than 40 years ago. There
were no instant messaging, wikis, web chat, social networking, project management
solutions, in-browser communication clients, media sharing sites and collaborative
editors back then. This led to e-mail becoming a separate entity, which happened
to carry on for forty years. But now Google has decided to integrate every other
technology that came later with what we call as e-mail in the best possible way,
thereby making a giant leap ahead. Techies and evangelists say that is fine, but
they instantaneously pop up a question- What is new with this?
How does wave differ from email?
Email essentially mimics snail mail
where we write a message and send it to one or more recipients. Email can also relate
messages into inter-conversations or threads.
Wave by contrast starts out with a
conversation as a lightweight tree structure of messages with a set of users participating
in the conversation. Instead of individual messages sent back and forth, it consists
of an entire conversation object as a shared object hosted somewhere. Users who
participate can open up that wave (shared object) work with it, add something and
exit.
Every wave is stored in a centralized location and is accessible to all the users
who have the permissions to use it and multiple users can update a wave at the same
time concurrently and every user involved can observe the changes being made in
real time.
Scenarios made possible by waves
Scenario 1: You get an
email with three questions or topics that it is concerned with.
Via Email: You hit on reply,
read the mail back and forth and reply everything in a single message or otherwise
you would edit the email you get by copying the questions that were asked, paste
them in your reply mail, edit them again and paste in individual answers near each
question and then you send it.
Wave: Since in a wave everything
is a shared object, you open the wave as a centralized message and there is no specific
editing required as you can type anything at any location of the message in the
wave and you can close it.
Scenario 2: When two users
are communicating online.
(Editor’s pick)
Via Chat: You send a message
to a user called Mr. X and then you wait all long while he is typing your reply.
This is just the usual way of chatting that we all know of.
Wave: While chatting, you
don’t need to wait until the other user types "enter/return" to receive his message.
So you won’t have to wait all long, staring at blinking messages that show that
Mr. X is typing. What happens is real time communication. So every letter that is
typed by a person is seen in real time by the other person just as if he is sitting
beside you and watching your own chat screen! No enter-and-wait business.
Big Picture: Now the bigger
scenario is that, this kind of real time communication is not just limited to typing
or chatting but also to any other work that is being done together. Everything is real time and multiple people can work together. Everything
like blogging, coding, chatting, authoring, designing, painting, social networking,
studying, content developing, researching, media sharing, project developing and
anything and everything you can think of doing online can be done together by multiple
people with all of them being able to collaborate, add, delete and update a work/tool
in real time without any conflict or concurrency problems.
Embedding a wave would change the way we use the web
Waves come with a feature that they
can be embedded on any web page with utmost ease. Once a wave is embedded on a page,
authorized users can come together and discuss or work with that page. Waves can
be embedded on Orkut, Twitter and Facebook and on any other page you would like
to have your wave embedded into. A wave embedded on Orkut can be accessed both by
your non-Orkut contacts and the Orkut contacts that you have. The creator of the
wave does have full rights to grant access to the users he would like to work with.
Google provides the developer community with a set of Embedding API’s for working
with their tools in order to provide a smooth platform for allowing the embedding
of waves in various software products and web services. Google wave also allows
for embedding of multiple waves on a single page and provides a search panel which
can be embedded using the Embed API to allow users to search from a collection of
waves provided on a single page.
Example:
Users can use an embedded wave to change a caption in their blog without actually
visiting the blog. In short, waves allow for live editing and live authoring of
content all over the web.
Heck a lot of freedom gives way to dangerous collisions?
When multiple users from multiple
locations are allowed to edit the same piece of work at the same time, won’t it
cause collisions and unwanted mishaps with the data involved? Google Wave has an
answer to this and considers the following features to be an important driving force:
Playback: playback can be used to see the order of edits of every user involved
for the sake of accountability and everyone on the wave can see who did what. The
changes are very specifically displayed and are even highlighted with different
colors and comments so as to make things easy. The playback is provided with a slider
which can be used to go through the history of any wave. Specific playback features
are also available and they allow for focusing on the history of just one paragraph
or only one user’s versions.
Fresh Wave: When a team
is done with working on a wave and decides to publish the work with all the latest
versions collected from the users and integrated into a single version, Google Wave
allows for the operation in a click of a button through a feature called Fresh Wave.
Google Wave comes with a set of inbuilt
algorithms and protocols that work in the backend to allow for real time usage,
concurrency control and collision prevention measures. The demo at Google I/O showed
four people editing a document at the same time. One person worked on italicizing while the other took on underlining at a
concurrent timeline. One person was able to zoom a Google Map, while the other was
able to explore it at the same time.
Some more amazing features
Wavelinks: Wavelinks allow
for interlinking of different waves and come with a feature where we can pick up
waves and drag-drop them at required locations.
Context Sensitive Spell Checker: Google wave comes with a one of a kind
spell checker that detects and corrects errors based on not just spelling and grammar,
but also takes into account the contextual usage of every word.
Example: “Icland is an Icland”, was corrected in a contextual manner into “Iceland
is an island”. “Bean so long”
became “Been so long”, and “been soup” was corrected into “bean soup”.
Google says that the context sensitive
spell checker is based on state of the art language processing techniques where
it also takes into account a language model while matching the used words with the
verbal databases.
Link Checker: Link checker automatically checks for the validity of a link
before turning it into a hyperlink.
Client Side Extensions:
Google maintains and works with all the internal API’s but has put all the external
API’s into the public domain, thereby allowing for developers to develop exciting
extensions that are based on Google Wave technology.
Example client side extensions based on Google Wave technology
Polly the pollster: Polly
is an extension that was created based on Google Wave technology, and it allows
for collaborative creation and filling of forms where one user can fill a question
while another fills another question while a third user creates options, all at
the same time thereby terrifically increasing the efficiency and throughput of the
work involved.
Twave: Twave is an extension that integrates waves to communication
systems like twitter thereby allowing for collaborative communication into twitter
directly though Google waves. The twave terminology would now probably sound like-
‘Twave reply got tweeted by tweety in twitter’!
Linky: Linky is an extension that adds links automatically while we type after
validating the link for authenticity.
Searchy: Searchy is an
extension that lets you search the internet through the application and integrates
the searched content into a specified wave.
Buggy: Buggy is an extension
that allows us to interact with bug tracking software and easily administers debugging
through multiple professionals thereby increasing efficiency and accountability.
“Federations” allow for Inter organization Google Wave technology, just like an
Intranet
Federation is another new entity introduced
by Google Wave Technology where it allows for any organization to build personalized
waves and then allows it to give usernames to its users. These inter organizational
wave systems also allow for real time concurrency control, collision prevention
mechanisms and on top of it allow the organizational waves to be a specific entity
where they are allowed to coexist privately among many other such Federations. All
the waves in a Federation are made private entities and do not allow outsiders to
access them.
Google Wave is completely Open Source
and has been completely built with Google Web Tool Kit that lets developers to write
html5 applications in java and automatically translates them into html, java script,
CSS, or as required by the web browser.
Official Google Wave Links
Product home:
wave.google.com (sign
up form for notifications)
API Site:
code.google.com/apis/wave (API’s and GWT)
Protocol:
www.waveprotocol.org (hosts
protocol drafts and whitepapers)