Collaborative Real-time Text Editor
   HOME

TheInfoList



OR:

A collaborative real-time editor is a type of collaborative software or
web application A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection. History In earlier computing models like client-serve ...
which enables real-time collaborative editing,
simultaneous editing In human–computer interaction, simultaneous editing is an end-user development technique allowing a user to make multiple simultaneous edits of text in a multiple selection at once through direct manipulation. Multiple selections and cursors ...
, or live editing of the same
digital document An electronic document is any electronic media content (other than computer programs or system files) that is intended to be used in either an electronic form or as printed output. Originally, any computer data were considered as something inter ...
,
computer file A computer file is a computer resource for recording data in a computer storage device, primarily identified by its file name. Just as words can be written to paper, so can data be written to a computer file. Files can be shared with and transfe ...
or cloud-stored
data In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted ...
– such as an online spreadsheet, word processing document,
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases sp ...
or presentation – 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 An edit conflict is a computer problem that may occur when multiple editors edit the same File (computer science), file and cannot merge without losing part of their edits. Description The conflict occurs when an editor gets a copy of a shared ...
. With asynchronous
collaborative editing __NOTOC__ 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 productivity. ...
(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 In the pursuit of knowledge, data (; ) is a collection of discrete values that convey information, describing quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted ...
, row or
field Field may refer to: Expanses of open ground * Field (agriculture), an area of land used for agricultural purposes * Airfield, an aerodrome that lacks the infrastructure of an airport * Battlefield * Lawn, an area of mowed grass * Meadow, a grass ...
resulting in
edit conflicts An edit conflict is a computer problem that may occur when multiple editors edit the same File (computer science), file and cannot merge without losing part of their edits. Description The conflict occurs when an editor gets a copy of a shared ...
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 and inventor, and an early computer and Internet pioneer. 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" is a name retroactively applied to a landmark computer demonstration, given at the Association for Computing Machinery / Institute of Electrical and Electronics Engineers (ACM/IEEE)—Computer Society's Fall Joint Compu ...
. 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 Macintosh family of personal computers by Apple Computer from 1984 to 2001, starting with System 1 and ending with Mac OS 9. The ...
in 1991 from ON Technology. It allowed real-time editing of a single document by multiple users over a
LAN Lan or LAN may also refer to: Science and technology * Local asymptotic normality, a fundamental property of regular models in statistics * Longitude of the ascending node, one of the orbital elements used to specify the orbit of an object in sp ...
and relied on a workgroup server. Interest in real-time collaborative editing over the internet led to the development of MoonEdit and
SubEthaEdit SubEthaEdit is a collaborative real-time editor designed for Mac OS X. The name comes from the Sub-Etha communication network in ''The Hitchhiker's Guide to the Galaxy'' series. History SubEthaEdit was first released under the name Hydra in earl ...
in the 2003-2005 time frame, followed soon after by Gobby. With the introduction of Ajax 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 Google Docs is an online word processor included as part of the free, web-based Google Docs Editors suite offered by Google, which also includes: Google Sheets, Google Slides, Google Drawings, Google Forms, Google Sites and Google Keep. Google Do ...
and later renamed to Google Drive). 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 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 the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
in December 2009, the community took over its development and produced a complete rewrite named
Etherpad lite 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 ...
, which is written entirely in
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
and built on top of
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
. Another notable tools based on
operational transformation Operational transformation (OT) is a technology for supporting a range of collaboration functionalities in advanced collaborative software systems. OT was originally invented for consistency maintenance and concurrency control in collaborative edit ...
technology is
CKEditor CKEditor (formerly known as FCKeditor) is a WYSIWYG rich text editor which enables writing content directly inside of web pages or online applications. Its core code is written in JavaScript and it is developed by CKSource. CKEditor is available ...
. 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, an open source online office suite based on LibreOffice, that 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 to ...
exists with sample integration code in several languages
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code ou ...
,
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
,
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
,
ReactJS React (also known as React.js or ReactJS) is a free and open-source front-end JavaScript library for building user interfaces based on components. It is maintained by Meta (formerly Facebook) and a community of individual developers and compan ...
and .NET, these have
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
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. Recently, real-time collaborative editing has returned to stand-alone text editing applications with extensions for ''
Atom Every atom is composed of a nucleus and one or more electrons bound to the nucleus. The nucleus is made of one or more protons and a number of neutrons. Only the most common variety of hydrogen has no neutrons. Every solid, liquid, gas, and ...
'' and '' Visual Studio Code'' released in 2020.


