Google Wave - a developer's eye view
Better than pistol ammunition taste-testing
My Heart is Human, My Blood is Boiling, My Brain IBM
Since a wave is a collaboratively edited document, it makes sense that programs should be allowed to participate. Google calls this the Wave Robots API, and since the robots are afforded any right that a human has within a wave, it's a really good way for the machines to cooperatively find Sarah Connor and generally plan the uprising. The canonical example Google demoed was a translation bot that translated messages from English to French and back in real-time. (It is unknown if the bot knows the English translation of “aw haw haw”).
In the current preview release, Wave only supports robots written on Google App Engine, which means you're restricted to Java and Python, but future releases will support robots hosted anywhere. The programming model for robots is event driven, which means that your robot cannot contact Wave directly, but only ask to be notified when certain events happen. The wire protocol for these notifications is still in flux, but the Java and Python APIs keep you from having to muck around in that business.
...That Was Hard
When Google said that Wave was e-mail as if it were invented today, they didn't mean it in a just-as-long-as-you-come-to-google.com-and-click-on-ads sense. The network model for Google Wave is similar to SMTP, where individual organizations run their own servers, support their own users, and house their own data. These servers can talk to each other so the user experience is seamless, but you better believe that figuring out how to hook them together was a task completely motivated by coffee and Adderall. Lars Rasmussen, one of the creators of Wave, completely nailed the sentiment in his presentation at the Google I/O conference: "Federation....that was hard."
Wave servers talk to each other using an extension to XMPP, which is the same protocol that powers Jabber and Google Talk. XMPP is easy to parse and create, but the headaches for ops teams are going to come from the security. While you can encrypt XMPP messages at the transport level, Google has built a level of cryptographic signatures into the application layer, so that Wave servers can authenticate messages from one another. Congratulations, systems administrator! You've just won a whole pile of shit that won't work because of certificate problems! Good luck wit that.
The protocol that these servers use to communicate is open, and you can check it out at www.waveprotocol.org. Google is going to open source most of their code for the Wave back-end as a production quality reference implementation.
What Business Plan?
It's good to see a company convincing the developers on the ground that their product is worth using. Something tells me that Google won't need to hand out a "Google Certified Solutions Provider" certificate to any shaved ape that can pass a test. For once, salesmen aren't pitching an enterprise tool to nontechnical managers and leaving it up to the developers to "figure all that hard stuff out." Can the strategy work? Maybe. If Google can figure out how to make any money from it. ®
Sponsored: RAID: End of an era?