Service-Oriented Architecture

  • Service-Oriented Architecture (SOA) is an architectural pattern which enables application functionality to be provided as a set of services.
  • For effective SOA, first we need a clear understanding about the term service.
Service
“Service is a function which is well-defined, self-contained and does not depend on the context or state of other services.”

service oriented architecture

  • In SOA, services are provided to the other components by application components through a communication protocol over a network.
  • The SOAP (Simple Object Access Protocol) protocol delivers request and responses between services.
  • It makes software application easier for software components to communicate and cooperate over the network without requiring any human interaction.
  • It allows user to combine large chunks of functionality to form the applications.
  • It is a valid approach to solve many of the architectural problems and is a best practice to fix broken architectures
Features of SOA
  • Services can be reusable by multiple processes.
  • It performs on any platform (Platform independent) which supports the service transport and interface requirement.
  • Services can be accessed via universal resource locators.
  • Services are standard-based which are built, consumed and described using WSDL(Web Services Definition Language) which provides information about the services.
  • Each service has a quality of service associated with it such as authentication, authorization, reliable messaging and policies.
Advantages of Service-Oriented Architecture
  • Service-Oriented Architecture reduces cost and development time by reusing existing systems.
  • It improves scalability and flexibility.
  • This architecture provides service globally.
  • Each service is independent and can be replaced or updated without interrupting applications, so the services are loosely coupled.
Disadvantages of Service-Oriented Architecture
  • Service-Oriented Architecture is not suitable for GUI applications and functionalities.
  • The applications become more complex while using Service-Oriented architecture because it requires heavy data exchange.
  • It has security issues and requires high availability.