Lego Blocks Of A Business Application
Dec 23, 2010
We are continuing on our discussion from an earlier post that different businesses of the same type do have a strong need to strategize on providing differentiated customer experience and/or continuously optimizing their operating cost. If all business logic is built into one shared monolithic business application, such a model does not yield to differentiation. Let us see this with an example.
A famous doctor wants to set up a private clinic. He/she chooses a location in the city, buys real estate and constructs a clinic with facilities that are modern at that time. The doctor employs his or her own trained maintenance, nursing and operating staff. The doctor sets up an in premise clinical lab. The doctor also decides to run his/her own ambulance service. We see a (monolithic) self contained clinic.
Another famous doctor decides on a different approach. This doctor rents a facility, rents maintenance, nursing and operating support from professional service companies that have a great repuation. Similarly, the doctor ties up with the best clinical lab in the city for providing diagnostics services and a well known ambulance service.
Time passes. Some breakthroughs in technology result in availability of better diagnostic apparatus and procedures. Younger, better trained nursing staff are available in the market for lower fees. Ambulance services with world class paramedics support become available.
Which one of the above two models is more flexible and less expensive to change quickly? While the first model does offer some advantages (e.g., the doctor has complete control on the operation of the clinic), the second is more suited to adapt with changing technology and market requirements. The second model allows the doctor to spend more time on his/her core competence - treatment and personalized care. The second approach is service orientation. For service orientation, we break a business into its constituent services and connect them up like lego blocks to realize what we need. Welcome to the Service Oriented Architecture or SOA as it is popularly called.
Let's think of just lego blocks for a minute. Using lego blocks, you can construct a model of a bridge in several different ways. The final functionality of the fully constructed model is that of a bridge. However the pieces can be interconnected differently to enable different features on the bridge. That is differentiation.
The monolithic business application is very similar to the fully self contained clinic described above. However, if you break that application into the component services it uses, then it yields many advantages. You can connect the pieces differently to realize the same business in different ways. If refreshing new technology becomes available for one or more pieces, you can just change those pieces instead of rewriting a monolithic application. Therefore, the Service Oriented Architecture is a key enabler in cloud computing. Come to think of it, using a Service Oriented Architecture the individual service pieces can be provided by different cloud service providers who specialize in that piece to make it most cost competitive while keeping it best in class. Interesting.. isn't it? My grandmother used to exclaim at innovations she experienced during her lifetime.
"Humans are such an ingenious species... What a pity they can't find a cure to death yet!".