Upload
bflueras
View
1.370
Download
0
Embed Size (px)
DESCRIPTION
Presentation about real time collaborative editor developed at INRIA.Talk at the Aloha Editor Developer Conference.
Citation preview
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 [email protected]
INRIA researcher in the SCORE Teamhttp://score.loria.fr
Remark
Questions
?
Skype, Y!: flueras_bogdanGTalk: flueras.bogdanTwitter: fluerasbogdan