Your SlideShare is downloading. ×
0
OTLY

A framework for realtime collaboration
Fabio Mancinelli

fabio.mancinelli@xwiki.com
Operational Transformation is a ...
OT Everywhere !
●

NodeJS based – Open Source
●

●

TogetherJS

●

Etherpad

●

●

ShareJS

...a lot more !

Java based – ...
OTLY
●

Framework targeting the Java world
●

Based on Operational Transformation (OT)

●

Embeddable in Java programs

●
...
What is OT ?
●

Optimistic concurrency control mechanism

●

Used in high-latency, low bandwidth systems

●

Basic blocks ...
What is OT ?
xform(c, s) = (c', s') | c ∘ s' = s ∘ c'
C

S'

S

C'

www.ow2.org

Twitter #ow2con
What is OT ?
xform(c, s) = (c', s') | c ∘ s' = s ∘ c'
C

S'

S

C'

www.ow2.org

Twitter #ow2con
What is OT ?

...

www.ow2.org

Twitter #ow2con
OTLY Architecture
●

Document models
●

●

Bindings
●

●

For supporting different types of operations :
text, rich text, ...
OTLY API
●

Simple API (inspired by ShareJS)
●

Client side (JS)
–

●

otly = new otly.Otly() ;
pad = document.getElementB...
Conclusion
●

Extensible architecture
●

●

●

Helps to build a community that provides new
document models and bindings

...
Acknowledgements
●

●

Some of the work has been done in the context
of the RESILIENCE Project
OTLY is based on the initia...
Upcoming SlideShare
Loading in...5
×

OTLY: A framework for realtime collaboration

661

Published on

Operational Transformation is a technique for synchronizing changes to a document among different clients. It is widely used in different technologies both open and closed source (e.g., ShareJS, Apache Wave and Google Drive Realtime API) OTLY is a framework based on Operational Transformation that is being developed by XWiki SAS as a refactoring of its realtime editor. OTLY aims at providing a common foundation for contributing collaborative document models and binding to widely used editors. OTLY is targeting both Java and Javascript for the client side, and Java on the server side.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
661
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "OTLY: A framework for realtime collaboration"

  1. 1. OTLY A framework for realtime collaboration Fabio Mancinelli fabio.mancinelli@xwiki.com Operational Transformation is a technique for synchronizing changes to a document among different clients. It is widely used in different technologies both open and closed source (e.g., ShareJS, Apache Wave and Google Drive Realtime API) OTLY is a framework based on Operational Transformation that is being developed by XWiki SAS as a refactoring of its realtime editor. OTLY aims at providing a common foundation for contributing collaborative document models and binding to widely used editors. OTLY is targeting both Java and Javascript for the client side, and Java on the server side. www.ow2.org Twitter #ow2con
  2. 2. OT Everywhere ! ● NodeJS based – Open Source ● ● TogetherJS ● Etherpad ● ● ShareJS ...a lot more ! Java based – Open Source ● ● ● Apache Wave OpenCoWeb Proprietary ● Google Drive Realtime API www.ow2.org Twitter #ow2con
  3. 3. OTLY ● Framework targeting the Java world ● Based on Operational Transformation (OT) ● Embeddable in Java programs ● Extensible ● Simple API www.ow2.org Twitter #ow2con
  4. 4. What is OT ? ● Optimistic concurrency control mechanism ● Used in high-latency, low bandwidth systems ● Basic blocks : operations + transformations www.ow2.org Twitter #ow2con
  5. 5. What is OT ? xform(c, s) = (c', s') | c ∘ s' = s ∘ c' C S' S C' www.ow2.org Twitter #ow2con
  6. 6. What is OT ? xform(c, s) = (c', s') | c ∘ s' = s ∘ c' C S' S C' www.ow2.org Twitter #ow2con
  7. 7. What is OT ? ... www.ow2.org Twitter #ow2con
  8. 8. OTLY Architecture ● Document models ● ● Bindings ● ● For supporting different types of operations : text, rich text, spreadsheets, etc. For supporting different types of editors : HTML text area, WYSIWYG editors, etc. GWT for simplifying code sharing on Javascript clients and Java server www.ow2.org Twitter #ow2con
  9. 9. OTLY API ● Simple API (inspired by ShareJS) ● Client side (JS) – ● otly = new otly.Otly() ; pad = document.getElementById("pad") otly.open("simpletext", "foo", function(doc) { doc.bind(pad, "textarea") ; }) ; Client side (Java) – JFrame frame = ... otly = new Otly() ; DocumentModel documentModel = otly.open("simpletext", "foo") ; documentModel.bind(frame) ; www.ow2.org Twitter #ow2con
  10. 10. Conclusion ● Extensible architecture ● ● ● Helps to build a community that provides new document models and bindings We are working on a reference implementation that will work with the XWiki WYSIWYG + other popular simple text editors and will be integrated in XWiki Issues ● OT is complex to get it right ● GWT is very heavyweight www.ow2.org Twitter #ow2con
  11. 11. Acknowledgements ● ● Some of the work has been done in the context of the RESILIENCE Project OTLY is based on the initial work done in the context of the Wiki3.0 project by the INRIA Score Team and XWiki SAS www.ow2.org Twitter #ow2con
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×