June 09, 2005
Google's Adam Bosworth on the future of web services (aka, Atom)
This is a really interesting set of slides from Adam Bosworth, VP of Engineering at Google, on the future (and past mistakes) of web services, and the promise of Atom to do for data what HTML did for content.
Johannes Ernst of Netmesh comments that "His slides are less controversial than what he said with it, but it included such gems as (quoting from memory) "the left way is what web services turned into, and the right way is what we should have done and didn't" (commenting on slide 11)."
So, we created database models with RPC interfaces, instead of a real sharing structure that was more "weblike". Or, as Adam puts it "we took a left turn" (not a phrase a sinistral like me would have used :-)
I definitely felt an unease about this when working on the IMS Enterprise Web Services specification, that some of what we were doing was moving relational models directly onto HTTP, and that we should have really taken a step back and looked at what we were trying to do from a broader perspective.
Looking back, I can see a lot of ways we could have made the whole thing simpler, and easier to query using simple existing models such as SRW and SRU. While some of us in the group always saw the services we were describing as being about fairly sloppy syndication, others wanted synchronization, which requires more precision and control.
In our defence, we were one of the first specification groups trying to move from a paradigm of exporting files to exposing services, so it was inevitable we wouldn't get it completely right. Also, the people planning to implement the specification were also coming from a database-control viewpoint, and needed this work finished ASAP, so in a sense we delivered what the customer wanted. Hmm, now why does this sound familiar?
Anyway, that still leaves the question of what to do now. Clearly Atom is a good starting point - especially the combination of a simple aggregation format with a publishing and modification protocol - and when combined with querying this becomes a really powerful basic model.
I've already explored in a previous post how Atom could be used with FOAF to provide ePortfolio web services, and how to do IMS Enterprise Web Services without SOAP. Perhaps the next challenge would be to look at some of the other common integration and information management issues we're facing from the same perspective.