Collaborative real-time editor
From Wikipedia, the free encyclopedia
A collaborative editor is a software application that allows several people to edit a computer file using different computers. There are two types of collaborative editors, real-time and non-real-time. Real-time collaborative editors allow users to edit the same file at the same time. Non-real-time collaborative editors do not allow editing of the same file at the same time, thus being similar to revision control systems.
Contents |
[edit] History
The first application to gain mainstream attention was SubEthaEdit. This is Mac-based, and leverages the Mac Bonjour communications platform. SubEthaEdit won numerous awards. However, the level of voluntary donations was insufficient to keep the application free, and the product has now become commercial. The Gobby collaborative editor aims to be very similar to SubEthaEdit, and is cross platform and open source.
The Web 2.0 phenomenon has caused an explosion of interest in browser-based document editing tools. In particular, a product called Writely saw explosive user growth and was bought by Google in March 2006 (now called Google Docs & Spreadsheets). It provides simultaneous edits on the entirety of a document, though changes from other users are only reflected after polling the server (every half a minute or so). Another early web-based solution was JotSpotLive, in which line-by-line simultaneous editing was available in near-realtime.[1] However, after Google's purchase of parent company JotSpot in November 2006, the site was closed and no comparable Google product has been introduced. Google Sites was launched in February 2007 as a refactoring of JotSpot[2][3][4][5], but it doesn't seem to provide the multi-user real-time abilities of JotLive.[citation needed] The Synchroedit (rich text) and MobWrite (plain text) projects have since emerged as two open-source attempts to fill the in gap real-time browser-based collaborative editing.
The availability of Java on most computers in the form of Java applets, combined with the growing availability and speed of broadband internet access, has enabled a more powerful range of collaborative editing tools, including web applications which enable collaborative video editing.
[edit] Technical Challenges
The complexity of real-time collaborative editing solutions stems from communication lag. In theory, if communication were instantaneous, then building a real-time collaborative editor would be no more difficult than building 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 its our turn to edit the document
- Tell the server how to edit the document
- Release the 'edit document' token
However, the finite speed of communication, limited not only by the speed of light but also by network lag, creates a fundamental dilemna: users need their own edits incorporated into the document instantly, but if their own edits are incorporated instantly, then because of communication lag, their edits must necessarily be inserted into different versions of the document.
An example illustrates this problem. Suppose Bob and Alice start with the document Mary. Bob deletes 'M', intending to change Mary into ary. Bob then inserts 'H', to change ary into Hary. Alice, before she receives either edit from Bob, first deletes 'r', intending to change Mary into May, and then deletes 'a', intending to change May 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.
The challenge of real-time collaborative editing, then, 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.[6]
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.
[edit] Future marketplace direction
The current approach of Microsoft and IBM has been to bolt limited collaboration facilities on to their existing architectures [7] 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.
UNA is an attempt by N-BRAIN, Inc. to create a real-time collaborative development environment for software engineers. Because the application was designed from the start as a collaborative development platform, it enjoys collaborative features not shared by standalone platforms with bolted on collaboration facilities.[8]
With advances in internet capacity, collaborative editing is now being applied to video. In collaborative TV productions in particular, the director, producer, loggers and editors, who all contribute to the video post-production process, can be physically separated. Modern web-based non-linear editing systems allow collaborative editing of video, similar to the way in which collaborative text editors have worked for text. See Comparison of video editing software and Real-time video editing.
[edit] List of current editors
[edit] Real-time collaborative text editing software
- Abiword (multi-platform) is a free software, open source editor that added a real-time collaborative editing plugin in the 2.6 release. This editor is the basis for the collaborative Write activity on the OLPC XO-1.[9]
- ACE (Linux, Microsoft Windows, Mac OS X, Solaris, FreeBSD) is a free software, collaborative text editor.
- CoWord (Microsoft Windows) converts Microsoft Word into a real-time collaborative word processor and allows multiple users to collaboratively edit the same Word document at the same time.
- GNU Emacs provides basic collaborative editing support under the X Window System, using the "make-frame-on-display" command.
- GNU Screen allows multiple users to share one console screen, but they have to share a single cursor.
- Gobby (Linux, Microsoft Windows, Mac OS X) is a free software, open source project.
- ICT is a framework that allows multiple users to edit a shared document with unmodified, heterogeneous single-user editors.
- MoonEdit (Linux, Microsoft Windows, FreeBSD) is free for non-commercial use and allows basic collaborative editing.
- Saros (eclipse plugin) Eclipse Plug-in for Distributed Pair Programming
- Shared Page is a Java-based collaborative real-time editor.
- SubEthaEdit (Mac OS X).
- UNA (multi-platform) is a multi-user development environment for software engineers, which includes a real-time collaborative editor.
[edit] Other real-time collaborative editing software
- EditGrid supports real-time event-driven collaborative editing of spreadsheets on the web.
- Marratech is commercial software with a whiteboard function.
- WhiteBoardMeeting is a multi-user whiteboard for Skype.
- Borland CodeWright has a CodeMeeting feature that supports chatting and exclusive file editing (1 user per file).
[edit] See also
- List of collaborative software — Non-real-time collaborative software
- distributed computing
- revision control
[edit] External links
- community-wiki: collaborative editor is a node page to coordinate the development of collaborative editors
- Real-time Collaborative Editing Applications
- odd-wiki-hive / collab-editor-wiki, about collab-editors and projects using them
[edit] Notes
- ^ Michael Arrington (2005-09-27). JotSpot Live - The Perfect Wiki?. TechCrunch.
- ^ Michael Arrington (2008-02-27). It Took 16 Months, But Google Relaunches Jotspot. TechCrunch.
- ^ David Chartier (2008-02-28). First look: Google relaunches JotSpot as Google Sites. Ars technica.
- ^ Dan Farber (2008-02-27). JotSpot reincarnated as Google Sites. CNET News.
- ^ Mark 'Rizzn' Hopkins (2008-02-27). Google Finally Frees JotSpot with Google Sites. Mashable.
- ^ Operational transformation
- ^ Microsoft Live Communications Marketed as real time but not real time in the sense of this article.
- ^ UNA Features Non-locking real-time editing, sharing of tools and searches, collaborative whiteboard, chat, and persistent, collaborative notes.
- ^ Rahul Sundaram (2008-05-08). AbiWord Team Interview. Red Hat.