Each day we hear the trumpeting of vendor marketing machines promising a land of milk and honey to those who will simply plonk down some of their hard earned for a SOA license or three! I guess its easy to get caught up in the hype or become skeptical.
Oracle is clearly betting its business on SOA. In a recent article in Infoworld titled "Oracle's Ellison: SOA migration a slow process" Larry Ellison highlights the fact that SOA is an architectural revolution where the ultimate payback is in the 10-20 year timeframe. Jumping on this time-frame as a perceived failing the One Size Doesn't Fit All blog says that this proves that SOA is over-priced, over-promised and overkill. If you Google "SOA" and "skeptic" you will find plenty of other takers.
Who is right? Is the SOA phenomenon going to unravel and we will all look back in a few years time and laugh or will the skeptics be proved wrong?
I think its worth stepping back a minute and thinking about where we are and how we got here. Prior to SOA there was no such thing as a true industry consensus. CORBA, DCE and similar moves all amounted to a group of vendors trying to offset entrenched market power belonging to an IBM or Microsoft. The ideas in these architectures are good and many live on in SOA. However these movements failed. This was due to many reasons such as timing and complexity but ultimately due to the dilemma of trying to sell the idea of an "industry" standard when the largest and most important vendors were not participating.
Around 2000 things started to change. The Internet was in full swing. The idea of a simple set of standards that allowed the web to work in the Person-to-System mode (i.e. Web browser to Web Server) suddenly seemed to hold much promise for System-to-System communications too. The web had a data format (HTML) and protocol (HTTP) and it didn't really matter (that much!) which browser I used [IE, Netscape (remember that?)] or if the the web server application was written in Java, PHP, CGI or anything else it all just worked so easily and the benefits were so great.
Smart people started thinking "why don't we use this same mechanism for System-to-System communications". And so the idea of a Web Service was born - XML data, HTTP protocol. The language you implement the client or the server in - irrelevant. [I still have presentations from my days at BEA that used the term Web 2.0 to describe this System-to-System interoperability! - Maybe we are up to Web 3.0 now, or is it 4.0?] Now as time went by extra things needed to be added: security, context, transactions, addressing... and more. All these things mimicked ideas and techniques that existed in the worlds of DCE and CORBA.
Was SOA better than these in a purely technical sense - maybe, maybe not - its not really important. What is really important is that for the first time the main vendor combatants - Oracle, IBM, Microsoft, SAP, BEA, Tibco, ... agreed and because of this everyone else agreed that SOA was goodness and they would support it. And not just support it with their lips but with their wallets too. In Oracle's case this meant spending billions on the rebuilding of all of the acquisitions we have acquired. SAP is rebuilding its applications around SOA too. Microsoft is committed to SOA, as is IBM. Real dollars are being spent because customers want the interoperability between different vendors software components in the same way they have it in the building industry, the electronics industry and all other mature and responsible industries that truely serve their customers.
Its for this reason mostly that I believe SOA has legs and will last and will be the architectural platform on which future IT will be built. Think about it - if the largest purchases that organisations make - their applications - come as SOBA's (Service Oriented Business Applications) then doesn't that kind of dictate the internal IT architecture to a large degree. Don't forget that one of the key drivers for the success of the Oracle database was its use underneath all the major package application solutions.
Now lets return to the question we started with. Do vendors over-promise or over-sell SOA? Maybe but that happens with everything - its the nature of sales. It doesn't mean the concept is wrong. What if it takes 10-20 years to get to SOA heaven? Maybe that's the price we have to pay for building our IT systems in such a piecemeal, stovepipe fashion. There is a lot of untangling to do before we can start to move forward. One thing is clear though - the longer we procrastinate the more tangled the mess becomes and the greater the day of reckoning.
So some tips:
- Realistic expectations. Don't expect to install "SOA" and have it fix things for "free" that require human neural activity. At the end of the day it is a tool and not a solution. Applying the tool to the business problem creates the solution at the price of some thinking (sometimes quite difficult thinking). The same solution can be crafted with older, proprietary, simpler tools but it will lack openness and future flexibility of SOA.
- Don't try and boil the ocean. Start small. Pick a broken part of the organisation that upon fixing will yield a valuable result. The problem should not be of the "Hello World" variety nor should it be a "Boil the Ocean" type either. The first will be viewed as trivial the second is doomed to failure.
- Don't believe the all hype. Of course vendors will present their wares in the greatest possible light. That's only natural. Beware of over-promise. The corollary to this of course is that as SOA is an architecture and a long term journey the SOA tool you pick is more important than you might think. It needs to have synergy with your current investments like say your applications and this is more important than any current advantage in terms bells and whistles hype. It's also important that your SOA tool vendor will exist into the future. As we have seen in recent times that is not always as clear cut as what you might expect.
Thanks for stopping by.
Saul.