10/07/07 :: [SOA] SOA Misconceptions [permalink]
For some years I have been fighting two SOA misconceptions:
A) SOA is not new, people were doing SOA 30 years ago
B) Services are like lego blocks
Richard Tews shows a nifty picture of an an Helicopter (a real one) and one built with Legos. I think the picture shows eloquently which one you want to buy if you want to go from point A to point B. The bottom line is that you can't make something useful with Legos unless you have lots of skills and lots of Lego blocks. Ultimately a Lego construction is brittle and can't be changed easily... hum, the reality is that "code and libraries" are like Legos and services are like specialized parts of which you construct real things.
Each time you would have to produce a helicopter, you would have to re-build every individual parts with Legos, no reuse is possible. Services are functional components from which you can rapidly assemble complex solutions, Legos are not, they are a lot closer to lines of code that you painstakingly need to write by the thousands to get anything useful out of it.
Now, did people really do SOA 30 years ago? well I must admit that 30 years ago I was programming on my TI-58 and for sure I could not write services on it, for once is was not connected to anything, so no one but me could reuse my little programs saved on a magnetic strip. Then I moved on to write "code" on my TRS-80. One of the first program I wrote (in 10th Grade) was a program that would display the chemical structure of hydrocarbons based on their composition: C2H2 would display something like this H-C=C-H (imagine three lines instead of =). Anyways, no services there either. My dad worked in a bank where they had an IBM 390. That was a lot more impressive that the 360 he showed me when I was 5 years old, but I never heard him talking about "services". They were lucky to never let me touch those things. So my point here is that I was not in the position to know if people were doing SOA 30 years ago, but it sure does not look like it.
For me SOA is about constructing network accessible, reusable IT assets (NARITAs) which can be composed into solutions. I am sure that there was a few network accessible, reusable IT assets 30 years ago (a very few since there was not that much network back then). However, I would like to argue that the technologies of SOA such as XML, XML Schema, SOAP (and HTTP), WSDL, WS-BPEL, SCA, WS-Security that enable us to build true NARITAs simply did not exist 30 or even 10 years ago. SOA as we know it today started in early 1998 with XML and XML-RPC. For me the SOA pioneer is a company called BowStreet that was based in Portsmouth, NH and which was bought by IBM 2 years ago. Its CTO Andy Roberts had build by 1998 a composite application framework using XML and XSLT. They were so ahead of their time that nobody understood what they were doing (including me).
So please, no more Lego analogies and no more "my grandpa was doing SOA too".