This is a smaller question with a simple, practical answer, and more a question to facilitate real-time discussion of the topic of data exchange.
I'll start with an example:
Google Wave, in essence, is a mechanism for synchronizing asynchronous data in real time. Wave supports (or plans to support) simultaneous (in real time) collaboration with documents, disabled (offline) document editing, conflict resolution, document history and attribution playback and server federation.
The main part of the wave is the mechanism of operational transformation: http://www.waveprotocol.org/whitepapers/operational-transform
The OT engine controls the state of the document. Changes between clients merge, and each client has a reasonable and consistent presentation of the document at all times; the final document is ultimately consistent between all connected clients.
My question is: is this system abstract or generally available for use as a library or a general framework on which to create web applications that synchronize the asynchronous state in real time in each client?
Is the Wave protocol directly used by current web applications (other than the Google client)? Does it make sense to use it to synchronize the overall state in a web application?
-?
, ? , -, ?
!