I'm sitting in a Starbuck's just off Times Square, sipping a latte and working on one of the later chapters of our new book on Web-friendly distributed systems – the chapter that compares message-oriented (SOAP) and resource-oriented styles (Web). Of course as a fence-sitting MESTian/REST sympathiser it’s not exactly about putting the boot into the WS-* stack, though WSDL doesn’t exactly come out of the chapter with a glittering reputation :-)
It’s fairly quiet in here so I get to hear people's orders as they come in which is a fascinating experience. For example I just overheard "no-fat double tall iced caramel mochaccino" followed by something even longer and even more precise which I confess I didn't really understand. I wonder why the customers don’t dispense with the crudities and start ordering by chemical formula or better still an atom-by-atom construction of the specific drink they want. I’m sure the iPhone already offers this feature (it’s in-between the “world peace” and “end poverty and starvation” icons in case you’re looking).
What a cynic I am.
Still, I've noticed a something similar going on while I'm munching bagels and slurping coffee at breakfast in the deli between my hotel and office. Folks will order their breakfast with the most amazing precision, the kind of precision that must put BMW engineers to shame. The most unusual of these being "[an] energy bagel toasted and scooped out with a little low-fat cream cheese."
Now aside from wondering why on Earth would scoop the very life and soul out of a bagel (Atkins you have a lot to answer for!) or what an energy bagel is (I have no idea), there’s an interesting counter balance to all this: British tourists. Having such a large “surface area” of choices to be made confuses the living daylights out of them. Frankly I’m surprised that NYC isn’t littered with the bodies of emaciated Brits who are unable to eat, desperately trying to find somewhere with a more homely take-it or leave-it, what’s on the menu and nothing more kind of attitude.
In the UK the surface area for ordering food is much narrower and coarsely-grained. You can ask for a bagel (toasted by default), and maybe even for a particular filling but then you’d trust to the service provider to do the right thing in the background. You wouldn’t think to meddle in the preparation, and asking for “scooped out” would rightfully get your head kicked in, or at least a “WTF?” kind of sneer from the server.
So what has this to do with services? Well it turns out that the delis and coffee shops in NYC implement a uniform interface based on a protocol using PUT/GET model for ordering/collecting. Every single possible resource is exposed through the interface which you’d think would make integration between consumer and service pretty easy.
But my fellow Brits don’t know that protocol, so all the uniformity in the world doesn’t help them. And even though they sort-of understand the uniform interface (after all, it’s an English representation of the resources) they have no idea about the graph of resources they’re confronted with. “Sunny-side up” just isn’t a phrase that rolls off the tongue for us even if you can turn it into a microformat (and I like microformats a lot!).
Instead we’re used to a much more message-oriented style of interaction. Pick from the menu, send order to kitchen with whatever metadata I think I can get away with (which maybe extends as far as “with marmite please”), and then wait for a response message or timeout and compensating activity. We’d never think of doing conditional GETs and hard PUTs because that would just be plain rude.
And that would simply never do.
Of course that that doesn’t work here in the USA, otherwise I wouldn’t be so smugly amused by the ever-so-British antics of the two-dollars-to-the-pound-shopper desperately trying to keep a stiff upper lip while battling through the myriad choices involved in ordering a bagel and a coffee. Even the uniform interface doesn’t help when we’re confronted with a range of baffling resource representations whether they are bagels and fillings or computer systems.
All of which brings me to the point that was festering in my head all this time.
In the religious battle between SOAP and Web, perhaps my North American counterparts are keen on the resource-oriented style simply because of Conway’s Law. Maybe I feel that messaging is an equally natural paradigm for the same reason.
Maybe we MESTians and those RESTafarians really are two peoples divided by a common Internet infrastructure. Perhaps we even like it that way :-)