Other examples

Real-time collaborative editing can occur online in
web applications A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection. History In earlier computing models like client-serve ...
such as Microsoft Office on the web (formerly Office Online) – which supports online (
web-based A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection. History In earlier computing models like client-serve ...
) simultaneous editing (which
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
refers to as "Co-Authoring") of
Word A word is a basic element of language that carries an semantics, objective or pragmatics, practical semantics, meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of w ...
documents,
Excel ExCeL London (an abbreviation for Exhibition Centre London) is an exhibition centre, international convention centre and former hospital in the Custom House area of Newham, East London. It is situated on a site on the northern quay of the ...
spreadsheets A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in ce ...
,
PowerPoint Microsoft PowerPoint is a presentation program, created by Robert Gaskins and Dennis Austin at a software company named Forethought, Inc. It was released on April 20, 1987, initially for Macintosh computers only. Microsoft acquired PowerPoi ...
and other
Microsoft Office Microsoft Office, or simply Office, is the former name of a family of client software, server software, and services developed by Microsoft. It was first announced by Bill Gates on August 1, 1988, at COMDEX in Las Vegas. Initially a marketin ...
documents stored on Office.com, OneDrive or SharePoint
cloud storage Cloud storage is a model of computer data storage in which the digital data is stored in logical pools, said to be on "the cloud". The physical storage spans multiple servers (sometimes in multiple locations), and the physical environment is t ...
– or
Google Docs Google Docs is an online word processor included as part of the free, web-based Google Docs Editors suite offered by Google, which also includes: Google Sheets, Google Slides, Google Drawings, Google Forms, Google Sites and Google Keep. Google Do ...
and other Google Workspace productivity (office suite) apps – for online collaborative editing of word processing and other documents stored in Google Drive. 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.
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 Jav ...
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 SubEthaEdit is a collaborative real-time editor designed for Mac OS X. The name comes from the Sub-Etha communication network in ''The Hitchhiker's Guide to the Galaxy'' series. History SubEthaEdit was first released under the name Hydra in earl ...
are examples of two programs that take this approach. While these sophisticated approaches enable the best user experience, 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 over ...
. 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 Synchronization is the coordination of events to operate a system in unison. For example, the conductor of an orchestra keeps the orchestra synchronized or ''in time''. Systems that operate with all parts in synchrony are said to be synchronou ...
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 absolut ...
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 technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
and IBM 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 Cobrowsing (short for collaborative browsing), in the context of web browsing, is the joint navigation through the World Wide Web by two or more people accessing the same web page at the same time. History of cobrowsing software Early cobrowsing w ...
*
Conflict-free replicated data type In distributed computing, a conflict-free replicated data type (CRDT) is a data structure that is replicated across multiple computers in a network, with the following features: # The application can update any replica independently, concurrently ...
*
Distributed computing A distributed system is a system whose components are located on different computer network, networked computers, which communicate and coordinate their actions by message passing, passing messages to one another from any system. Distributed com ...
*
Distributed revision 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 centra ...
*
Document collaboration Document and file collaboration are the tools or systems set up to help multiple people work together on a single document or file to achieve a single final version. Normally, this is software that allows teams to work on a single document, such as ...
* List of collaborative software * Real-time text *
Wiki A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pu ...


References

{{DEFAULTSORT:Collaborative Real-Time Editor Collaboration de:Kollaboratives Schreiben