Google Wave

Last updated

Google Wave
Original author(s) Google
Developer(s) Apache Software Foundation, Google
Initial releaseMay 28, 2009;15 years ago (2009-05-28)
Preview release
0.4-rc10 / October 10, 2014;9 years ago (2014-10-10)
Repository https://github.com/apache/incubator-retired-wave
Written in Java
Platform Web platform
Successor Google Buzz
Type Collaborative real-time editor
License Apache License 2.0
Website incubator.apache.org/projects/wave.html

Google Wave, later known as Apache Wave, was a software framework for real-time collaborative online editing. Originally developed by Google and announced on May 28, 2009, [1] [2] [3] it was renamed to Apache Wave when the project was adopted by the Apache Software Foundation as an incubator project in 2010.

Contents

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. [4] Communications using the system can be synchronous or asynchronous. Software extensions provide contextual spelling and grammar checking, automated language translation [2] and other features. [5]

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. [6]

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; [7] on November 22, 2011, they announced that existing Waves would become read-only in January 2012, and all Waves would be deleted in April 2012. [8] Development was handed over to the Apache Software Foundation which started to develop a server-based product called Wave in a Box. [9] [10] [11] Apache Wave never reached a full release and was discontinued on January 15, 2018. [12]

History

Etymology

The science fiction television series Firefly provided the inspiration for the project's name. [13] In the series, a wave is an electronic communication, often consisting of a video call or video message. [13] 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!" [2] [14] Another common error message, "Everything's shiny, Cap'n. Not to fret!" is a quote from Kaylee Frye in the 2005 motion-picture Firefly reworking, 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, [15] it became apparent that the 60-strong team that was then working on Wave in Sydney used 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 US. The development of external extensions was codenamed "Serenity", after the spaceship used in Firefly and Serenity.

Free software

Google released most of the source code as free software, [2] allowing the public to develop its features through extensions. [2] 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. [2] [16] [17] 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. [18]

Google released initial free software components of Wave: [19]

  1. the operational transformation (OT) code,
  2. the underlying wave model, and
  3. a basic client/server prototype that uses the wave protocol

In addition, Google provided some detail about later phases of the free software release: [18]

  1. 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
  2. a testing and verification suite for people who want to do their own implementation (for example, for porting the code to other languages)

Features

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 worked 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) were perpetually stored on a central server. Waves were shared with collaborators who could 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", were hosted XML documents that allowed seamless and low latency concurrent modifications. [20] Any participant of a wave could reply anywhere within the message, edit any part of the wave, and add participants at any point in the process. Each edit/reply was a blip and users can reply to individual blips within waves. Recipients were notified of changes/replies in all waves in which they were active and, upon opening a wave, could review those changes in chronological order. In addition, waves were live. All replies/edits were visible in real-time, letter-by-letter, as they were typed by the other collaborators. Multiple participants could edit a single wave simultaneously in Google Wave. Thus, waves could function not only as e-mails and threaded conversations but also as an instant messaging service when many participants were online at the same time. A wave could 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 could be disabled, similar to conventional instant messaging. [4]

The ability to modify a wave at any location let users create collaborative documents, edited in a manner akin to wikis. Waves could easily link to other waves. In many respects, it was a more advanced forum. [21] It could be read and known to exist by only one person, or by two or more and could also be public, available for reading and writing to everyone on the Wave. [22] [ citation needed ]

The history of each wave was stored within it. Collaborators could 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. [4] [5] The history could 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. [2]

Reception

During the initial launch of Google Wave, invitations were widely sought by users and were sold on auction sites. [23] 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.

Google Wave initially received positive press coverage for its design [24] and potential uses. [25] [26] After its demise, it was criticized for trying to merge "all forms of communication in a single, crowded space". [27]

End of development of Google Wave

On August 4, 2010, Google announced Wave would no longer be developed as a stand-alone product due to a lack of interest. [28] Google's statement surprised many in the industry and user community.

