Mashups: VBAD, not SOA
I was reading "
Rethinking BPM in a mashup based SOA world" – which brings together ideas from some great bloggers: the author
David Berlind,
Steven O'Grady, and
Sandy Kemsley – and I completely see why the mashup phenomenon is potentially interesting in an enterprise IT context.
But I think it’s dangerous to associate mashups and SOA too closely. Why? Because the real value of SOA (and I realise I’m starting to say this an awful lot) comes principally from thinking about the "S" and the "A". The "S" is about more than just components-at-a-distance – "service" implies not just a functional commitment but operational quality and financial commitments too. The word "service" as part of the term "web service" is causing just as much harm than good in this respect. And the "A" is about a process of designing and managing a portfolio of technology assets to balance a client’s short-term and long-term requirements. Mashups don’t really get involved in either the "S" or the "A". In fact they’re almost the antithesis of these SOA principles.
Nope, mashups are much more about VBAD – Visual Basic at-a-distance.
Which is not to say they have no value. They’re a really interesting form of composite application development. And I was a developer back when
VBXs were all the rage: so I remember the value that both Redmond and IT users got out of VB. Of course, as David Berlind points out at the end of his blog:
Once business managers start developing applications, who is going to manage and support all that code?
UPDATE: Neil Macehiter just alerted me to this post at ZDNet by Dion Hinchcliffe – it's a really interesting report on what Microsoft is attempting to do in fusing some Web 2.0 concepts and its business-focused "Live" software-as-service offerings. But like so many other commentators he draws a bold line between Web 2.0 composition and SOA. He's right that Web 2.0 concepts have parallels in the use of SOAP, WSDL etc for application integration – but as I'll argue 'til I'm blue in the face, this is just one element of SOA; and it's not even a necessary element.