Two expressions that get used thousands of times over within a single conference or even single seminar are 'enterprise' and the famous 'LEGO block' analogy for SOA. What exactly do we mean by those terms?Building 'enterprises,' one LEGO block at a time
For example, I and many other industry commentators talk an awful a lot about "enterprise" -- enterprise service bus, enterprise architecture, enterprise this, enterprise that. All analysts love the term, which has been in vogue for more than a decade, which is used to describe any technology that is more than a desktop application, and any business with more than three employees.
A couple of months back, CapGemini's Carl Bate did a pretty good job of questioning and dissecting what, exactly, constitutes an 'enterprise.' He concludes that while enterprise is typically used to describe a collection of "discrete, interconnected" businesses interacting with each other within a single entity, the definition could also extend to business units interacting the same way with other businesses beyond the firewall. In the other words, SOA is removing the distinctions between an inside business unit and an outside business unit.
But while each line of business unit may be a player in the broader market, Bate warns that the business may be hamstrung by the issues and controls of the 'enterprise' its part of. As Bate puts it:
"Perhaps a different question to ask would be ‘how can we, in an individual business, understand customer information provided by other businesses to help us deliver our services more effectively?’ ...what’s interesting is that the corporate IT strategy often goes way beyond corporate governance and into to heart of the front-line business functions – attempting to deliver on the usual themes of standardization, consolidation and integration across the enterprise. ...good from the enterprise perspective but perhaps not so good from the lines-of-business perspectives."
Now, on to that other sacred cow of SOA terminology, the "LEGO block" analogy. (Guilty as charged of using the analogy on this blogsite as well.) Joel Spolsky recently grumbled about the overuse of the analogy as it relates to simplified programming, saying he's been hearing it as far back as 1991.
Of course, this analogy gets applied to service-oriented architecture, but is it a valid analogy? A Google search of the terms "SOA" and "LEGO" turns up more than 700,000 references, including these:
- "Much like the approach you might take to making LEGO and the Erector set work together, EAI serves as the glue between applications." (article, 2003)
- "Conceptually, a services orientation turns your entire application portfolio – and that of your partners – into technological LEGO blocks that can be assembled in anynumber of configurations to meet changing business needs. But unlike a single LEGO block, which can only be used in one design at a time, a 'service' can be used by several applications at once (much like a letter in a crossword puzzle)." (vendor white paper, 2006)
- "A pertinent analogy for SOA is LEGO, the popular building blocks play set. Rather than build separate, custom applications for each department or enterprise (as was done in the past) today’s businesses, operating in an interconnected world “flattened” by the Internet, need standard blocks of functionality that fit with each other and can be easily integrated and configured." (article, 2006)
- IBM also uses the LEGO analogy on its Website, but properly credits LEGO corporation at the bottom of the page: "LEGO is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this site." (IBM has a huge legal department that insists on these things.)
Is LEGO block-building a valid analogy for SOA application building? I think it very adequately captures the essence of what SOA is about, though it's understood that SOA building is much more complex. 'Erector set' of course may better describe it, because it involves some nut-and-bolts work rather than simply "snapping" components together.
Perhaps we could pull some definitions together and conclude that the 'enterprise' is a series of interconnected businesses that can be snapped together on demand, like LEGO blocks, to serve specific market needs as they arise.