I cannot believe this is happening. I met up with Mark Little at Java One and he told me some people are actually starting to talk about “SOA 2.0”. The German language has the only words for this – “einfach unglaublich”. Roughly translated it means “utterly unbelievable”.
Now Mark is a very smart guy – I work with him on many Web Services standards bodies where he provides great value. I have never seen him get really upset about anything before I saw this blog entry. This should be a testament to how absurd the concept of SOA 2.0 is.
As Mark correctly points out, you cannot take some half baked marketing term and milk it for another few miles by sticking a version number at the end of it. This appears to be nothing more than a scam to keep people coming back for more information. People – they are making it up!!! You are being lead down the wrong path. I can see it in my head:
Analyst: “SOA is the answer to anything. Even if you don’t know the question. Too bad I can’t tell you what it is exactly but if you listen to me, maybe you can do it someday.”
Customer: “Actually, I think I figured it out. It is a model for software architecture.”
Analyst: (Thinks silently – “Oh no – they’re on to me. What should I do??”)
Analyst: ” Very well, I think now you are ready for SOA 2.0”.
Please note I am not just picking on analysts - they are just the easiest target in this case ;-)
On Mark’s blog, he notes that Steve says Web 2.0 it is a mix of EDA and SOA. Bullocks! All SOA is event driven. How can you have a service that does something if there is no notion of an event (trigger) in the architecture? I suppose if you just built it and it sat there doing absolutely nothing but even then it would be event driven since doing nothing is what it should do in the absence of any events. Can anyone provide an example of SOA that is NOT event driven?
A group of people (over 200 members and observers to be precise) got together out of disgust for lack of clarity around SOA and put together a Reference Model to clarify what is meant by the term. Being largely end users, they asked all the right questions. If SOA is architecture, as the name implies, how do we express it as architecture or some architectural artifact? How is it different from other interface based designs? Does it have a right to exist as a term (*read – does it have any substance or is it pure marketing hype)?
These people wrote a Reference Model which defines an architectural paradigm for organizing and using resources under different domains. The Reference Model is not architecture per se, it merely notes the main concepts, at a completely abstract level, for the entities which consistently appear within service oriented domains.
SOA Definitions – There’s enough for one per person.
Given the current Wikipedia definition and the OASIS Reference Model for SOA, it appears that SOA is something we all have probably been doing for a long time. Even Starbucks implements the OASIS Model. Service provides for their Services (they provide caffienated beverages to customers) use visibility (signs, advertising) to let others know the services are available. There is an interaction model (money for coffee) that uses a behavior model (pay first, coffee later) to provide the service. There is a service description (like WSDL for customers) and a fabric they attach to to allow service consumers to interact with the service. WS-* is the same. This really makes me wonder when I see quotes stating things like “over 60% of all companies hope to be doing SOA by 2007”. Even some smart IBM'ers have been skeptical of peoples claims to be “doing SOA”. Given they also have at least established a metric for SOA, they are IMO entitled to talk about it. For someone who starts this sort of a conversation without using a *useful and measure-able” definition of SOA is, cannot be held in high esteem.
The OASIS Reference Model for SOA does not purport to be the one and only true definition of SOA. It is simply a model that is a stick in the mud (or FUD in this case). Even if you do not agree with it, it represents a non-proprietary definition which you can use as a point of reference to state where your definition differs. Someone can easily state “When I say SOA, I differ from the OASIS Reference Model in the following ways….. [insert your POV here]”.
Mark is a smart guy, beware of people selling anything undefined with a 2.0 extension and if your “doing SOA”, be careful and don't forget to use Starbucks products