[jdev] Shared Editing with XMPP

Dave Cridland dave at cridland.net
Thu Aug 15 13:33:52 UTC 2013

On Thu, Aug 15, 2013 at 1:55 PM, Laine Markku <markku.laine at aalto.fi> wrote:

> What I am still missing is how to keep data in sync between collaborators.
> I ran into a couple of XEPs dealing with the issue, such as "XEP-0228:
> Requirements for Shared Editing" (http://xmpp.org/extensions/xep-0228.html),
> "XEP-0204: Collaborative Data Objects" (
> http://xmpp.org/extensions/xep-0204.html), and "XEP-0284: Shared XML
> Editing" (http://xmpp.org/extensions/xep-0284.html). Unfortunately, all
> of them have been deferred.
> Therefore, my question is what would be a recommended way to implement
> real-time collaborative editing of (XML) documents between XMPP clients?
> Preferably supporting Operational Transformation (OT,
> https://en.wikipedia.org/wiki/Operational_transformation).

Gosh, it must be nearly September already. :-)

So, first off - "Deferred" is a state roughly meaning "This is still
experimental but people seem not to be working on it". Documents can be
undeferred (um, "ferred"?) just by people submittign changed to them, so
please don't let that put you off.

Next... SXE remains the best stab at this anyone's published, and it's
probably at least comparable to the privately implemented protocols, too.
My main concern with it was that document initialization substantially
outweighed the document itself, and the general editing seemed
astonishingly heavyweight. I recall it being described as "Post-OT"; I seem
to remember it being largely geared around order-independent operations
where possible.

There's at least one private spec geared toward whiteboarding in
presentations that's worth examination I thought, though it's possibly best
simply mined for the presentation aspects of it.

I suspect that SXE can largely be fixed (from my perspective) by having a
more efficient initial document setup, but I also suspect that looking at
distributed version control systems and modern XML diff/patch techniques
might yield something rather more slim.

So I'm afraid the summary is that you're out on the bleeding edge, here -
SXE may do what you need, or else you might want to go your own route.
Either way, I'm sure there's plenty of people interested in your opinions.


PS - I would personally consider a different XMPP server - Openfire didn't
seem to be actively maintained last I looked, whereas Prosody, ejabberd,
MongooseIM, M-Link, and Soapbox all have active developers.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20130815/d718556f/attachment.html>

More information about the JDev mailing list