Russell has an interesting entry on When will Web Services become like Unix’s Software Tools?.
I was struck by a thought while I was reading the first section of the Linux Cookbook that Web Services, if they agreed on some sort of input/output standard, could operate much like the Unix toolset with stdin and stdout. I’m not the first person to think of this, but because I’m working with both XML and Web Services lately and now am starting from scratch learning a new distrib, the parallels dawned on me again. I think when I first heard about this notion a few years ago, I couldn’t really see the parallels because I saw a large division between the concept of software and service. But that’s changed now, I think – the lines have blurred because the Internet has proven its reliability.
He then goes on to explain why this is the case, and how it could be even more coupled. For example, he discusses STDIN/STDOUT/STDERR in the Unix world, and how that could be applied to the WS world.
Unix pipes are great in their simplicity. The contract between the processes is simple “you will be getting some stuff”, and if the format has to be munged you can plugin filters along the way:
someScript.sh | mungetobetterformat.pl | otherScript.sh
Web Services is different and similar. We have much more defined contracts (WSDL/XML), and to change the formats we can potentially use XSL:
some WS | XSL transformation | other WS
Looks a little like history repeating itself. With WS it is more complicated, yet the contracts can be better (note: can).
Dion