Tuesday, 11 December 2007

SOA and Unix Pipelines

One of the most successful patterns of re-use in computer science is the Unix Pipeline. Invented by Douglas McIlroy it uses the simple idea of a set of operations where one feeds into the other. This is a huge inspiration to many of us, and we stole and re-used the idea heavily when we built the Apache Synapse mediation model.

In fact, SOA is a remarkably similar endeavor when looked at from a high-level. Some people would view BPEL as the equivalent of a shell-script. But the fact remains that Web services - even REST and HTTP models - remain largely separate from shell-scripting. Of course WGET does allow some integration and is a fantastic tool - but in my experience even this kind of integration is still used in a tiny proportion of scripts.

In his blog, Samisa talks about a new utility to do web services interactions from the command line. Its completely written in C and it supports calling REST-style services as well as SOAP and WS-*. Take a look - this is a smart new addition to the Unix pipeline toolkit.

2 comments:

Paul R Brown said...

The Ode crew is working on a more scripty syntax for BPEL (inspired by JavaScript) if you want to stop by and contribute. It will be great to have some sort of language for scripting "in the cloud" where messages, ports, and XML manipulation are provided on the level of files and pipes.

Paul Fremantle said...

Paul - thanks for the linkage. I've been following the BPEL4Coders thread on and off and I think its seriously cool. I hadn't thought of the link between these things but now you make it I see a lot of possibilities. I actually had a similar idea a long time ago - Sanjiva and I discussed it back when we were at IBM - but never had time to follow up.

Paul