Anyone who’s been struggling with SOA would do well to spend some time together with Jim Webber when he talks about Guerilla SOA. For a company that promotes the ESB concept like Zystems does, the guy delivers some heavy punches. Nevertheless, I believe there are some really important lessons for us in his message. When we talk about the virtues of the ESB, we do emphasize the key benefit of accessing back-end legacy data. What I think we would all do well to consider is the ‘upper level’, i.e. where the business services reside. What Jim’s driving at, I think, is to make sure that anything on this level is standards based and open, not proprietary, which makes a whole lot of sense to me. And in a future where most applications have standards based interfaces, what, indeed, would be the purpose of a proprietary chunk of software in the middle? I do believe, however, that while we have lots of legacy apps to integrate, and lots of it outside of the SOA domain, methodologies to handle the ESB will be very much in demand.
But his most central insight, I think, is that all our efforts are “spaghetti agnostic”, i.e. our schemes and plans defy the spaghettiness of reality. We hope that magnificent tools and large-scale methodologies will somehow defeat the inherent messiness of reality. What we need is SOA – Spaghetti Oriented Architecture – hence his use of the term Guerilla SOA. I understand it as once and for all giving up the One Big Scheme pipe dream and find ways to embrace change. Quite a mouthful when you make your living trying to bring some orderliness to the integration world 😦 .
As an aside, it warms my heart to hear Jim talk about the ESB as an Erroneous Spaghetti Box! That’s exactly what we claim might happen if you don’t have a simple and straight-forward way of developing integrations (such as Baseline). Never mind that the guy wants to get rid of the ESB altogether, or nearly so. As for governance, he promotes the idea of a wiki based solution, not a high-tech UDDI-monster. Again, hello Baseline Service Registry (our wiki-based documentation).