Some thoughts on Services-orientated Architecture (SOA)
Context: I’m currently in discussion with a number of companies that are involved with SOA-vending & -consulting. As a result, I’ve been studying up a little on this market and hope to learn more by writing about it. Note: Since I know, judging by the response to other articles on enterprise-software, this isn’t exactly the most sexy of topics, I expect the number of comments to be minimal.
Jeremy has already written about this topic (primarily in terms of Software-as-a-Service (Saas) and Software + Service (S+S)) before (here, here, and especially here), so I won’t go very deeply into it, but SOA is roughly defined as:
“guidelines that allow software developers to design systems in stand-alone chunks of computer code, each specifying the critical outcomes, performance metrics, and interfaces between a discrete activity and other services.” (Src: HBR, June 2008)
If that’s a little abstract, I see it as a selling you a ticket to Lego-land, where you can play with legos all you like, those lego-blocks representing individual applications that can be used by businesses through a web (SaaS) or hybrid (Software+Service) interface, and Lego-land being the SOA-system that integrates all of them for you. This is opposed to the historical approach of buying a lego-box, which you eventually replace by another and another (side-prediction: we will eventually see Lego-world online).
SOA’s value-proposition
While traditionally it has been so that in order to compete in a technological world, you have to be technological, the idea of SOA is to remove that element, instead allowing individuals and businesses to focus on what they do best. I, personally, like that very much.
Other, more measurable advantages are that it is dramatically more cost-efficient. If you imagine that 5+ years ago, every company had to either invest into a powerful wide-area network (WAN) to be able to centralise IT-services, or replicate islands of IT-systems for each business-location, SOA removes that idea entirely, using a freely available infrastructure, the internet, and removing the need to build IT anywhere, instead paying-as-you-go for singular services that an external provider hosts and distributes. Added to this is the idea that performance now becomes accountable, in the sense that it is covered by contracts (e.g. QoS or SLA), something that was much harder to do with a permanently employed IT-staff.
With all these advantages and several more, it is no surprise that, in 2007, over 50% of mission-critical IT-projects were estimated to be SOA-based, a figure which is believed to increase to 80% in 2010 (these figures are from Gartner and may be US-only).
SOA’s hurdles
While this sounds pretty great, anytime you’re talking about system-wide change, you have to consider that this will meet resistance and involve a great many stakeholders, i.e. take a lot of time. And the question is here, who will you talk to as an SOA-vendor? Will it be the business-side of your client, as you are selling easy-to-understand lego-blocks, or will it be the technology-side, as you are selling technology? This is a serious question, so please answer it in the comments!
Added to this, a SOA-deployment is a strategic issue for your customer, meaning that your selling-proposition will also need to include the option of strategic support, aka consulting-services. This means that technology-only SOA-providers (vendors) will likely have to work with third-party consultants that pick-and-choose the best SOA-package for their client.
Related to this, the lego-like quality of SOA, which promises values like agility, flexibility, price, and reuse, and several more, all very important in this recession-prone time, also mean that someone can quite easily replace your service with someone else’s legos. Arguably this is much less the case if you provide an architectural framework and focus on building ecosystems (create lock-ins). But that is easier said than done, and as such this is a field dominated by few big players that buy up smaller ones.
Some more things, which I haven’t researched, are the degree that open source is a factor/issue here, and different revenue-models.
Grasping the paradigm-change
On the customer-side, there’s two ways of seeing this trend. On the one hand, extreme efficiencies, which also follows Nick Carr’s view that IT is no longer a competitive advantage. On the other hand, you’re giving away a lot of responsibility, which can be bad in two ways.
One, you’re giving away a lot of power to an industry, which will continue to consolidate. It’s something that may not be a problem now, but may become one.
Two, delegating a problem does not necessarily solve it. Taking the retail-industry, the biggest problem here is logistical inefficiencies, caused by delays, unnecessary replication of processes, or otherwise. Here, SOA, as long as it spans across the value-chain of manufacturers-transport-retailers-customer, is clearly a good thing. But it still requires a solid understanding of how IT does and can help your supply chain reap better results, something an independent SOA-vendor may not do as well. My opinion here is purely hypothetical, but it may be worth investigating how the masters of retail (Wal-Mart, Tesco, Carrefour, etc.) solve it. And if this is a problem, I imagine it is elsewhere too.
The SOA playing field
This post is getting a little long, so I’ll briefly go into this. Following Forrester-graphs show the players in the integrating corner of things (consultants) and, on the right, the vendors (also note the time-difference (the second one is Q4 2007) and region). You can find the originals here and here.

Clearly this industry is very layered, with some offering the complete package, including strategic assistance, and others providing either the SOA or a part of it (SaaS or similar). There is a lot of movement in this field with players buying each other out or moving into related industries, either on the hardware or software-side.
Final thoughts
Because I’m not a soft-/web-ware guy, I’m still very much undecided whether to head in the software-only direction myself, though I see much merit for an integrated business-consulting + software-deployment approach, and I also prefer selling Lego-blocks to rubber-trees. Feel free to convince me of your points of view.
All of this was initial thinking of course, and as such I’m happy to hear if you have anything to add or if I made some obvious mistakes. Again, considering the relative unsexiness of this area, I don’t expect too much
Vincent











I really like the Lego PC. Where did you get the picture from?
I’m kind of insulted, Smooth. You like a picture of a toy better than a picture of a whole industry? I knew this topic was unsexy, but this is a new low for me.
Do a search for “Lego” and “computer” in Google’s image search, and I’m sure your dream PC will be revealed on page 2.
Vincent,
This objective of allowing individuals and businesses to focus on what they do best has been the driving force of the IT industry for the last decade or so. But then you end up with some type of technology monsters such as EJB which after being the trendiest software component in the early 00s is now the favorite subjects of jokes for enterprise geeks. SOA is about the same.
Initially IT Architects were dreaming of using Web Services to be able to publish services on the web and then people would locate them (thanks to a dictionnary) use it and pay for it. This business model coming out of fantaisy land soon died. Because of SOA which added a lot of complexity (SOAP Protocol) to something initially dead simple (Remote Procedure Call in XML format over HTTP.
So this initial business model soon died and SOA scope has been narrowed down to enterpise IT systems integration.
But still, enterprise SOA projects are still too complicated : only 1 project out of 5 succeed (http://www.infoq.com/news/2008/07/Only1).
What is currently happening is IT people moving away from SOA (bloated, heavy, complex) and going a more webby approach for interoperability, using Resources Oriented Architecture with REST (Representional State Transfer) paradigm. Have a look to this excellent presentation by Martin Fowler and Jim Weeb, the first being a worldwide famous software architecture guru : http://www.infoq.com/presentations/soa-without-esb
C.
Cecil, I love you and want to have your baby!
No, just kidding, but what a great comment!
So, I checked out the presentation, thanks. I have to say that I’m a little confused. I always thought that the Services in SOA meant web-services (just like in SaaS and S+S), so I assumed that SOA was meant to use the open standards of the web. Actually, I read several articles where that same assumption was vocalised. So is that REST now???
I have an interview tomorrow and will also ask about this.
You are right Vincent, Services is the short of Web Services.
Behind the Enterprise firewall these web services are still used to have heterogeneous systems (eg mainframe, ERP, Web Apps) in the same company to communicate in real time.
historically, the first tool used for this interoperability has been ETL : Extract Transfer & Load. This is just server software extracting data one system (usually the DB) -eg Web App-, transform it to be compliant and inject it it into the DB of another (eg Mainframe). However this is heavy and most of the time not real time.
Then came EAI (Enterprise Application Integration) with big products such as Tibco, WebMethods, SeeBeyond. This was complex, extremely expensive and proprietary.
Then came SOA with standards (SOAP, XML etc …) and the idea was to have all different systems to encapsulate their services into a SOA enveloppe so that they can communicate in real time together.
Ultimately the idea is to use an ESB (Enterprise Service Bus) to orchestrate all the services, using BPL (Business Process Langage) for Business Analyst (i.e non technical resources) to be able to code business rules at a very high and nonb technical level.
This sounds great but it’s not so easy : When I had this ESB training the other day, the instructor could not tell us about any successful productive implementation of an ESB. And he even was skeptical about SOA saying that this services should remain very basics.
Software as a Service on a web is a different thing though. The API is easier and there is no such heavy protocol as SOAP for instance.
OK, thanks for the clarification. It’s not surprising that SOA and previous implementations have such a bad reputation, but I find it hard to imagine otherwise, as you’re essentially talking about writing a complex tool for a complex organisation. Even the “low-risk, low-expense, incremental” approach that was suggested in the presentation, will eventually reach a scale where small errors can have big consequences.
The way I also understand it, there isn’t a clear standard for SOA yet, so technically a SOA-company could just buy up a lot of SaaS-applications, bundle them together and call it SOA, no? From a recent interview I had, it seemed to me that this is exactly what some companies are doing.
Looks like I’ll have a number of topics to discuss tomorrow. I’ll report back if something interesting comes out of it.
At my previous job, they had an ESB, but the more I looked at it, the more it looked like just as a middle-man between applications talking striclty with each other over bloated XML. In other words, the applications didn’t really expose any services to “public”, but strictly defined things between two strictly defined applications.
At the time I thought I just didn’t understand ESB and SOA, but now I think no-one has really figured how to do it in a real enterprise enviroment with all the complexities and legacy things involved.
To me, SOA looks like the best thing ever to consultants. The one big advantage of selling SOA is that it involves lots of custom work, aka middleware. In more and more commoditized world of IT, that’s a gold mine.
I remember reading a Forrester paper on some successful (three or four) SOA projects. One was the Australian DMV and the other a Swiss airport, if my memory works. The other cases mentioned in the paper, at least to my mind, weren’t “real” SOA things anyway.
[...] post comes out from different experiences. One being reading Vincent thoughts on the topic on TechItEasy. The other being this excellent and lively presentation by Jim Webb and [...]