Web Services considered Good July 8, 2007Posted by Andre Vellino in Enterprise Architecture.
I’ve been hacking a small SOAP-based web service lately and wondering why they are generally considered Good Thing? They use a complex and rigid set of protocols, require programmers to jump through seemingly unnecessary hoops and add non-trivial layers of complexity to software.
And do they deliver on the promise of component re-use? Do they make distributed software easier to develop? I don’t think so – not yet anyway.
But I’m thinking message-based Web Services may still be a Good Thing, for perhaps the same kind reason that Tito’s dictatorship over Yugoslavia could be considered a Good Thing: they enforce a strict discipline on the programmer.
Remember untyped programming languages? Remember life before interfaces and encapsulation? The main problem with software is that it is infinitely flexible. You can do too much with software – there aren’t enough constraints. I’d venture to say that all the significant advances in software engineering arose from the addition of constraints to programming discipline: Structured Programming, Modules, Typing, Object Orientedness … all these frameworks obligate the programmer to conform to a discipline and the tools built around them enforce it.
It could be that the real value in Web Services is merely as a standard mechanism for enforcing APIs for distributed software. And if the wrong technology wins (i.e. it’s Beta vs. VHS all over again), well, so be it – we’ll make better progress next time (as we did with DVDs? or did we?).