Saturday, May 13, 2006
  Double Standards
In reply to a post on James Governor's blog, I ended up writing what would seem to be a "defense" of Web Services versus more "pragmatic" approaches such as REST. I'm transcribing the full comment here, but allow me to clarify:

I've gone to the point of believing that a bad standard is better than no standard. Choice is good, but I'd like to see convergence just for a couple of years, and then see choice again, and evolution in standards. Right now, I just wish things would interoperate without needing two completely separate interfaces, one to deal with WS-*, another to deal with REST - and sometimes yet a third and a fourth to deal with still some other interfaces.

The post is as follows:

Disclaimer: most of my work life was spent in banking and insurance. YMMV in other industries, I've been involved in some areospace projects, sattelite data collection and such, and in a number of telco gigs, and REST does seem more appropriate in those environments. But today I'm writing from a financial services point of view.

Even for read interfaces there are - more often than not - security requirements. Not everyone can read all data, not all servers can consume all interfaces, some people have access to aggregate figures but not to individual items. And with this need for control - be it real or just perceived by the users, but, after all, they're your customers, most people don't just code for fun - there comes a need to make control centralized and enforcable. It just doesn't make sense to have every single application, every single service, every single datasore implement their own versions of access control, permissions, data visibility, and auditing.

I agree that WS-* is something of a mess. It was designed by commitee, it was design with no regard for practicality, I know all the excuses. But the same problems have existed in all call interfaces that came before, and most of the time it was even worse. Having a bandwagon join behind WS-* would, at least, have the benefit of doing what CORBA could not do, defining a worldwide call-interface standard.

But, as I've said so many times, the "good" thing about standards is that there are always (at least) two (thinks ASCII and EBCDIC, 220 and 110 volts), and human kind has again fulfilled this promise. Even before WS-* was fully deployed and understood, a number of "smart" fellows decided they could always "cut some corners" and came up with REST. Of course it's potentially slower. Of course it's more complicated. If I think about solving only MY problems I can always come up with something faster and easier.

But it doesn't cover a lot of people's needs - needs that have driven WS-* to be - at least partly - as not-simple and not-fast and not-easy as it is. And it's because of those people that REST can not be a universal solution - unless people start grafting other features upon REST, and end up having another WS-*, which they will always claim is better, because it's their WS-*, not someone else's.

Some of us have been around long enough to see all this happen before. Me, i'm still an optimist at heart. I really had hopes that WS-* could be "the one to rule them all". Not that I like it, but I was willing to concede personal liking to standardisation. Apparently, a lot of people didn't agree. Another chance missed - history, again, repeats itself.

Comments: Post a Comment

Links to this post:

Create a Link

<< Home
Juliao Duartenn's thoughts on people and technology

My Photo
Location: Portugal
March 2006 / April 2006 / May 2006 /







Powered by Blogger