I almost never listen to podcasts. I don’t commute, and just sitting in front of my computer, I tend to get distracted. But I did manage to hang in through all but the trailing couple of minutes of Jon Udell’s A conversation with Steve Vinoski about services, the enterprise, and the web. Since I’m called out by name, I think I should probably respond.
Jon dominates this conversation, and he has an agenda: the REST vs. WS-* dispute is pointless, there are places for both approaches, and Why Can’t We All Just Get Along? Steve is mostly ready to agree, but the discussion visits some useful and interesting places as they toss it back and forth. Steve is regretful that in the early days of WS-* a lot of the people involved didn’t really understand the Web. He points to Apache Axis2 (which actually I hadn’t been watching) as “the awakening of the enterprise crowd to the Web”. Interesting stuff.
I’m portrayed as the black-clad anarchist. Jon: “Tim Bray, for example, you know, you get the impression from Tim, ‘Let’s just tear the whole thing down, it was a complete waste of time.’” Uh, not so much. If you want to know what I think, read Pete Lacey’s It is Hard to be a Dove and my own SOA and WCF.
To wit: Don’t use WS-* unless you need to interoperate with existing WS-* deployments, in particular Microsoft WCF, which is the twenty-first century version of DCOM: the Windows network API they’d like you to program to.
So, no, I don’t want to tear anything down, but I also don’t want to just get along: I want to start building developer tooling around REST, or what Greg Papadopoulos calls RSWS: “Real Simple Web Services”. I think work to date on WS-* represents a sunk investment; use it when you have to (we at Sun are shipping the tooling to let Javaland talk to WCF) but not as the basis for anything new. Because the design of WS-* just has too many problems to be suitable for enterprise use, in the general case.
Jon presents the WS-* party line that REST is all well and good when you’re doing simple point-to-point stuff; but when you have sophisticated policy-based security that you need to manage across a network fabric rich with intermediaries, you need more, and that’s what WS-* is for.
Well yes, except for that kind of policy-driven intermediary-rich environment remains, more or less, science fiction; I personally have never observed such a thing actually working, and I have little faith that the WS-* theorists, meeting in their invitation-only back rooms, cooking up and superseding specs, are going to get it right first time based on zero real-world experience. Particularly with an abomination like WSDL in at the very core.
Hey Jon, our criticisms of WS-* are specific and have to do with issues of process and stability and technical quality and a demonstrated lack of interoperability. It is badly-engineered technology, using it will increase the likelihood that your project fails, and it is not suitable for use by conscientious IT professionals.
Unless you need to talk to
DCOM 2006 WCF.