26
Real – time collaborative editor Aloha Editor Developer Conference Vienna, 21-23 Febr 2011 Bogdan Flueras software engineer at INRIA SCORE Team http://score.loria.fr Wiki 3.0 project http://wiki30.xwiki.com

Real time-collaborative-editor-presentation

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 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

Page 2: Real time-collaborative-editor-presentation

Agenda

Intro

Motivation

Approach

R & D

Results

Future work

Demo / Questions / Discusion

Page 3: Real time-collaborative-editor-presentation

Intro

Buzzwords

HTML5

Comet

WebSockets

Server push/ Pushlets

XHR Multipart

New way of doing async HTTP

Page 4: Real time-collaborative-editor-presentation

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

Page 5: Real time-collaborative-editor-presentation

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

Page 6: Real time-collaborative-editor-presentation

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

Page 7: Real time-collaborative-editor-presentation

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

Page 8: Real time-collaborative-editor-presentation

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

Page 9: Real time-collaborative-editor-presentation

OT – Causality

Page 10: Real time-collaborative-editor-presentation

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)

Page 11: Real time-collaborative-editor-presentation

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.

Page 12: Real time-collaborative-editor-presentation

OT – Intention violation

Page 13: Real time-collaborative-editor-presentation

OT – Intention violation + Divergence

Page 14: Real time-collaborative-editor-presentation

OT – Intention preservation

Page 15: Real time-collaborative-editor-presentation

OT – Convergence

Page 16: Real time-collaborative-editor-presentation

OT – Convergence

Page 17: Real time-collaborative-editor-presentation

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

Page 18: Real time-collaborative-editor-presentation

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.

Page 19: Real time-collaborative-editor-presentation

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

Page 20: Real time-collaborative-editor-presentation

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

Page 21: Real time-collaborative-editor-presentation

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

Page 22: Real time-collaborative-editor-presentation

Results

Features

Cursor position preservation, remote op highlighting

Cut/ copy/ paste

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

Page 23: Real time-collaborative-editor-presentation

Future

WYSIWYG support

Integration

XWiki

Aloha – need API

Page 24: Real time-collaborative-editor-presentation

Some slides of this presentation belong to

Claudia [email protected]

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

Remark

Page 25: Real time-collaborative-editor-presentation

Demo

http://traian:8080

Page 26: Real time-collaborative-editor-presentation

Questions

?

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