Posts Tagged ‘Wave’

To follow first thoughts about Google Wave, here are more technical details and reviews :

The key foundation technologies to Google Wave are (see also details in original article The Secret Sauce Behind Google Wave) :
– GWT Ajax library, which not only powers complex interactions on a browser, but also provides a reasonably tuned rendering for small form-factor mobile devices, such as Android and iPhone
– XMPP protocol that provides a foundation for the Wave Federation Protocol
– the real-time keystroke-by-keystroke communication pioneered several years ago in Google Suggest, and now in production in high-scalability deployment the AppEngine cloud computing platform on which are hosted the Robot extensions to Wave
– the Big Table data persistence mechanism that powers Google’s implementation of a Wave server (something which is not required by the spec, but which facilitates developer productivity and production scalability)

We can also find an explanation of “operational transformation theory (OT)”.

The 3 protocols and 2 APIs behind Google Wave (see the whole article, Wave Protocol Thoughts) are :
– Federation (XMPP)
– The robot protocol (JSONRPC)
– The gadget API (OpenSocial)
– The wave embed API (Javascript)
– The client-server protocol (As defined by GWT)

We can also read useful informations in comments :
“Actually, the Gadget spec on the Wave docs site specifically notes that it does not support the OpenSocial APIs. They have their own API that mirrors some of the OpenSocial functions.”

“Waves are containers for Wavelets. Wavelets are containers for Blips. Blips have content that are XML. So we have XML tunneled over JSON tunneled over HTTP POST”
However we also read “Waves are XML and can be served over XMPP.”

“My understanding is that XMPP is for federation of servers, not for robots.”

“XMPP is much better than HTTP for client initiated interactions, particularly for ones behind a NAT”

” I don’t really understand why they don’t base all three of their protocols on XMPP… I suppose you would need something like HTML5 WebSockets to make this work cleanly with a browser-based client.”
” I would love there to be a standard API (much like DOM) for browsers to adopt that manages XMPP communications as a parallel to XHR. Leave HTTP for what it is good at, and do persistent connections another way.”

“do you know if you have to use GWT to use parts of Wave?”
“No, it is not required at all.

Then we can use a Cappuccino client, and HTML5 WebSockets seem the future to replace all these mixed protocols.