[jdev] Google Wave being phased out
pusateri at bangj.com
Wed Aug 4 22:54:16 CDT 2010
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:
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.
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.
Both use SRV records to locate servers
SXE uses presence or TXT records to locate sessions
local wave server caches operations for replay
host or MUC server may cache operations for SXE but not well defined
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)
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
More information about the JDev