Google Wave, the previous incarnation of Apache Wave
|Developer(s)||Apache Software Foundation, Google|
|Initial release||May 27, 2009|
|Type||Collaborative real-time editor|
Wave is a web-based computing platform and communications protocol designed to merge key features of communications media such as email, instant messaging, wikis, and social networking. Communications using the system can be synchronous or asynchronous. Software extensions provide contextual spelling and grammar checking, automated language translation and other features.
Initially released only to developers, a preview release of Google Wave was extended to 100,000 users in September 2009, each allowed to invite additional users. Google accepted most requests submitted starting November 29, 2009, soon after the September extended release of the technical preview. On May 19, 2010, it was released to the general public.
On August 4, 2010, Google announced the suspension of stand-alone Wave development and the intent of maintaining the web site at least for the remainder of the year, and on November 22, 2011, announced that existing Waves would become read-only in January 2012 and all Waves would be deleted in April 2012. Development was handed over to the Apache Software Foundation which started to develop a server-based product called Wave in a Box.
- 1 History
- 2 Features
- 3 Extension programming interface
- 4 Federation protocol
- 5 See also
- 6 References
- 7 External links
Origin of name
The science fiction television series Firefly provided the inspiration for the project's name. In the series, a wave is an electronic communication, often consisting of a video call or video message. During the developer preview, a number of references were made to the series, such as Lars Rasmussen replying to a message with "shiny", a word used in the series to mean cool or good, and the crash message of Wave being a popular quotation from the series: "Curse your sudden but inevitable betrayal!" Another common error message, "Everything's shiny, Cap'n. Not to fret!" is a quote from Kaylee Frye in the 2005 motion-picture Firefly continuation, Serenity, and it is matched with a sign declaring that "This wave is experiencing some turbulence and might explode. If you don't want to explode..." which is another reference to the opening of the film.
During an event in Amsterdam, Netherlands, it became apparent that the 60-strong team that was currently working on Wave in Sydney, Australia use Joss Whedon-related references to describe, among others, the sandbox version of Wave called Dollhouse after the TV-series by Firefly producer Joss Whedon, which was aired on Fox in the U.S. The development of external extensions is codenamed "Serenity", after the spaceship used in Firefly and Serenity.
Google released most of the source code as open source software, allowing the public to develop its features through extensions. Google allowed third parties to build their own Wave services (be it private or commercial) because it wanted the Wave protocol to replace the e-mail protocol. Initially, Google was the only Wave service provider, but it was hoped that other service providers would launch their own Wave services, possibly designing their own unique web-based clients as is common with many email service providers. The possibility also existed for native Wave clients to be made, as demonstrated with their CLI-based console client.
Google released initial open-source components of Wave:
- the operational transformation (OT) code,
- the underlying wave model, and
- a basic client/server prototype that uses the wave protocol
In addition, Google provided some detail about later phases of the open-source release:
- wave model code that is a simplified version of Google's production code and is tied to the OT code; this code will evolve into the shared code base that Google will use and expects that others will too
- a testing and verification suite for people who want to do their own implementation (for example, for porting the code to other languages)
During the initial launch of Google Wave, invitations were widely sought by users and were sold on auction sites. Those who received invitations and decided to test Google Wave could not communicate with their contacts on their regular email accounts. The initial spread of Wave was very restricted.
End of development of original Google Wave under Google in 2010
Google Wave initially received positive press coverage for its design and potential uses. On August 4, 2010, Google announced Wave would no longer be developed as a stand-alone product due to a lack of interest. Google's statement surprised many in the industry and user community.
Response to the news of the end of development came from Wave users in the form of a website. Since their announcement in early August, the website has recorded over 49,000 supporter registrations urging Google Wave's continuation.
In retrospect, the lack of success of Google Wave was attributed among other things to its complicated user interface resulting in a product that was a bit like email, a bit like an instant messenger and a bit like a wiki but ultimately couldn't do any of the things really better than the existing solutions.
Chris Dawson of online technology magazine Zdnet discussed inconsistencies in the reasoning of Google in deciding to end support for Wave, mentioning its "deep involvement" in developing social media networks, to which many of Wave's capabilities are ideally suited. Perhaps Google Wave was ended to clear the stage for their new social network Google+ that competes with Facebook.
Google Wave was accepted by the Apache Software Foundation's Incubator program under the project name Apache Wave. The Google Wave Developer blog was updated with news of the change on December 6, 2010. A Wave Proposal page with details on the project's goals was created on the Apache Foundation's Incubator Wiki.
Wave in a Box
Wave in a Box is the current server implementation of Apache Wave and currently two demo servers are available.
Google Wave was a new Internet communications platform. It was written in Java using OpenJDK and its web interface used the Google Web Toolkit. Google Wave works like previous messaging systems such as email and Usenet, but instead of sending a message along with its entire thread of previous messages, or requiring all responses to be stored in each user's inbox for context, message documents (referred to as waves) that contain complete threads of multimedia messages (blips) are perpetually stored on a central server. Waves are shared with collaborators who can be added or removed from the wave at any point during a wave's existence.
Waves, described by Google as "equal parts conversation and document", are hosted XML documents that allow seamless and low latency concurrent modifications. Any participant of a wave can reply anywhere within the message, edit any part of the wave, and add participants at any point in the process. Each edit/reply is a blip and users can reply to individual blips within waves. Recipients are notified of changes/replies in all waves in which they are active and, upon opening a wave, may review those changes in chronological order. In addition, waves are live. All replies/edits are visible in real-time, letter-by-letter, as they are typed by the other collaborators. Multiple participants may edit a single wave simultaneously in Google Wave. Thus, waves can function not only as e-mails and threaded conversations but also as an instant messaging service when many participants are online at the same time. A wave may repeatedly shift roles between e-mail and instant messaging depending on the number of users editing it concurrently. The ability to show messages as they are typed can be disabled, similar to conventional instant messaging.
The ability to modify a wave at any location lets users create collaborative documents, edited in a manner akin to wikis. Waves can easily link to other waves. In many respects, it is a more advanced forum. It can be read and known to exist by only one person, or by two or more and can also be public, available for reading and writing to everyone on the Wave.
The history of each wave is stored within it. Collaborators may use a playback feature to observe the order in which it was edited, blips that were added, and who was responsible for what in the wave. The history may also be searched by a user to view and/or modify specific changes, such as specific kinds of changes or messages from a single user.
Extension programming interface
Google Wave is extensible through an application programming interface (API). It provides extensions in the form of Gadgets and Robots, and is embeddable by dropping interactive windows into a given wave on external sites, such as blog sites.
The last version of robots API is 2.0.
Google Wave also supports extension installers, which bundle back-end elements (robots and gadgets) and front-end user interface elements into an integrated package. Users may install extensions directly within the Wave client using an extension installer.
Google Wave extensions are add-ins that may be installed on Google Wave to enhance its functionality. They may be Internet bots (robots) to automate common tasks, or gadgets to extend or change user interaction features, e.g., posting blips on microblog feeds or providing RSVP recording mechanisms.
Over 150 Google Wave extensions have been developed either in the form of Gadgets or Robots.
A robot is an automated participant on a wave. It can read the contents of a wave in which it participates, modify its contents, add or remove participants, and create new blips or new waves. Robots perform actions in response to events. For example, a robot might publish the contents of a wave to a public blog site and update the wave with user comments.
Robots may be added as participants to the Wave itself. In theory, a robot can be added anywhere a human participant can be involved.
Gadget extensions are applications that run within the wave, and to which all participants have access. Robots and Gadgets can be used together, but they generally serve different purposes. A gadget is an application users could participate with, many of which are built on Google’s OpenSocial platform. A good comparison would be iGoogle gadgets or Facebook applications.
The gadget is triggered based on the user action. They can be best described as applications installed on a mobile phone. For example, a wave might include a sudoku gadget that lets the wave participants compete to see who can solve the puzzle first.
Gadgets may be added to individual waves and all the participants share and interact with the gadget.
Google Wave provides federation using an extension of XMPP, the open Wave Federation Protocol. Being an open protocol, anyone can use it to build a custom Wave system and become a wave provider. The use of an open protocol is intended to parallel the openness and ease of adoption of the e-mail protocol and, like e-mail, allow communication regardless of provider. Google hoped that waves would replace e-mail as the dominant form of Internet communication. In this way, Google intended to be only one of many wave providers and to also be used as a supplement to e-mail, instant messaging, FTP, etc.
A key feature of the protocol is that waves are stored on the service provider's servers instead of being sent between users. Waves are federated; copies of waves and wavelets are distributed by the wave provider of the originating user to the providers of all other participants in a particular wave or wavelet so all participants have immediate access to up-to-date content. The originating wave server is responsible for hosting, processing, and concurrency control of waves. The protocol allows private reply wavelets within parent waves, where other participants have no access or knowledge of them.
Security for the communications is provided via Transport Layer Security authentication, and encrypted connections and waves/wavelets are identified uniquely by a service provider's domain name and ID strings. User-data is not federated, that is, not shared with other wave providers.
Adoption of Wave Protocol and Wave Federation Protocol
Besides Apache Wave itself, there are other open-source variants of servers and clients with different percentage of Wave Federation and Wave Protocol support. Wave has been adopted for corporate applications by Novell for Novell Pulse, or by SAP for Cloudave, and community projects such as PyOfWave or Kune.
Compatible third-party servers
The following servers are compatible with the Google Wave protocol:
- free culture and social movements needs.
- Novell Vibe formerly known as Novell Pulse
- Rizzoma is a platform for collaborative work in real time. It allows communication within a certain context permitting a chat to instantly become a document where topics of a discussion organized into branches of mind-map diagram and minor details are collapsed to avoid distraction. The user is able to sign in using a Google or Facebook account and choose whether your topics are private or public.
- SAP StreamWork is a collaboration decision making service.
- Extensible Messaging and Presence Protocol (XMPP)
- Real-time text
- Opera Unite
- Microsoft Sharepoint Workspace
- Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Retrieved 14 March 2010.
Google Inc. (2009). "Google Wave Overview". Archived from the original on 27 April 2010. Retrieved May 2010.
[A] new web application for real-time communication and collaboration.
- TechCrunch (May 28, 2009): Google Wave Drips With Ambition. A New Communication Platform For A New Web.
- Google Inc. "I/O Conference Google Wave Keynote".
- Google Inc. "About Google Wave".
- "Google Wave Developer Blog". Google.
- Shankland, Stephen. (2010-05-19) Google Wave: Now open to the public | Deep Tech – CNET News. News.cnet.com. Retrieved on 2010-12-14.
- Official Google Blog: Update on Google Wave. Googleblog.blogspot.com (2010-04-08). Retrieved on 2010-12-14.
- "Official Blog: More spring cleaning out of season". Googleblog.blogspot.com. 2011-11-22. Retrieved 2013-06-15.
- Meyer, David. (2010-09-03) Google puts open-source Wave in a 'box' | Application Development | ZDNet UK. Zdnet.co.uk. Retrieved on 2010-12-14.
- Google Wave inte ute ur leken. IDG.se. Retrieved on 2010-12-14.
- Murphy, David. (1970-01-01) Google Spins Wave Into 'Wave in a Box' for Third-Party Use | News & Opinion. PCMag.com. Retrieved on 2010-12-14.
- Cochrane, Nate (2009-05-29). "Opinion: Google's wave drowns the bling in Microsoft's Bing". IT News Australia. Archived from the original on 3 June 2009. Retrieved 2009-06-03.
- Originally said by Wash at 6:36, in Serenity; Firefly: The Complete Series (Blu-ray), 2008, 20th Century Fox.
- Rottmann, Ralf (October 30, 2009). "Google Wave to be opened for federation today!". The Next Web.
- Google Wave Federation Architecture – Google Wave Federation Protocol. Waveprotocol.org. Retrieved on 2010-12-14.
- Google Wave Client-Server Protocol – Google Wave Federation Protocol. Waveprotocol.org. Retrieved on 2010-12-14.
- "Google Wave Federation Protocol and Open Source Updates". Google.
- "Google Wave Federation Protocol and Open Source Updates". Google.
- Google Wave Invite Selling for $70 on eBay
- B.B.C. report introducing Google Wave in September 2009
- Google Wave to get its own App Store (Engadget)
- CNET Predictions for 2010
- ZDNet on GW's death
- "Status of Google Wave - Google Help". Google.com. Retrieved 2013-06-15.
- '"Save Google Wave" Site Forms'
- Save Google Wave!. Retrieved on 2011-05-14.
- Google Wave: why we didn't use it, Ars Technica
- "Can Google+ really challenge Facebook and be an asset to brands?" utalkmarketing.com
- North, Alex. (2010-12-06) Google Wave Developer Blog: Introducing Apache Wave. Googlewavedev.blogspot.com. Retrieved on 2010-12-14.
- WaveProposal – Incubator Wiki. Wiki.apache.org (2010-11-24). Retrieved on 2010-12-14.
- "Wave in a Box demo servers". Apache Software Foundation. Retrieved 10 October 2012.
- Google Wave Operational Transformation – Google Wave Federation Protocol. Waveprotocol.org. Retrieved on 2010-12-14.
- Google Wave Review. VariableGHz (2009-10-13). Retrieved on 2010-12-14.
- "Google Wave API – Google Code". Google.
- "Introducing Robots API v2: The Rise of Active Robots". Google.
- Google Wave Samples Gallery. Wave-samples-gallery.appspot.com. Retrieved on 2010-12-14.
- "Google Wave Federation Protocol". Google.
- Novell Vibe cloud service. Novell.com. Retrieved on 2010-12-14.
- Elliott, Timo. (2009-10-19) SAP's Gravity Prototype: Business Collaboration Using Google Wave. Cloudave.com. Retrieved on 2010-12-14.
- "Kune Homepage". Retrieved 22 April 2012.
- Novell Vibe. Novell.com (2009-12-31). Retrieved on 2010-12-14.
- PyOfWave on GitHub. Retrieved on 2012-03-01.
- "Rizzoma Homepage". Retrieved 9 May 2012.
- Williams, Alex. (2010-05-17) SAP StreamWork Integrates With Google Wave – ReadWriteCloud. Readwriteweb.com. Retrieved on 2010-12-14.
- How It Works | SAP® StreamWork™. Sapstreamwork.com. Retrieved on 2010-12-14.
- Apache Wave
- Wave in a Box
- Google Wave
- Google Wave API
- Google Wave Developer Blog
- Full Video of the Developer Preview at Google IO on
- Google Wave overview video
- Google Wave Federation Protocol
- Open Source implementation of Google Drive Realtime API