3

Does there exist some framework for parallel editing XML-document on a web-page through AJAX?

I need a shared whiteboard, where I and other people can draw and see that draw others in real time ("live" mode).

Modern browsers support SVG, event-source and other useful things, and if such a framework exists, make such a board should simply.


If not, what are the implementation on Operational Transformation and what engines for parallel connection of several clients over HTTP is best to use?

Georg Fritzsche
  • 97,545
  • 26
  • 194
  • 236

1 Answers1

0

The keyword here is "collaborative editing" which is used extensively in Google Docs.

There's more info on the subject here: http://en.wikipedia.org/wiki/Collaborative_real-time_editor

Google Wave (which I believe was Google's first collaborative editing venture) is now open source: http://en.wikipedia.org/wiki/Google_Wave#Open_source

A bit of further reading should provide the answers you're looking for.

Nick Brunt
  • 9,533
  • 10
  • 54
  • 83
  • Thank you. Alas, Google Wave has opensourced not their web-interface -- only the synchronization algorithm itself. Interface is not trivial -- we need listen mutation events and retrieve elementary patches from it, but DOM Events are not convenient, e.g. DOMCharacterDataModified tells previous and new content of text node and doesn't tell _where_ new symbols were entered (probably, workaround is to track user's selection). – Alexei Golovko Apr 18 '11 at 20:09
  • Also, we need reimplement rich text editing API, which is not compatible between browsers, or control in some way that `...` in Mozilla and `...` in Chrome give the same result and interact with further editing similarly. It is not impossible, but I had not been ready :) – Alexei Golovko Apr 18 '11 at 20:17
  • Finally, wave's algorithm works in different ways with rich text (it is represented by linear text with "tags", i.e. font styles applied to specific ranges of string) and XML, that is rich text is not represented by html. So it is not capable to hadle tables in text, or MathML. Hence, my assumption, that such board may be developed relatively easily, was wrong. – Alexei Golovko Apr 18 '11 at 20:27