Papers

Overview

CEDA is a platform for developing software applications using
persistent object oriented data models that are replicated within a
peer-to-peer network. It promotes a data-centric, component based
approach and facilitates run time assembly to build complex
functionality.

A key feature is the use of Operational Transformation
(OT) to allow user edits to be performed on a local database without latency,
and changes (called operations) are sent and merged asynchronously without
the need for distributed transactions.

The name CEDA is derived from "DAta CEntric".

Introducing CEDA
provides a brief overview of CEDA, with particular emphasis on its use
of OT to support replication and synchronisation.

2008-02 Vector Time
provides a formal definition of vector times and defines the notion of causally valid vector times.

Pessimistic locking (with Two Phased Locking or 2PL) is the
conventional approach to achieve isolation between transactions on a
database, by ensuring one transaction cannot see the intermediate
results of another transaction. It only prevents conflicts to the
extent that it prevents concurrency in the first place, and even so
generally fails to prevent semantic conflicts. OT instead allows
for true isolation between users by supporting both short or long term
divergence of locally stored versions of the data. OT provides a
formal basis to merge the divergent paths by preserving the
original syntactic intention of the user edits whereever
possible.
Consequences of Operational Transformation
considers the nature of syntactic and semantic conflicts and suggests
automated merging is ideally suited to collaborative data entry.

Ceda presentation to Runge in 2007

In July 2007 CEDA was presented to Runge Limited. Rather than use Microsoft Power Point it was
decided to implement the demonstration in CEDA itself, since it is powerful enough to
display rich and dynamic content with its support for run time assembly from simple
software components.

This was achieved using the existing
software components and without the need to write additional C++ code. It is a testimony to the power of a component
architecture made available to end users.

The output from two computers was projected onto screens to demonstrate real-time interactive collaboration.
This meant the slides and all the dynamic content could be manipulated by two presenters at the same time.