Google later clarified the Wave service would be available until April 2012, giving users the opportunity to use the export functionality to keep a local copy of their waves in PDF format. [29]

Response to the news of the end of development came from Wave users in the form of a website. [30] After their announcement in early August 2010, the website recorded over 49,000 supporter registrations urging Google Wave's continuation. [31]

In retrospect, the lack of success of Google Wave was attributed among other things to its complicated user interface resulting from a product that merged features of email, instant messengers and wikis but ultimately failed to do anything significantly better than the existing solutions. [32]

Chris Dawson of online technology magazine Zdnet discussed inconsistencies in the reasoning of Google in deciding to end support for Wave, [28] mentioning its "deep involvement" in developing social media networks, to which many of Wave's capabilities are ideally suited.

Apache Wave

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. [33] A Wave Proposal page with details on the project's goals was created on the Apache Foundation's Incubator Wiki. [34]

Wave in a Box

Wave in a Box logo Wave in a Box logo.png
Wave in a Box logo

Wave in a Box is the current server implementation of Apache Wave. Currently, there are no demo servers available. [35]

Crisis and SwellRT

In 2016, several discussions took place within the Apache Wave community, aiming to tackle the stagnation and crisis state of the project. The Apache Software Foundation mentor of Apache Wave, Upayavira, [36] was concerned by the project's stagnation, but framed SwellRT (a fork which re-engineered Wave into a backend-as-a-service for building apps) as Wave's potential savior. [37] Eventually, Wave was approved to continue within Apache incubator program, and a copy of SwellRT codebase was placed in the Apache Wave repository in order to grant the Wave community access to it. [38] In this regard, Intellectual Property of SwellRT was transferred to the Apache Foundation in 2017. [39] Still this was not sufficient to resurrect Wave's developer community, and SwellRT continued as independent project.

Retirement

The Wave project retired on January 15, 2018, having never left incubator status. [40]

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. [2] [41]

The last version of robots API is 2.0. [42]

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.

Extensions

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. [2] [4] [41]

Over 150 Google Wave extensions have been developed either in the form of Gadgets or Robots. [43]

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.

Gadgets

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.

Federation protocol

Google Wave provides federation using an extension of Extensible Messaging and Presence Protocol (XMPP), the free Wave Federation Protocol. Being an open protocol, anyone can use it to build a custom Wave system and become a wave provider. [44] 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. [2] [16] [17] In this way, Google intended to be only one of many wave providers [2] [16] [17] 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. [16] [17] The protocol allows private reply wavelets within parent waves, where other participants have no access or knowledge of them. [16] [17]

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 were other open-source variants of servers and clients with different percentage of Wave Federation and Wave Protocol support. Wave was re-engineered into a backend-as-a-service solution by the SwellRT project. Wave was adopted in different forms for corporate applications by Novell for Novell Pulse, [45] or by SAP for Cloudave, [46] and community projects such as PyOfWave or Kune.

Compatible third-party servers

The following servers were compatible with the Google Wave protocol:

  • Kune is a free/open source platform for social networking, collaborative work and web publishing, focusing on work groups and organizations rather than in individuals. It provides lists, tasks, documents, galleries, etc., while using waves underneath. It focuses on free culture and social movements needs. [47]
  • Novell Vibe , formerly known as Novell Pulse. [48]
  • 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. [49]
  • SAP StreamWork is a collaboration decision making service. [50] [51]
  • SwellRT is a backend-as-a-service for building collaborative and federated apps. It is a fork which re-engineered Apache Wave, and was adopted within the Apache Wave project. [52]

See also

Related Research Articles

<span class="mw-page-title-main">Email</span> Mail sent using electronic means

Electronic mail is a method of transmitting and receiving messages using electronic devices. It was conceived in the late–20th century as the digital version of, or counterpart to, mail. Email is a ubiquitous and very widely used communication medium; in current use, an email address is often treated as a basic and necessary part of many processes in business, commerce, government, education, entertainment, and other spheres of daily life in most countries.

