Skip to content

Commit

Permalink
Update readme, testing out submodule push/pull also
Browse files Browse the repository at this point in the history
  • Loading branch information
ccotter committed Jul 25, 2012
1 parent 6ce74a2 commit 73fe068
Showing 1 changed file with 27 additions and 8 deletions.
35 changes: 27 additions & 8 deletions README.markdown
Expand Up @@ -2,20 +2,39 @@

##About

This project contains the JavaScript source for the operational transformation (OT) engine. The inner workings of the OT API are exposed here.
This project contains the JavaScript source for the operational transformation
(OT) engine.

Furthermore, the OT engine is exposed as a library for application programmers who wish to use the underlying OT engine in their applications.
The OT engine is exposed as a library for application programmers who wish to
build collaborative groupware applications.

##Usage

Application programmers wishing to use the OT API can include this project as a maven dependency in their project. The engine is exposed through the use of two primary mechanisms: applying local operations and applying remote operations.
Application programmers wishing to use the OT API can checkout this project as a
git repository (or submodule into an already existing git repository), or
download the code as a tarball and extract into their project.

###Local Operations
TODO
Each participating *peer* has its own instance of an operation engine. Each peer
maintains its own local copy of the collaborative data.

###Remote Operations
TODO
The engine is exposed through the use of two primary mechanisms: applying
local/remote operations and sending/retrieving engine internal data structures.
Each API call returns a data structure (eg. JSON) that should be forwarded to
other remote peers exactly as is. Remote peers then send this data structure
through another API call, which returns an operation that should be applied
to a local copy of the data.

##Requirements

This OT API library does not provide a mechanism to communicate directly with
remote peers. Thus, the application programmer is responsible for the
communication mechanism (eg. hosting a central server to ferry data between
clients).

##OpenCoweb
TODO
This library was initially started as a part of the
[OpenCoweb](https://github.com/opencoweb/coweb) project. OpenCoweb provides a
Java-based server and uses cometd techniques to allow remote peer communication
and exchange of remote events. OpenCoweb incorporates the OT API to allow
developers to write collaborative groupware web-based applications.

0 comments on commit 73fe068

Please sign in to comment.