real time-collaborative-editor-presentation
DESCRIPTION
Presentation about real time collaborative editor developed at INRIA.Talk at the Aloha Editor Developer Conference.TRANSCRIPT
![Page 1: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/2.jpg)
Agenda
Intro
Motivation
Approach
R & D
Results
Future work
Demo / Questions / Discusion
![Page 3: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/3.jpg)
Intro
Buzzwords
HTML5
Comet
WebSockets
Server push/ Pushlets
XHR Multipart
New way of doing async HTTP
![Page 4: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/9.jpg)
OT – Causality
![Page 10: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/12.jpg)
OT – Intention violation
![Page 13: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/13.jpg)
OT – Intention violation + Divergence
![Page 14: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/14.jpg)
OT – Intention preservation
![Page 15: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/15.jpg)
OT – Convergence
![Page 16: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/16.jpg)
OT – Convergence
![Page 17: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/23.jpg)
Future
WYSIWYG support
Integration
XWiki
Aloha – need API
![Page 24: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/24.jpg)
Some slides of this presentation belong to
Claudia [email protected]
INRIA researcher in the SCORE Teamhttp://score.loria.fr
Remark
![Page 26: Real time-collaborative-editor-presentation](https://reader033.vdocuments.us/reader033/viewer/2022060123/5596c0e61a28ab5c698b46d7/html5/thumbnails/26.jpg)
Questions
?
Skype, Y!: flueras_bogdanGTalk: flueras.bogdanTwitter: fluerasbogdan