During our "off air" preamble with Miko Matsumura prior to recording our podcast earlier this week, he mentioned that he likes MWD's focus on "Big SOA".
I'd never thought of what we tell customers about SOA in this way before, but it's true that we try and get people thinking about how SOA can help them transform their organisations in the long term by pushing the boundaries of SOA and not sticking with an overly-technical, bottom-up approach that sees SOA as "EAI with standards". So Miko got me thinking about what, precisely, "Big SOA" might be and how it might be different from something that for the sake of argument we might call "little SOA".
So I came up with a picture:
As the picture shows, I think the difference between "little" and "big" SOA comes down to how you look at the "S" and the "A" of SOA.
In "little SOA" (bottom left of the picture), organisations have a software development centric view of what a "service" is. A service is basically a standalone software component with some kind of remotely addressable invocation interface (let's say a WS-* interface for now). In "little SOA" organisations have a similarly narrow view of what "architecture" is - architecture is basically software design with a corner office.
In "big SOA" (top right of the picture), organisations have a much broader view of what a "service" is. In this broader view a service isn't something you build; it's something that is experienced by a consumer. This view, therefore, is really about realising that delivering a service requires all sorts of IT competencies (design, development, integration, testing, deployment, admin, ops and change management) to be integrated together across the lifecycle of an investment that is packaged up as a service. That's a very different perspective on "service" that is not coincidentally much closer to what a business exec would think of if you asked them what a "service" is. In big SOA organisations also have a broader view of what architecture is about. Architecture isn't an inwardly-focused IT competence that seeks to make global optimisations to portfolios of software development projects. It's an outwardly-focused business-IT communication competence that seeks to further understanding of IT within business, and of business within IT.
I don't have hard quantitative data to back this up, but based on anecdotal evidence of customer conversations my feeling is that the majority of companies considering or starting out with SOA are doing "little SOA".
What do you think?
We are no longer accepting comments against this item. We suggest contacting the author directly.
27th April 2007: 'Don' said:
As a SOA architect in a large Fortune 50 company I do agree with your comment. The problem we have with 'Big SOA' is that it is extremely difficult to define for the Enterprise. Really, what you are defining is now called Business Capability. Big SOA is the service view of what capabilities your organization exposes.
Trying to define capability for a very large organization is of high complexity. The requirements from all users of the services (systems, applications, end-users) can be orthogonal, competing, or somewhat exclusive. The process of analyzing and breaking these down into something the Enterprise can reuse as services is still a very dark art and has yet to work well.
I would love to hear of any SOA initiatives in the largest companies that have been able to break through delivering Big SOA successfully at the Enterprise level.
Reply to Don?