I studied Google Wave for a few hours to try and figure out how it compared to
SXE (XEP-0284). It may be a moot point now but here is a quick summary:
Architecture
------------
Wave has a distinct server to server (s2s) protocol using XMPP and a client to
server (c2s) protocol using JSON over Web Sockets.
SXE uses XMPP end to end. A host is used to coordinate changes between
participants.
Security
--------
Wave requires TLS for each connection. Each operation is signed by the
originator. Verification is done by wave providers.
SXE uses the security of the XMPP connection it is running over. It may or may
not use TLS.
Discovery
---------
Both use SRV records to locate servers
SXE uses presence or TXT records to locate sessions
Caching
-------
local wave server caches operations for replay
host or MUC server may cache operations for SXE but not well defined
Editing
-------
Both use replicated local storage for edits. Changes are made immediately
locally and propagated to remote servers
merge conflicts need to be handled manually in both
Data Model is XML in both cases but Wave adds annotations to XML.
Wave uses custom Operational Transformation (OT) with ACK plus recovery
concurrency control (consistency maintenance)
convergence
intention preservation
causality preservation
operations in the cause-effect order
combines operations to reduce number of possible
transformations using zip functions
composition tree allows jumping through history in log (n) order
SXE uses Post OT schemes
unique symbol identifiers and timestamps (like Eclipse)
reconstructing timing of nodes in SVG document required for
playback
time synchronization between participants required
simpler to implement but no correctness proof exists
Thanks,
Tom
_______________________________________________
JDev mailing list
Forum: http://www.jabberforum.org/forumdisplay.php?f=20
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: [email protected]
_______________________________________________