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.
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. (2100Science likes this!)
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 (API's and GWT)
Protocol: waveprotocol.org (hosts protocol drafts and whitepapers)