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 editing of plain text documents. Its capabilities have been extended and its applications expanded to include group undo, locking, conflict resolution, operation notification and compression, group-awareness, HTML/XML and tree-structured document editing, collaborative office productivity tools, application-sharing, and collaborative computer-aided media design tools. In 2009 OT was adopted as a core technique behind the collaboration features in Apache Wave and Google Docs. History Operational Transformation was pioneered by C. Ellis and S. Gibbs in the GROVE (GRoup Outline Viewing Edit) system in 1989. Several years later, some correctness issues were identified and several approaches were independently proposed to solve these issues, w ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Optimistic Replication
Optimistic replication, also known as lazy replication, is a strategy for replication, in which replicas are allowed to diverge. Traditional pessimistic replication systems try to guarantee from the beginning that all of the replicas are identical to each other, as if there was only a single copy of the data all along. Optimistic replication does away with this in favor of eventual consistency, meaning that replicas are guaranteed to converge only when the system has been quiesced for a period of time. As a result, there is no longer a need to wait for all of the copies to be synchronized when updating data, which helps concurrency and parallelism. The trade-off is that different replicas may require explicit reconciliation later on, which might then prove difficult or even insoluble. Algorithms An optimistic replication algorithm consists of five elements: # Operation submission: Users submit operations at independent sites. # Propagation: Each site shares the operations it ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
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". As regards available interaction, collaborative software may be divided into: real-time collaborative editing platforms that allow multiple users to engage in live, simultaneous and reversible editing of a single file (usually a document), and version control (also known as revision control and source control) platforms, which allow separate users to make parallel edits to a file, while preserving every saved edit by every user as multiple files (that are variants of the original file). Collaborative software is a broad concept that overlaps considerably with computer-supported cooperative work (CSCW). According to Carstensen and Schmidt (1999) groupware is part of CSCW. The authors claim that CSCW, and thereby groupware, addresses "how colla ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
CoWord
CoWord is a software add-on to Microsoft Word to enable multiple users to edit the same document over the Internet with MS Word. It is a part of the CoOffice suite of collaboration tools for Microsoft Office. CoWord can be considered as a collaborative real-time editor, with the editor being MS Word (which is not distributed with CoWord). To use CoWord, users need to supply their own copies of MS Word. As of August 2010, CoWord has become CodoxWord, released by CodoxWare. Technology One of the main challenges in building collaborative real-time editors is in concurrency control. The concurrency control technology used by CoWord is Operational transformation. Operational transformation (OT) can incorporate concurrent changes made to replicas of the same document. This means systems built with OT allow multiple users to make concurrent changes to the document, and all changes will be incorporated. Other known systems based on Operational transformation are: ACE, Gobby, and Subeth ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Collaboration
Collaboration (from Latin ''com-'' "with" + ''laborare'' "to labor", "to work") is the process of two or more people, entities or organizations working together to complete a task or achieve a goal. Collaboration is similar to cooperation. Most collaboration requires leadership, although the form of leadership can be social within a decentralized and egalitarian group.Spence, Muneera U. ''"Graphic Design: Collaborative Processes = Understanding Self and Others."'' (lecture) Art 325: Collaborative Processes. Fairbanks Hall, Oregon State University, Corvallis, Oregon. 13 April 2006See also. Teams that work collaboratively often access greater resources, recognition and rewards when facing competition for finite resources. Caroline S. Wagner and Loet Leydesdorff. Globalisation in the network of science in 2005: The diffusion of international collaboration and the formation of a core group.'' Structured methods of collaboration encourage introspection of behavior and communication. ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Concurrency Control
In information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for Concurrent computing, concurrent operations are generated, while getting those results as quickly as possible. Computer systems, both software and computer hardware, hardware, consist of modules, or components. Each component is designed to operate correctly, i.e., to obey or to meet certain consistency rules. When components that operate concurrently interact by messaging or by sharing accessed data (in Computer memory, memory or Computer data storage, storage), a certain component's consistency may be violated by another component. The general area of concurrency control provides rules, methods, design methodologies, and Scientific theory, theories to maintain the consistency of components operating concurrently while interacting, and thus the consistency and correctness of the who ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Consistency Model
In computer science, a consistency model specifies a contract between the programmer and a system, wherein the system guarantees that if the programmer follows the rules for operations on memory, memory will be consistent and the results of reading, writing, or updating memory will be predictable. Consistency models are used in distributed systems like distributed shared memory systems or distributed data stores (such as filesystems, databases, optimistic replication systems or web caching). Consistency is different from coherence, which occurs in systems that are cached or cache-less, and is consistency of data with respect to all processors. Coherence deals with maintaining a global order in which writes to a single location or single variable are seen by all processors. Consistency deals with the ordering of operations to multiple locations with respect to all processors. High level languages, such as C++ and Java, maintain the consistency contract by translating memory operat ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
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 and without coordinating with other replicas. # An algorithm (itself part of the data type) automatically resolves any inconsistencies that might occur. # Although replicas may have different state at any particular point in time, they are guaranteed to eventually converge. The CRDT concept was formally defined in 2011 by Marc Shapiro, Nuno Preguiça, Carlos Baquero and Marek Zawirski. Development was initially motivated by collaborative text editing and mobile computing. CRDTs have also been used in online chat systems, online gambling, and in the SoundCloud audio distribution platform. The NoSQL distributed databases Redis, Riak and Cosmos DB have CRDT data types. Background Concurrent updates to multiple replicas of the same da ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Collaborative Real-time Editor
A collaborative real-time editor is a type of collaborative software or web application which enables real-time collaborative editing, simultaneous editing, or live editing of the same digital document, computer file or cloud-stored data – such as an online spreadsheet, word processing document, database or presentation – at the same time by different users on different computers or Mobile devices in healthcare, 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 (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 o ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Data Synchronization
Data synchronization is the process of establishing consistency between source and target data stores, and the continuous harmonization of the data over time. It is fundamental to a wide variety of applications, including file synchronization and mobile device synchronization. Data synchronization can also be useful in encryption for synchronizing public key servers. File-based solutions There are tools available for file synchronization, version control ( CVS, Subversion, etc.), distributed filesystems (Coda, etc.), and mirroring (rsync, etc.), in that all these attempt to keep sets of files synchronized. However, only version control and file synchronization tools can deal with modifications to more than one copy of the files. * File synchronization is commonly used for home backups on external hard drives or updating for transport on USB flash drives. The automatic process prevents copying already identical files, thus can save considerable time relative to a manual copy, al ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
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 and without coordinating with other replicas. # An algorithm (itself part of the data type) automatically resolves any inconsistencies that might occur. # Although replicas may have different state at any particular point in time, they are guaranteed to eventually converge. The CRDT concept was formally defined in 2011 by Marc Shapiro, Nuno Preguiça, Carlos Baquero and Marek Zawirski. Development was initially motivated by collaborative text editing and mobile computing. CRDTs have also been used in online chat systems, online gambling, and in the SoundCloud audio distribution platform. The NoSQL distributed databases Redis, Riak and Cosmos DB have CRDT data types. Background Concurrent updates to multiple replicas of the same da ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Differential Synchronization
Differential may refer to: Mathematics * Differential (mathematics) comprises multiple related meanings of the word, both in calculus and differential geometry, such as an infinitesimal change in the value of a function * Differential algebra * Differential calculus ** Differential of a function, represents a change in the linearization of a function *** Total differential is its generalization for functions of multiple variables ** Differential (infinitesimal) (e.g. ''dx'', ''dy'', ''dt'' etc.) are interpreted as infinitesimals ** Differential topology * Differential (pushforward) The total derivative of a map between manifolds. * Differential exponent, an exponent in the factorisation of the different ideal * Differential geometry, exterior differential, or exterior derivative, is a generalization to differential forms of the notion of differential of a function on a differentiable manifold * Differential (coboundary), in homological algebra and algebraic topology, one of the ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |
|
Total Order
In mathematics, a total or linear order is a partial order in which any two elements are comparable. That is, a total order is a binary relation \leq on some set X, which satisfies the following for all a, b and c in X: # a \leq a ( reflexive). # If a \leq b and b \leq c then a \leq c ( transitive). # If a \leq b and b \leq a then a = b ( antisymmetric). # a \leq b or b \leq a (strongly connected, formerly called total). Total orders are sometimes also called simple, connex, or full orders. A set equipped with a total order is a totally ordered set; the terms simply ordered set, linearly ordered set, and loset are also used. The term ''chain'' is sometimes defined as a synonym of ''totally ordered set'', but refers generally to some sort of totally ordered subsets of a given partially ordered set. An extension of a given partial order to a total order is called a linear extension of that partial order. Strict and non-strict total orders A on a set X is a strict partial ord ... [...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]   |