Google Wave's Web of Protocols (diagram and commentary)
cubiclemuses.com
cubiclemuses.com
But I think that's the least of Wave's problems at the moment. If they get the server bugs worked out, and figure out access control, then we can start talking about interoperability.
That said, does the Google Talk client in the sidebar of my GMail client speak XMPP? Of course not...it's a web app, and it needs to talk to a web server as an intermediary to a jabber server somewhere. I can log in using a desktop GUI jabber client to an actual XMPP listener if I want to, and that is what is important. I don't care one whit about the protocol that GMail Chat uses to talk to its back end. That's a private matter between Google and Google.
It's not the browser-server protocol that needs to be specified, but rather some other client-server protocol, without any assumption that the client is a browser.
It seems to me that the relationship between "the web" and Wave is entirely incidental, stemming from the fact that their reference client runs in a browser. One might well write a client in Cocoa or GTK, in which case an open specification for how Google's Wave client, written in GWT, communicates with its back end does us no good at all.
However, I'm willing to give it time. It feels like they've got bigger fish to fry at the moment, based on this thread:
http://groups.google.com/group/wave-protocol/browse_thread/t...
"When I and other googlers have said 'there's no concrete client-server protocol', you can attach an unspoken 'yet' to that. We don't know what it should look like in it's final form. On the other hand, we have a fair idea about the requirements and needs of the federation protocol, which is why we took at stab at writing that down first.
"If anyone has ideas about what this should look like based on what they've seen so far, start a discussion on it. It's not necessary for Google to come down the mountain with a completed standard engraved in stone. Or even in something softer, like soap."
It doesn't, but it should. This is something we’ve been trying to address with the Orbited and JS.IO projects (links below). Building in-browser clients on a JavaScript XMPP client saves developer effort and aids interop, because each web client isn't inventing its own ad-hoc buggy mutated version of the protocol, based essentially on the same semantics, but with arbitrary changes to syntax.
Any sensible protocol would likely be outside of current browser capabilities and the scheme they are using (based on GWT) is unsuitable for standardization. I wouldn't expect them to spend resources developing a protocol they aren't going to use and they would likely do a bad job of it anyway, for that same reason.
The protocol should be designed by whoever makes the first local client (which BTW I would be overjoyed to do, if someone wants to keep me afloat while I do it).
They are taking federation pretty seriously. They've opened a reference implementation and some third party developers are already running their own servers. When someone writes a client, or a web interface for a server, we can use Wave completely independent of Google. I don't see how lock-in would happen in the long run.
In the worst case, it shouldn't be hard to RE their GWT marshalling and hack a new front end on to their server.