Why SOA?


In my last blog, I explained about SOA. Now, I am going to explain why we need SOA in addition to all existing technologies. Why is business embracing this technology?
Our IT industry is around 40 years old. When IT industry had started, most of the applications were running on Mainframe. Most of the applications were available through centralized server (Mainframe server). Now IT industry is maturing and it is growing from a centralized infrastructure to a distributed infrastructure. Organizations are transitioning from bus computing to cloud computing. There are many software applications, software platforms and operating systems in there market. Business models are also changing very fast. IT industry is also changing along with business models. IT industry has to support both legacy systems and new systems.
 
SOA is a good solution to make a code work with new system and the legacy system at same time. I am summarizing some of the points, why I feel that an organization should implement SOA.

  1. Modular and loosely coupled  — SOA cuts big monolithic systems and services into small modular services. SOA not only disengages the process from system but it also makes loose couple among systems. If, for instance, a SOA implemented organization wants to implement a new service (Internal service, External service or Cloud based services), it can just plug that service or remove that service from the organization system without touching any existing system.
  2. Business Driven  — Now a days, business changes very fast. Mergers and Acquisitions are very common phenomena. Business needs are also changes frequently. There are different permutations and combination coming in market. IT also has to synchronize with all these business permutations and combination. SOA gives flexibility to work with all these changes with minimal effort. SOA is very close to business as well as the business people. One can define or change business process to address business needs in very small time with minimal effort. In short, organization business can change quickly along with the fast changing market.
  3. Platform IndependentSOA is completely platform independent. SOA service client or consumer can use SOA service without knowing SOA service provider platform, language or operating system. So, one can write SOA service without worrying about who is going to consume the service.
  4. Easy Service enablement  — There was big challenge for any organization to make any change in existing legacy system. SOA provides an easy tool to enable existing monolithic application or legacy mainframe system into a SOA service without knowing anything about those systems. Through SOA tool, one can expose interface(s) from existing system as service and use this service in other applications without touching any existing functionality. 
  5. Low Cost development and maintenanceAs I stated earlier, SOA is modular and loosely coupled. So one can implement new service or modify existing service(s) without touching any other service or application. As a result, it takes very small effort and time to make any change in application that uses SOA. SOA also provides the flexibility, such that service can be reused in any other application. For example, if an organization is using third party service (SAAS) for an application, it can reuse this service in other applications without investing on license, server space or maintenance. In other words, if organization builds a service for one application, it can reuse this service in multiple applications.
  6. Easy learning curveSOA is modular and loosely coupled, as such, it has a very easy learning curve. One can start to work on any service without knowing the whole application. SOA technology is completely based on XML and it is one of the easiest technologies and it is accepted by all applications and software.
  7. Increased operational efficiencyTo reuse existing SOA service, one can create new service by using current system or service. In summary, SOA helps us in creating and delivering a new product quickly.     

What is SOA?


Before hitting my blog, probably you heard a lot of time about the SOA buzzword.
SOA is acronym of Service Oriented Architecture.
So now the first thing which hits your mind is, what is service? How it is related with Architect?
Let me explain all these buzzwords and how they are related with each other?
Since I am related with telecommunication world, I am giving simple example how SOA comes in picture when you are activating any phone device.
Like when you buy new phone, you need to activate its number and phone features.
For activating phone user simply calls the customer care or walks to the shop. But behind the scene it communicates with many systems to activate your phone feature based on your requirement and phone device.  
Like some of the features are setting up user information, phone number, email id with phone SMS etc.
All These features are basically Services for that user which he selects or by default he gets with activation.
Now, this service can communicate with each other by n number of way. These services are not necessary to live in same platform of same system. They could be in different environment, different location or different platform.
Now these entire scenarios make your system more complicated.
   To simplify these entire scenarios SOA (Service Oriented Architect) comes in picture.
Web service and Messaging are backbone of SOA. Web service is platform independent, environment independent and location independent.
 SOA (Service Oriented Architect) describes how to communicate (Synchronous or Asynchronous) different service or feature to activate user phone. SOA also gives flexibility when this service need to be invoked and what would be sequence order of these services.