Sean McGrath calls for a “workable definition” of a Web service in order to bring integration complexity down to O(n) from O(N^2).

While a definition would be a good start, more importantly we need a common abstraction. This drives integration complexity down because once you’ve integrated with one service, you’ve (ideally, and not that uncommonly) integrated with them all.

Take for example, a blog aggregator. If everybody had their own interface to their blog, aggregation would be an O(N^2) task. But luckily they don’t, they all make their RSS available over HTTP GET, a very useful common abstraction. That, plus that RSS (all four versions 8-) is a common format, provides for O(N) integration complexity.

The Web provides one common abstraction that I talk about a lot; the uniform interface. There are others (though none so general, I believe), but Web services, via WSDL, are all about providing custom interfaces. As long as use of WSDL in this manner continues, Web services will, like Sean says, amount to “one big damp squib” (which doesn’t sound like a good thing 8-).