<span class="mw-page-title-main">HTTP 404</span> Internet error message

In computer network communications, the HTTP 404, 404 not found, 404, 404 error, page not found, or file not found error message is a hypertext transfer protocol (HTTP) standard response code, to indicate that the browser was able to communicate with a given server, but the server could not find what was requested. The error may also be used when a server does not wish to disclose whether it has the requested information.

<span class="mw-page-title-main">Instant messaging</span> Form of communication over the internet

Instant messaging (IM) technology is a type of online chat allowing immediate transmission of messages over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and triggers a transmission to the recipient(s), who are all connected on a common network. It differs from email in that conversations over instant messaging happen in real-time. Most modern IM applications use push technology and also add other features such as emojis, file transfer, chatbots, voice over IP, or video chat capabilities.

<span class="mw-page-title-main">GNOME Evolution</span> Personal information manager software and workgroup information management tool for GNOME

GNOME Evolution is the official personal information manager for GNOME. It has been an official part of GNOME since Evolution 2.0 was included with the GNOME 2.8 release in September 2004. It combines e-mail, address book, calendar, task list and note-taking features. Its user interface and functionality is similar to Microsoft Outlook. Evolution is free software licensed under the terms of the GNU Lesser General Public License (LGPL).

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

<span class="mw-page-title-main">Shibboleth (software)</span> Internet identity system

Shibboleth is a single sign-on log-in system for computer networks and the Internet. It allows people to sign in using just one identity to various systems run by federations of different organizations or institutions. The federations are often universities or public service organizations.

<span class="mw-page-title-main">Google Talk</span> Instant messaging service

Google Talk was an instant messaging service that provided both text and voice communication. The instant messaging service was variously referred to colloquially as Gchat, Gtalk, or Gmessage among its users.

<span class="mw-page-title-main">Skype for Business</span> Enterprise instant messaging and video conferencing software by Microsoft

Skype for Business is an enterprise software application for instant messaging and videotelephony developed by Microsoft as part of the Microsoft 365 suite. It is designed for use with the on-premises Skype for Business Server software, and a software as a service version offered as part of 365. It supports text, audio, and video chat, and integrates with Microsoft 365 components such as Exchange and SharePoint.

<span class="mw-page-title-main">OpenSocial</span> Public specification aimed at social networking applications

OpenSocial is a public specification that outlines a set of common application programming interfaces (APIs) for web applications. Initially designed for social network applications, it was developed collaboratively by Google, MySpace and other social networks. It has since evolved into a runtime environment that allows third-party components, regardless of their trust level, to operate within an existing web application.

The Wave Federation Protocol is an open protocol, extension of the Extensible Messaging and Presence Protocol (XMPP) that is used in Apache Wave. It is designed for near real-time communication between the computer supported cooperative work wave servers.

Novell Vibe is a web-based team collaboration platform developed by Novell. It was initially released by Novell in June 2008 under the name of Novell Teaming. Novell Vibe is a collaboration platform that can serve as a knowledge repository, document management system, project collaboration hub, process automation machine, corporate intranet or extranet. Users can upload, manage, comment on, and edit content securely.

Exchange ActiveSync is a proprietary protocol designed for the synchronization of email, contacts, calendar, tasks, and notes from a messaging server to a smartphone or other mobile devices. The protocol also provides mobile device management and policy controls. The protocol is based on XML. The mobile device communicates over HTTP or HTTPS.

<span class="mw-page-title-main">GroupWise</span> Messaging and collaborative software platform

GroupWise is a messaging and collaboration platform from OpenText that supports email, calendaring, personal information management, instant messaging, and document management. The GroupWise platform consists of desktop client software, which is available for Windows,, and the server software, which is supported on Windows Server and Linux.

<span class="mw-page-title-main">Kune (software)</span> Open source software

