A collaborative real-time editor is a type of
collaborative software
Collaborative software or groupware is application software designed to help people working on a common task to attain their goals. One of the earliest definitions of groupware is "intentional group processes plus software to support them."
Regar ...
or
web application
A web application (or web app) is application software that is created with web technologies and runs via a web browser. Web applications emerged during the late 1990s and allowed for the server to dynamically build a response to the request, ...
which enables real-time collaborative editing,
simultaneous editing, or live editing of the same
digital document,
computer file
A computer file is a System resource, resource for recording Data (computing), data on a Computer data storage, computer storage device, primarily identified by its filename. Just as words can be written on paper, so too can data be written to a ...
or
cloud-stored data
Data ( , ) are a collection of discrete or continuous values that convey information, describing the quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted for ...
– such as an
online spreadsheet,
word processing A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Word processor (electronic device), Early word processors were stand-alone devices dedicate ...
document,
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
or
presentation
A presentation conveys information from a speaker to an audience. Presentations are typically demonstrations, introduction, lecture, or speech meant to inform, persuade, inspire, motivate, build goodwill, or present a new idea/product. Presenta ...
– at the same time by different users on different computers or
mobile devices, with automatic and nearly instantaneous merging of their edits.
Real-time editing performs automatic, periodic, often nearly instantaneous synchronization of edits of all online users as they edit the document on their own device. This is designed to avoid or minimize
edit conflicts.
With asynchronous
collaborative editing
Collaborative editing is the process of multiple people editing the same document simultaneously. This technique may engage expertise from different disciplines, and potentially improve the quality of documents and increase deals.
Good choices i ...
(i.e. non-real-time, delayed or offline), each user must typically manually submit (publish, push or commit), update (refresh, pull, download or sync) and (if any edit conflicts occur) merge their edits. Due to the delayed nature of asynchronous collaborative editing, multiple users can end up editing the same line, word, element,
data
Data ( , ) are a collection of discrete or continuous values that convey information, describing the quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted for ...
,
row or
field resulting in
edit conflicts which require manual
edit merging or overwriting, requiring the user to choose which edits to use or (depending on the system and setup) automatically overwriting their edits or other people's edits, with or without a warning.
History of key products
The first instance of a collaborative real-time editor was demonstrated by
Douglas Engelbart
Douglas Carl Engelbart (January 30, 1925 – July 2, 2013) was an American engineer, inventor, and a pioneer in many aspects of computer science. He is best known for his work on founding the field of human–computer interaction, particularly ...
in 1968, in
The Mother of All Demos
"The Mother of All Demos" was a landmark computer demonstration, named retroactively, of developments by Stanford Research Institute's Augmentation Research Center. It was presented at the Association for Computing Machinery / Institute of Ele ...
. Widely available implementations of the concept took decades to appear.
A piece of software called ''Instant Update'' was released for the
classic Mac OS
Mac OS (originally System Software; retronym: Classic Mac OS) is the series of operating systems developed for the Mac (computer), Macintosh family of personal computers by Apple Computer, Inc. from 1984 to 2001, starting with System 1 and end ...
in 1991 from
ON Technology. It allowed real-time editing of a single document by multiple users over a
LAN and relied on a
workgroup server.
A collaborative spreadsheet,
Quickoffice Conference, was demonstrated at COMDEX 2001, developed by Jeff Musa of Cutting Edge Software. The software was designed to allow peer-to-peer and peer-to-multi-peer conferencing and collaboration capabilities and operated on the Palm OS mobile platform.
Interest in real-time collaborative editing over the internet led to the development of
MoonEdit and
SubEthaEdit in the 2003-2005 time frame, followed soon after by
Gobby.
With the introduction of
Ajax
Ajax may refer to:
Greek mythology and tragedy
* Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea
* Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris
* Ajax (play), ''Ajax'' (play), by the an ...
technology and the "content editable" function in browsers, web-based collaborative editing in real-time developed as part of the
Web 2.0 phenomenon around 2005. In particular, a product called
Writely saw explosive user growth and was bought by Google in March 2006 (what became known as
Google Docs and later renamed to
Google Drive
Google Drive is a file-hosting service and synchronization service developed by Google. Launched on April 24, 2012, Google Drive allows users to store files in the cloud (on Google servers), synchronize files across devices, and share files ...
). It provided simultaneous edits on the entirety of a document, though changes from other users were only reflected after the client program polling the server (every half-minute or so). Another early web-based solution was JotSpotLive, in which line-by-line simultaneous editing was available in near-realtime. However, after Google's purchase of parent company JotSpot in November 2006, the site was closed.
Google Sites
Google Sites is a structured wiki and web page creation tool included as part of the free, web-based Google Docs Editors suite offered by Google. The service includes Google Docs, Google Sheets, Google Slides, Google Drawings, Google For ...
was launched in February 2007 as a refactoring of JotSpot, but it lacks the multi-user real-time abilities of JotLive. The Synchroedit (rich text) and MobWrite (plain text) projects are two, more recent, open source attempts to fill the gap in real-time browser-based collaborative editing, though still unable to achieve true real-time performance, especially on a large scale architecture.
In 2009, Google started beta testing
Google Wave, a real-time collaboration environment which Google hoped would eventually displace email and instant messaging.
EtherPad
Etherpad (previously known as EtherPad) is an open-source, web-based collaborative real-time editor, allowing authors to simultaneously edit a text document, and see all of the participants' edits in real-time, with the ability to display each ...
was acquired by Google, which allocated the EtherPad team to work within the Wave project. However, Google announced in August 2010 on its blog that it had decided to stop developing Wave as a standalone project, due to insufficient user adoption. After Google released the abandoned EtherPad source code as
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
in December 2009, the community took over its development and produced a complete rewrite named
Etherpad lite, which is written entirely in
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
and built on top of
Node.js. Another notable tools based on
operational transformation technology is
CKEditor. 2020 has seen a surge of interest in the concept, as Microsoft also recently released its
Fluid Framework, which relies on a novel Total Order Broadcast technology, as opposed to OT or CRDT. Fluid is currently framework agnostic. Microsoft states that it is not yet ready for production use.
In June 2016, Collabora Productivity released V1.0 of
Collabora Online
Collabora Online is an open source online office suite based on LibreOffice, enabling web-based collaborative real-time editing of word processing documents, spreadsheets, presentations, and vector graphics. Optional apps are available for deskto ...
, an open source online office suite using
LibreOffice
LibreOffice () is a free and open-source office productivity software suite developed by The Document Foundation (TDF). It was created in 2010 as a fork of OpenOffice.org, itself a successor to StarOffice. The suite includes applications ...
Technology, it can be integrated into any website with a few lines of code. A
software development kit
A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific t ...
exists with sample integration code in several languages
Node.js,
PHP,
Python,
ReactJS and
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
, these have
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
specifications allowing interoperable integrations with customizable user interfaces. With Collabora Online documents remain on the server, each user shares the same document concurrently allowing just one document to be edited in real-time and interactively with no extra lag or latency to see other users’ typing. It avoids the need for locking of paragraphs in text documents. It enables collaborative real-time editing of word processing documents, spreadsheets, presentations, drawing and vector graphics.
Other examples
Real-time collaborative editing can occur online in
web applications such as
Microsoft Office on the web (formerly
Office Online) – which supports online (
web-based) simultaneous editing (which
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
refers to as "Co-Authoring") of
Word
A word is a basic element of language that carries semantics, meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consensus among linguist ...
documents,
Excel spreadsheets,
PowerPoint and other
Microsoft Office
Microsoft Office, MS Office, or simply Office, is an office suite and family of client software, server software, and services developed by Microsoft. The first version of the Office suite, announced by Bill Gates on August 1, 1988, at CO ...
documents stored on
Office.com,
OneDrive
Microsoft OneDrive is a file-hosting service operated by Microsoft. First released as SkyDrive in August 2007, it allows registered users to store, share, back-up and synchronize their files. OneDrive also works as the storage Frontend and backe ...
or
SharePoint cloud storage
Cloud storage is a model of computer data storage in which data, said to be on "the cloud", is stored remotely in logical pools and is accessible to users over a network, typically the Internet. The physical storage spans multiple servers (so ...
– or
Google Docs and other
Google Workspace
Google Workspace (formerly G Suite, formerly Google Apps) is a collection of cloud computing, Productivity software, productivity and Collaborative software, collaboration tools, software and products developed and marketed by Google. It con ...
productivity (office suite) apps – for online collaborative editing of
word processing A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Word processor (electronic device), Early word processors were stand-alone devices dedicate ...
and other documents stored in
Google Drive
Google Drive is a file-hosting service and synchronization service developed by Google. Launched on April 24, 2012, Google Drive allows users to store files in the cloud (on Google servers), synchronize files across devices, and share files ...
. Real-time collaborative editing can also occur in hybrid manner, such as with Power Sheet BI for Excel, in offline, web-based, and online collaborative editing in desktop software as well as web-based and mobile apps, which can be synchronized automatically with instant access to version history. 2020 has seen a resurgence of interest in embedding these applications into secure web applications, particularly for business use-cases, with Microsoft and Vaadin taking the lead with specialized real-time collaboration backends that handle the complexities of real-time synchronous data sharing, which developers can utilize through APIs. Mozilla released in 2013 the javascript library TogetherJS, which adds real-time collaborative editing to any web application via a messaging system and optionally an operational transform algorithm for forms synchronization.
Vaadin
Vaadin () is an open-source web application development platform for Java. Vaadin includes a set of Web Components, a Java web framework, and a set of tools that enable developers to implement modern web graphical user interfaces (GUI) using the ...
Ltd., the vendor of the Vaadin platform, released V1.0 of their Collaboration Engine In October 2020, with the premise of allowing developers to rapidly build real-time collaboration and editing features in to any web application with Java backends using a few lines of codes (for specific use-cases through their, still limited, high-level APIs). This feature currently supports Java, although the vendor notes that a TypeScript-based API is also incoming, in line with the Vaadin platform's recent ongoing expansion into also enabling TypeScript-based UI building in the future through its upcoming Fusion framework.
Technical challenges
The complexity of real-time collaborative editing solutions stems from communication latency. In theory, if communication were instantaneous, then creating a real-time collaborative editor would be no more difficult than creating a single-user editor, because a document could be edited using an algorithm similar to the following:
# Request an 'edit document' token from the server
# Wait until the server says it's our turn to edit the document
# Tell the server how to edit the document
# Release the 'edit document' token
However, the speed of communication is limited by network latency. This creates a fundamental dilemma: users need their own edits incorporated into the document instantly, but if they are incorporated instantly, then because of communication latency, their edits must necessarily be inserted into different versions of the document.
An example illustrates this problem. Suppose Bob and Alice start with a document containing the word ''Mary''. Bob deletes 'M', then inserts 'H', to change the word into ''Hary''. Alice, before she receives either edit from Bob, deletes 'r', then deletes 'a', to change it into ''My''. Both Bob and Alice will then receive edits that were applied to versions of the document that ''never existed'' on their own machines.
Thus, the challenge of real-time collaborative editing is to figure out exactly how to apply edits from remote users, which were originally created in versions of the document that never existed locally, and which may conflict with the user's own local edits.
The most sophisticated solutions solve this problem in a way that does not require a server, does not use locking (all users can freely edit all parts of a document at the same time), and supports any number of users (limited only by the resources of the computers).
UNA and
SubEthaEdit are examples of two programs that take this approach.
While these sophisticated approaches enable the best
user experience
User experience (UX) is how a user interacts with and experiences a product, system or service. It includes a person's perceptions of utility, ease of use, and efficiency. Improving user experience is important to most companies, designers, a ...
, a basic collaborative editor can also be created in a
client–server model
The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate ov ...
. In a client–server scenario, one of the editor instances is assigned the role of collaboration server when the document is opened. This server ensures that other editors are kept in sync by determining network latency and acting as a
time synchronization server. The server receives
timestamp
A timestamp is a sequence of characters or encoded information identifying when a certain event occurred, usually giving date and time of day, sometimes accurate to a small fraction of a second. Timestamps do not have to be based on some absolu ...
ed notifications of changes made to the document by other users. It determines how those changes should affect its local copy, and broadcasts its changes to the collaboration pool. In some models, the changes are not reflected on a client until an official response is returned from the server, even if those changes were made locally.
This approach, while significantly less powerful, allows for basic collaboration at a relatively low cost. This makes it preferable in situations where processing resources are limited.
NetSketch is an example of a program that uses this model.
In the past,
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
and
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
have worked to add collaboration facilities to their existing architectures.
Microsoft Live Communications
Marketed as real time but not real time in the sense of this article. Although marketed as real-time collaboration, these 'workspace' approaches require either document locking (so only one person can edit it at a time), or 'reconciliation' of conflicting changes, which is generally found by users to be unsatisfactory.
See also
* Cobrowsing
* Conflict-free replicated data type
* Distributed computing
Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers.
The components of a distributed system commu ...
* Distributed version control
In software development, distributed version control (also known as distributed revision control) is a form of version control in which the complete codebase, including its full history, is mirrored on every developer's computer. Compared to centr ...
* Document collaboration
* List of collaborative software
This list is divided into proprietary or free software, and open source software, with several comparison tables of different product and vendor characteristics. It also includes a section of project collaboration software, which is a standard fea ...
* Real-time text
Real-time text (RTT) is text transmitted instantly as it is typed or created. Recipients can immediately read the message while it is being written, without waiting.
Real-time text is used for conversational text, in collaboration, and in live cap ...
* Wiki
A wiki ( ) is a form of hypertext publication on the internet which is collaboratively edited and managed by its audience directly through a web browser. A typical wiki contains multiple pages that can either be edited by the public or l ...
References
{{DEFAULTSORT:Collaborative Real-Time Editor
Collaboration
de:Kollaboratives Schreiben