Adam Bosworth been discussing what he calls a “Web Services Browser” for months over at his blog, but I was really having trouble getting the point. After his speech here at XML 2003, I think I sort of get it.
The central point is one that I’m very friendly to: that the Web is (obviously) a good model for networked information spaces, and that application architectures that present as an object model or API or query facility, trying to abstract away the Web, don’t work. So while there will still be Web Services, they will be in the back-end, and an application will be expected to follow a link, for example from a product to its supplier to that supplier’s other products, rather than imagining that there’s a query facility that will make the link structure invisible. Specifically, he’d like to see a “SOAP cookie” or equivalent to allow everything to run more statelessly.
The analogy to relational databases is strong; particularly in the early days of Java, lots of people tried to abstract SQL away behind objects and methods, until we eventuually learned that the right way to interface to a database is to compose and send SQL queries and get tuples back. Similarly, the right way to use networked information spaces is acknowledge that you’re following hyperlinks, and that this has a cost.
Adam also fired off some broadsides against galloping complexity of new technology developments, both in Java-land and in XML-space. Quotes: “I don’t know anyone at our company except one guy who really understands WSDL.” “Schema specifications shouldn’t be thicker than the specs for the languages they describe.” To all of which I say Amen.
There were a couple of directions Adam went that I was less comfortable with. He is generally unhappy about polling-driven systems such as RSS readers, sharing the conventional wisdom that they won’t scale. I’m unconvinced; doing an HTTP poll and getting a 304 code back is pretty low overhead, and the complexity of the structure you’d have to build to get around doing the polling is daunting. Lots of things about the Internet weren’t supposed to scale, but have.
Adam and Sam on Sync · As anyone who follows Adam’s recent writings knows, he’s been thinking a lot about supporting intermittently-offline work. He revisited this, arguing that synchronization of offline and online data models is a big and important part of future architectures. I’m less convinced on this; the amount of time in which I’m awake but not (potentially) online is nearly zero; I travel more than the average person but less than a real road warrior like Adam. He’s correct that people increasingly will be using small-form-factor devices like PDAs and phones, but I think the trend is clear: anyone who wants to will be able to have a fast pipe that’s always on.
As I was sitting outside in the hall typing this, Sam Ruby dropped by for a chat and took Adam’s side, somewhat. He berated me mildly for not including the full text of ongoing entries in my RSS feed. I objected that I frequently utter thousand-word-plus essays here, and reasonable people don’t want to download them if they’re not interested. But, pointed out Sam, think of it as a synchronization/offline problem. If I stick the whole essay in the feed, then someone can read it even when they’re offline, because their RSS reader will have pulled it in.
He’s got a point, and almost but not quite convinced me to fatten up the ongoing feed.
Finally, Adam amused me by talking about how wonderful it was to build software that you deploy on a server and people access over the Web, because you can deploy much more often and people get access to fixes and updates way quicker. Heh, we Web-heads noticed that in 1995 or so.