Kune was a free/open source distributed social network focused on collaboration rather than just on communication. That is, it focused on online real-time collaborative editing, decentralized social networking and web publishing, while focusing on workgroups rather than just on individuals. It aimed to allow for the creation of online spaces for collaborative work where organizations and individuals can build projects online, coordinate common agendas, set up virtual meetings, publish on the web, and join organizations with similar interests. It had a special focus on Free Culture and social movements needs. Kune was a project of the Comunes Collective. The project seems abandoned since 2017, with no new commits, blog entries or site activity.

SwellRT was a free and open-source backend-as-a-service and API focused to ease development of apps featuring real-time collaboration. It supported the building of mobile and web apps, and aims to facilitate interoperability and federation.

The JSON Meta Application Protocol (JMAP) is a set of related open Internet Standard protocols for handling email. JMAP is implemented using JSON APIs over HTTP and has been developed as an alternative to IMAP/SMTP and proprietary email APIs such as Google's Gmail and Microsoft's MAPI . Additional protocols and data models being built on top of the core of JMAP for handling contacts and calendar synchronization are meant to be potential replacements for CardDAV and CalDAV, and other support is currently in the works.

<span class="mw-page-title-main">Conversations (software)</span> Free software instant messaging client for the XMPP protocol

Conversations is a free software, instant messaging client application software for Android. It is largely based on recognized open standards such as the Extensible Messaging and Presence Protocol (XMPP) and Transport Layer Security (TLS).

