Back then, I was firmly of the opinion that the gleam of SOA was certainly gone, but that it had “reached the beginning of its productive life and if the benefits of SOA are real (and they are) then organizations are likely to start truly realizing the return on their investments.”
Well, it’s been almost ten years, so it seems appropriate to look at whether or not SOA has finally stopped kicking.
From the dearth of commentary on the topic, it would appear so. Microservices and REST have long captured the bulk of our attention, eclipsing SOA and other XML-related architectures for many years now. A quick look at some stats on the tag “SOA” at Stack Overflow shows 1.7k followers and a suspiciously equal number of questions. Which, when compared to the tens of millions of developers in the world that use the site on a daily basis, certainly seems to show a lack of robust life. REST, on the hand, shows an active, vibrant life with more than 53K questions and 13.5K followers. SOAP can only boast 2.9k followers with about 21K questions. Interestingly, a peek at COBOL shows nearly as many followers (1.5k) as SOA, just with fewer questions.
Interestingly, all are active, with questions posted within the last 30 minutes of my queries. Which shows life. Faltering, shaky life for some of the technologies in question, perhaps, but life nonetheless.
But let’s take a step back and remember that SOA is not a language like COBOL, nor is it an interface style like REST or SOAP. It is also not equal to its typically associated standards of SOAP and WSDL. SOA is, as it represents, a service oriented architecture. One that can make use of SOAP or REST, and in some cases, both. Its services can be implemented in COBOL or Go or node.js. SOA isn’t concerned with the implementation details, but rather the design and architecture of the system as a whole.
SOA is primarily about services, and architecting systems based on the interaction of those services. Whether they are implemented using REST or SOAP is no more relevant today than was in 2009. One could argue (and I might) that where “web services” based on SOAP and WSDL were only the penultimate manifestation of SOA, and that microservices and APIs are the ultimate and perhaps ideal form of the concept brought to life. There are few other examples of such a service oriented architecture in existence today, though I would be foolish to discount the possibility of a better one in the future.
In fact, without the concept of “service oriented” anything, cloud would not exist. Its entire premise is based on exposing interfaces between services that enable provisioning and management of, well, services automatically. Whether they are SOAP or REST is really irrelevant, except to the implementers and invokers of said services.
Like COBOL, SOAP and XML may be waning, but they are both still in active use. Even APIs published yesterday tend to support both SOAP and REST (and we are no exception with iControl and iControl REST), given that many enterprises that invested in the architectural shift to SOA when SOAP was the thing to use are as unlikely to re-architect as those who are still actively developing mainframe applications using COBOL. And they are, trust me.
So SOA is very much alive. It is thriving in cloud and within containerized architectures that now put the paradigm into practice using microservices and APIs built on RESTful principles, rather than standardized SOAPy ones.
The death of SOA was (and sometimes still is) greatly exaggerated. Long live SOA.