Real time-collaborative-editor-presentation

Post on 04-Jul-2015

1.370 views 0 download

description

Presentation about real time collaborative editor developed at INRIA.Talk at the Aloha Editor Developer Conference.

Transcript of Real time-collaborative-editor-presentation

Real – time collaborative editor

Aloha Editor Developer ConferenceVienna, 21-23 Febr 2011

Bogdan Flueras software engineer at INRIA

SCORE Team http://score.loria.fr

Wiki 3.0 projecthttp://wiki30.xwiki.com

Agenda

Intro

Motivation

Approach

R & D

Results

Future work

Demo / Questions / Discusion

Intro

Buzzwords

HTML5

Comet

WebSockets

Server push/ Pushlets

XHR Multipart

New way of doing async HTTP

Motivation – collaborative work

Old way

Error prone & time consuminng loop

attach documents to mail

send e-mail

modify documents

manually merge

wait for feedback ...

New way

Real time, with real problems!

HTTP protocol

Network lag

Synchronizing content

Data divergence among participants

UI problems

Motivation

Wiki 3.0 http://wiki30.xwiki.com

A next generation collaboration platform

Web based

Integrates real-time editing and interactions

The final outcome

To deliver a solution that will greatly ehnance the productivity in terms of knowledge exchange and creation

Use caseWiki, CMS

Approach

Operational Transformation (OT)

”Is a technology for supporting collaboration functionalities in advanced groupware systems”

Collaborative editing

Optimistic replicationLocal operations

executed in a lock-free, non-blocking manner

sent to remote sites

Remote operations

transformed according to concurrent local operations

executed on the local copy

R & D

OT – textual document is a sequence of characters

Operations

ins(p, c) – insert at position p the character c

del(p) – delete the character at position p

Main issues

Causality preservation

Intention preservation

Convergence

R & D

OT – textual document is a sequence of characters

Operations

ins(p, c) – insert at position p the character c

del(p) – delete the character at position p

Main issues IN ENGLISH PLEASE !

Causality preservation

Intention preservation

Convergence

OT – Causality

OT – Intention preservation

Intention of an operation is the observed effect as result of its execution on its generation state

Passing from initial state “ab” to final state “aXb” we can observe:

ins(1, X)

ins(a<X<b)

ins(a<X)

ins(X>b)

OT – Intention preservation

Preserving user intention*

For any operation O, the effects of executing O at all sites should be the same as the intention of O

The effect of executing O does not change the effects of independent operations

* Chengzheng Sun, Xiaohua Jia, Yanchun Zhang, Yun Yang, and David Chen. Achieving convergence, causality preservation, and intention preservation in real-time cooperative editing systems. ACM Transactions on Computer-Human Interaction, 5(1):63−108, March 1998.

OT – Intention violation

OT – Intention violation + Divergence

OT – Intention preservation

OT – Convergence

OT – Convergence

OT

Every OT has 2 main components:

Integration algorithm

Transformation functions

Problems

Design and verify the transformation functions

Verification of conditions TP1 and TP2Combinatorial explosion

Repetitive and error prone

Iterative

Jupiter *

Is an OT algorithm

Used in Google Wave, Google Docs, ACE

Requires a central server

Eliminates TP2, but requires TP1

Transformations

server side

client side

Character granularity

* David A. Nichols, Pavel Curtis, Michael Dixon, and John Lamping. High-latency, low-bandwidth windowing in the jupiter collaboration system. In Proceedings of the 8th annual ACM symposium on User interface and software technology (UIST ’95), page 111−120, Pittsburgh, Pennsylvania, USA, 1995.

Development

Codebase

Java

JavaScript

Server side

Java, Jetty container

GWT

Client side

Java → GWT → Javascript

HTML5 canvas for the editorhttps://github.com/guillaumebort/textile-editor

Development

Server – push

”Keep It Simple” (but not Stupid) approach

Simple polling GWT's built-in AJAX

Advanced Atmosphere framework with fallback transports

WebSocket

XHR

Long polling

SS JavaScriptNode JS

Socket IO

Flash

Results

HTML5 collaborative real-time editor

a smooth, character-by-character real-time experience

productive collaborative document editing environment

don't have to worry about stepping on each others toes

Results

Features

Cursor position preservation, remote op highlighting

Cut/ copy/ paste

Basic keyboard shortcuts (Ctrl + Home/End etc.)

Future

WYSIWYG support

Integration

XWiki

Aloha – need API

Some slides of this presentation belong to

Claudia Ignatclaudia.ignat@loria.fr

INRIA researcher in the SCORE Teamhttp://score.loria.fr

Remark

Demo

http://traian:8080

Questions

?

Skype, Y!: flueras_bogdanGTalk: flueras.bogdanTwitter: fluerasbogdan