About the definition of SOA
What is the definition of SOA?.
A search on Google shows us millions of entries. Since the beginning of this century, it seems that everyone wants to define what SOA is. Companies, agencies, professionals, blogs …
If you have ever looked for the definition of SOA you will have found a certain chaos: there does not seem to be a consensus, there is no official or standardization institution that has offered the definition of SOA to the industry.
Like you, I have also searched online for the definition of SOA. And I have found all kind of information, also very interesting and recommendable sites.
The good thing about reading so many different definitions of the same thing is that you are gradually finding a stable set of recurring characteristics, in which there does seem to be a certain consensus. And you are discarding everything that does not fit because it is contradictory or because it does not fit with your own experience.
Or by common sense, of which there is a lot in SOA.
And why does there seem to be so much confusion about the definition of SOA?
On the one hand you can find who associates it with the web services. That word “services” is very dangerous, and it is easy to fall into the temptation to add “web”, and establish the association.
On the other hand you can find who considers it a technological architecture around a service bus (ESB), and may mention that it is not necessary to use web services, even if it is most advisable.
There are also the providers of ESBs, SOA suites and so on, which usually define SOA as a kind of perfect mold where their product fits perfectly.
And there are also some consulting firms that pay more attention to the governance part, best practices, under coupling, reuse, etc.
It is clear that each one tells the story as it affects them, or following their own interests. And the rest of us, who are looking for the definition, keep finding many definitions.
However you can have a fantastic SOA suite, perfectly installed and configured, and fail with SOA. You can have the most powerful and versatile ESB in the world, and still you can fail with SOA. You can use web services obsessively, and fail with SOA.
Where I begin to be more in agreement is to put the accent on governance. But I would not stop there, because SOA has the capacity to contribute to an organization much more than what all these definitions seem to suggest. And emphasizing this, seems essential to me.
As I have commented several times in different ways in other posts in this blog, when SOA is allied with BPM and EDA is when it acquires its greatest potential. Because it allows to drive a change of model in the organization much more important than it seems: from the vertical approach by functional area, to the horizontal approach to business processes. From traditional integrations through complex night-time chains linking functional areas to each other in a deferred way, to the immediacy of the flow of information driven by business events.
This multiplies the competitiveness of the organization. And thanks to SOA and its governance, reducing costs drastically. Is there a better investment?
Definition of SOA
Here’s a definition of SOA that I think shows its full value properly.
The consequences of this strategy are, among others:
- Functional and semantic interoperability
- Coexistence between heterogeneous and old technologies, thus protecting the investments made
- Obtaining a decoupled, agile and scalable system map
- Significant reduction of costs in ICT projects
- Independence of technology, which allows to align technology with the business and its value chain
- Autonomy in relation to suppliers and technological changes, reducing the associated risks
- Optimization of business processes
- Increasing the competitiveness and efficiency of the organization, because the flow of information along its value chain occurs in real time, thus significantly reducing time-to-market.
Defining SOA as a concept, model, set of good practices, etc. seems wrong to me, because it shows something very theoretical, far from the real possibility of implanting it.
Defining it as a technology is an obvious mistake. SOA is independent of any technology. Even the ESB (of which we will speak specifically a little later), which are the usual technological tool for SOA.
Associating SOA with the use of web services is a mistake. Using web services does not mean that we are in an SOA strategy. And in turn, an SOA strategy can be fully successful without using a single web service. The business and infrastructure services that make up the SOA services catalog are standard, encapsulated and reusable specifications of the business logic obtained from the analysis of the organization’s business processes. The technological solution with which they are implemented is secondary.
A definition focused on a hardware and software architecture is an error because it puts the emphasis on the most substitutable aspect of SOA (the technological), and distances the focus and therefore distracts the reader from the most important of SOA: governance and its adoption and execution throughout the organization.
And that’s why, for the definition of SOA, we choose the term strategy.
A strategy allows aligning efforts to achieve goals, and by common sense when an organization adopts a strategy it must affect and involve the entire organization. And that is exactly the best scenario possible for SOA.
That is why I consider that assuming SOA as an ICT strategy is the best approach possible for organizations to adopt it in all its dimension, and address all its benefits. Failure to do so may result in improvements, but much lower than the true potential of SOA.