References

  1. TechCrunch (May 28, 2009): Google Wave Drips With Ambition. A New Communication Platform For A New Web.
  2. 1 2 3 4 5 6 7 8 9 10 11 Google Inc. "I/O Conference Google Wave Keynote". YouTube .{{cite web}}: |author= has generic name (help)
  3. Google Inc. (2009). "Google Wave Overview". Archived from the original on April 27, 2010. [A] new web application for real-time communication and collaboration.{{cite web}}: |author= has generic name (help)
  4. 1 2 3 4 Google Inc. "About Google Wave".{{cite web}}: |author= has generic name (help)
  5. 1 2 "Google Wave Developer Blog".
  6. Shankland, Stephen. (May 19, 2010) Google Wave: Now open to the public | Deep Tech – CNET News Archived September 14, 2013, at the Wayback Machine . News.cnet.com. Retrieved on 2010-12-14.
  7. Official Google Blog: Update on Google Wave. Googleblog.blogspot.com (April 8, 2010). Retrieved on 2010-12-14.
  8. "Official Blog: More spring cleaning out of season". Googleblog.blogspot.com. November 22, 2011. Retrieved June 15, 2013.
  9. Meyer, David. (September 3, 2010) Google puts open-source Wave in a 'box' | Application Development | ZDNet UK. Zdnet.co.uk. Retrieved on 2010-12-14.
  10. Google Wave inte ute ur leken. IDG.se. Retrieved on December 14, 2010.
  11. Murphy, David. (January 1, 1970) Google Spins Wave Into 'Wave in a Box' for Third-Party Use | News & Opinion. PCMag.com. Retrieved on 2010-12-14.
  12. "Wave Incubation Status - Apache Incubator". incubator.apache.org. Retrieved April 12, 2018.
  13. 1 2 Cochrane, Nate (May 29, 2009). "Opinion: Google's wave drowns the bling in Microsoft's Bing". IT News Australia. Archived from the original on June 3, 2009. Retrieved June 3, 2009.
  14. Originally said by Wash at 6:36, in Serenity ; Firefly: The Complete Series (Blu-ray), 2008, 20th Century Fox.
  15. Rottmann, Ralf (October 30, 2009). "Google Wave to be opened for federation today!". The Next Web.
  16. 1 2 3 4 5 Google Wave Federation Architecture – Google Wave Federation Protocol Archived March 30, 2013, at the Wayback Machine . Waveprotocol.org. Retrieved on December 14, 2010.
  17. 1 2 3 4 5 Google Wave Client-Server Protocol – Google Wave Federation Protocol Archived March 30, 2013, at the Wayback Machine . Waveprotocol.org. Retrieved on December 14, 2010.
  18. 1 2 "Google Wave Federation Protocol and Open Source Updates".
  19. "Google Wave Federation Protocol and Open Source Updates".
  20. Google Wave Operational Transformation – Google Wave Federation Protocol Archived May 31, 2009, at the Wayback Machine . Waveprotocol.org. Retrieved on December 14, 2010.
  21. Google Wave Review. VariableGHz (October 13, 2009). Retrieved on 2010-12-14.
  22. "What Is Web 3.0 (Web3)? Definition, Guide and History". WhatIs. Retrieved December 12, 2023.
  23. Google Wave Invite Selling for $70 on eBay
  24. B.B.C. report introducing Google Wave in September 2009
  25. Google Wave to get its own App Store (Engadget)
  26. "CNET Predictions for 2010". Archived from the original on January 17, 2010. Retrieved January 13, 2010.
  27. "What in the Hell Was Google Wave Trying to Be Anyway?". Gizmodo. May 27, 2019. Retrieved March 18, 2023.
  28. 1 2 ZDNet on GW's death
  29. "Status of Google Wave - Google Help" . Retrieved May 16, 2024.
  30. "'"Save Google Wave" Site Forms'". Archived from the original on August 15, 2010. Retrieved August 11, 2010.
  31. Save Google Wave! Archived August 5, 2018, at the Wayback Machine . Retrieved on May 14, 2011.
  32. Google Wave: why we didn't use it, Ars Technica
  33. North, Alex. (December 6, 2010) Google Wave Developer Blog: Introducing Apache Wave. Googlewavedev.blogspot.com. Retrieved on 2010-12-14.
  34. WaveProposal – Incubator Wiki. Wiki.apache.org (November 24, 2010). Retrieved on 2010-12-14.
  35. "Wave in a Box demo servers". Apache Software Foundation. Retrieved October 10, 2012.
  36. "Wave Incubation Status - Apache Incubator". incubator.apache.org. Retrieved October 28, 2017.
  37. "September2016 - Incubator Wiki". wiki.apache.org. Retrieved October 28, 2017.
  38. "December2016 - Incubator Wiki". wiki.apache.org. Retrieved October 28, 2017.
  39. "March2017 - Incubator Wiki". wiki.apache.org. Retrieved October 28, 2017.
  40. "Wave Incubation Status - Apache Incubator". Apache Software Foundation. Retrieved January 17, 2018.
  41. 1 2 "Google Wave API – Google Code".
  42. "Introducing Robots API v2: The Rise of Active Robots".
  43. Google Wave Samples Gallery Archived April 15, 2010, at the Wayback Machine . Wave-samples-gallery.appspot.com. Retrieved on December 14, 2010.
  44. "Google Wave Federation Protocol". Archived from the original on May 30, 2009. Retrieved May 28, 2009.
  45. Novell Vibe cloud service. Novell.com. Retrieved on December 14, 2010.
  46. Elliott, Timo. (October 19, 2009) SAP's Gravity Prototype: Business Collaboration Using Google Wave Archived March 24, 2010, at the Wayback Machine . Cloudave.com. Retrieved on 2010-12-14.
  47. "Kune Homepage" . Retrieved April 22, 2012.
  48. Novell Vibe. Novell.com (December 31, 2009). Retrieved on 2010-12-14.
  49. "Rizzoma Homepage" . Retrieved May 9, 2012.
  50. Williams, Alex. (May 17, 2010) SAP StreamWork Integrates With Google Wave – ReadWriteCloud. Readwriteweb.com. Retrieved on 2010-12-14.
  51. How It Works | SAP® StreamWork™ Archived December 8, 2010, at the Wayback Machine . Sapstreamwork.com. Retrieved on December 14, 2010.
  52. "SwellRT homepage". SwellRT. Retrieved December 17, 2017.