SOA 101 - Explaining SOA in simple terms
There are many stalwarts in the world of SOA and the Blogosphere is filled with blogs and articles defining SOA in very simple terms. However, the following is a humble contribution from a semi-developed technical brain.
Let us consider the example of the simple entertainment system in most of the households across the globe - the Television Set and the channels we see in the same. Taking this as an analogy, we can say that the enterprise called “household” needs a service called “entertainment”.
In the world of Enterprise IT, there is plethora of hardware choices that one can make, like mainframes, blade servers etc. with different capabilities based on the RAM, ROM and other peripherals one chooses, from different manufacturers. Likewise in the world of TVs there are many options ranging from Plasma, LCD, CRT based TV and manufactures ranging from ‘Chinese’ assembled to Sony or Samsung.
In the world of Enterprise IT, there are many out-of-the-box applications one can chose from or can have facility to build one from ground up. In the world of TVs we have the option of choosing the channels à la carte to a predefined set of channels given by the Direct-To-Home provider.
However, as long as the software and hardware meet certain requirements, it doesn’t matter which application is running on which hardware. A CRM application can run on mainframe, while a payroll application can run on Wintel based system - provided they adhere to certain standards mutually agreed upon.
Likewise, the channel the household subscribes is not dependant on the type of Television owned by the household. (Now do not say that Discovery HD cannot be rendered properly on a CRT based TV; but can make an impact on Plasma based TV). My whole point here is: *as long as the channels and the TV are built upon the standards of encoding the content, which are agreed upon, any TV can subscribe to any channel. Now we look at the guiding principles of SOA and how it applies to our TV at home. *
Loosely Coupled: Most of the TV sets in the world are manufactured to work with any format of broadcast and rarely does one see a TV set that is manufactured for only one particular channel. As long as the TV set adheres to the “common standard” the TV can be used to watch your favorite program on your favorite channel.
Standards Based: Most of the TV sets are based on the SCART defined reception mechanisms.
Abstracted: One need not know the internal working of the signal transmission, as long as they enjoy watching the program.
Composable: One can route the audio to surround speakers and project the screen on to a different screen/projector based on the needs. They can compose the way in which the channel needs to be viewed.
Modular: Most the components of the TV and the Satellite transmission are in form of modules, which one can replace on need basis. Like the audio booster, can be replaced without affecting the overall functioning of the TV set. This modularity that we see in the consumer electronics is a deliberate one, done with precision by skilled engineers. The right plug is accepted by the right port, which is the true definition of plug-and-play. We in Information Technology, still lag behind in brining this to the software world. In an ideal world, SOA services should be purely plug-and-play leading to instant enterprise mashups with a very low entry barrier.
Last but not the least, the control of the system is in the hands of business, not in hands of IT and can change dynamically based on the market needs. Remote Control of the TV is in hands of users, so to change a channel, one need not call a technician to do it, but a press of a button changes the channel. And also to change the channel from cartoons to live telecast of super-bowl, additional hardware is not needed, nor any installation of additional software; just a flick of a button.
Unlike SOA, where any application can be a consumer and provider at the same time, TV sets are currently only consumers, may be tomorrow there may be some sets, which also act as providers.



Comments
Excellent way of demystifying SOA in simple to understand manner
Posted by: Deepak Pelluru | February 17, 2011 6:41 AM
Thank you Deepak!!
Posted by: Anil Prasad Kurnool
|
February 17, 2011 9:05 AM
Nice – I like the way you’ve taken the TV analogy. For someone from a non-technical background, I think you could’ve simplified it even more. Terms like LCD, CRT, SCART can go over head.
Posted by: Arun Thota | February 18, 2011 4:32 AM
Arun,
A layman may not understand SOA, however in general world, people do understand the difference between an LCD TV and CRT TV. Agreed that SCART may be bit far fetching, but at least it is something like "some consortium or group" for them, though they may not know the full form of the same.
As mentioned, this is an attempt at explaining in simple terms, thanks for the feedback, in my next version will incorporate the suggestions.
~~Anil
Posted by: Anil Prasad Kurnool
|
February 18, 2011 4:48 AM
good way of comparision to understand more in detail ofSOA concepts. SOA can also compare with other realistic situations
Posted by: srinivas | February 18, 2011 7:53 AM
Thank you Srinivas
Posted by: Anil Prasad Kurnool
|
February 18, 2011 7:56 AM
A very good attempt to explain SOA in simple terms to a layman in the IT industry.
Your last part of the blog regarding giving control to the business made me think that the IT industry still needs to do a lot more to give 'real' control to the business.
Posted by: Srinidhi | February 18, 2011 11:25 AM
Nice analogy, but a layman will ask: "So what is new in SOA?". Will wait for the part 2 of this where it will whole analogy will be linked back to actual IT problem :)
Posted by: Kuldeepak Angrish | February 22, 2011 7:14 AM
Kuldeepak,
What is new in SOA?
The concepts/goals of IT like Agility, Reuse, Coarse Grained, Decoupling, Abstractions are there since the day, the first IT System was assembled. SOA is a new architectural model to reach those concepts/goals. So the goals are old, the road taken is new. As in SOA, we use "services" road to achieve that.
Earlier, we used the roads of "Objects", "Functions", "Procedures" etc., to achieve the same goals.
Hope this helps...
Thanks for the suggestion of having a Part - 2,
~~~Anil
Posted by: Anil Prasad Kurnool
|
February 23, 2011 4:50 AM