David Linthicum pointed out this gem from IBM's Bobby Wolfe that admits, openly, that you cannot buy a product and then, magically, get a SOA out of it. Hooray! Microsoft has been trying to tell people for years that SOA is not a product, it is a way of building.
The fact that this message is coming from Bobby Wolfe, co-author of the landmark book Enterprise Integration Patterns, is indicative. Common sense is much more refreshing than marketing noise.
Wolfe goes on to explain what you get when you buy a product without thinking about SOA:
"The problem is this: An ESB by itself produces no business value. An ESB is a means to an end, not the end itself. An ESB is like the electrical wiring or plumbing of an SOA. Plumbing does not produce value; sinks with water coming out of their faucets do. Wiring does not produce value; lights, especially lights connected to switches, are valuable. A road is not valuable except that it enables you to get from one point to another. An ESB without an SOA is like a road from someplace nobody is located going to other places nobody wants to be. People might eventually want to go to those places, but in the meantime, the road is all cost and no benefit."
Bobby Wolfe calls this style "ESB-Oriented Architecture," a term that David Linthicum warns is "not an Architecture." To quote David Linthicum:
"The truth seems to finally be coming out…you can't buy a SOA. Indeed, SOA is something you do, and an ESB is not an architecture, it's a mere instance of technology."
I agree with David Linthicum on this. There is no such animal as ESB-Oriented Architecture. So while I'm pointing out the strengths of this article, let's all agree not to create a new term from this one. If I see a powerpoint with the acronym EOA on it, I'm leaving the room!
SOA never was something you could buy. You have to change the way you write software to build an Enterprise SOA.
Building an Enterprise SOA is a very different task from building a single application with a nice web services layer... that you can do without rocking the world, and a lot of folks have done it, but that's not what I'm alluding to. I'm convinced that the real payoff comes from building for the Enterprise, and that means understanding your shared, or canonical, data model. That means understanding your business objects and events.
Enterprise SOA requires management frameworks to rationalize your portfolio, and process changes to fund your projects in a way that encourages the creation of specific services, a well-run Enterprise Program Management Office (EPMO) for insuring that governance occurs and that quality is high, and a functioning Enterprise Architecture team that allows you to bring the information together, and evangelize it's use.
Buying an ESB and hoping for a SOA is like going to Home Depot and buying a truckload full of random building supplies, dumping them on an empty lot, and hoping someone will build a house from it.
You can buy bits of technology, but if you approach this problem with technology first, you will fail. Bobby Wolfe agrees.
The mindset is often: “We don’t know what else we need, so for now we will just build an ESB.” But is this really any different than the approach of “You start coding, I’ll go find out what they want”?