Wednesday, August 22, 2012

SOA - Definition and Advantages

Note : This article is just summary of my learning of SOA there are much more things to study about the SOA. for more information you can follow SOA here You can consider this article as Interview question and answer type.

Definition : From Wiki :
          "In software engineering, a service-oriented architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services.
          These services are well-defined business functionalities that are built as software components (discrete pieces of code and/or data structures) that can be reused for different purposes."Services are the group of the function that have common requirements and functional goals.

Idea behind the SOA is to create a loosely coupled system where only common part between consumer and publisher of the service is list of service operations , its signature and structure of the parameters.
Client only knows the name of the function , name and type of the parameter, name and type of return parameter and name and type of the exceptions in case of failures. There is no other dependency, not even platform and programming language.

Some Advantages of SOA
  • To create code and functional behavior reusable.
  • Separation of concern - Different sub teams can start parallel work on UI, business logic and data base access.
  • There is no dependency on development platform or programming language so it is highly interpretable.
  • Loosely coupled system.

No comments: