Open In App

Service-Oriented Architecture

Service-Oriented Architecture (SOA) is a stage in the evolution of application development and/or integration. It defines a way to make software components reusable using the interfaces. 

Formally, SOA is an architectural approach in which applications make use of services available in the network. In this architecture, services are provided to form applications, through a network call over the internet. It uses common communication standards to speed up and streamline the service integrations in applications. Each service in SOA is a complete business function in itself. The services are published in such a way that it makes it easy for the developers to assemble their apps using those services. Note that SOA is different from microservice architecture.



The different characteristics of SOA are as follows : 
o Provides interoperability between the services. 
o Provides methods for service encapsulation, service discovery, service composition, 
service reusability and service integration. 
o Facilitates QoS (Quality of Services) through service contract based on Service Level 
Agreement (SLA). 
o Provides loosely couples services. 
o Provides location transparency with better scalability and availability. 
o Ease of maintenance with reduced cost of application development and 
deployment.
There are two major roles within Service-oriented Architecture: 

  1. Service provider: The service provider is the maintainer of the service and the organization that makes available one or more services for others to use. To advertise services, the provider can publish them in a registry, together with a service contract that specifies the nature of the service, how to use it, the requirements for the service, and the fees charged.
  2. Service consumer: The service consumer can locate the service metadata in the registry and develop the required client components to bind and use the service.
     



Services might aggregate information and data retrieved from other services or create workflows of services to satisfy the request of a given service consumer. This practice is known as service orchestration Another important interaction pattern is service choreography, which is the coordinated interaction of services without a single point of control. 

Components of SOA: 
 

Guiding Principles of SOA: 

  1. Standardized service contract: Specified through one or more service description documents.
  2. Loose coupling: Services are designed as self-contained components, maintain relationships that minimize dependencies on other services.
  3. Abstraction: A service is completely defined by service contracts and description documents. They hide their logic, which is encapsulated within their implementation.
  4. Reusability: Designed as components, services can be reused more effectively, thus reducing development time and the associated costs.
  5. Autonomy: Services have control over the logic they encapsulate and, from a service consumer point of view, there is no need to know about their implementation.
  6. Discoverability: Services are defined by description documents that constitute supplemental metadata through which they can be effectively discovered. Service discovery provides an effective means for utilizing third-party resources.
  7. Composability: Using services as building blocks, sophisticated and complex operations can be implemented. Service orchestration and choreography provide a solid support for composing services and achieving business goals.

Advantages of SOA: 

Disadvantages of SOA: 

Practical applications of SOA: SOA is used in many ways around us whether it is mentioned or not. 

  1. SOA infrastructure is used by many armies and air forces to deploy situational awareness systems.
  2. SOA is used to improve healthcare delivery.
  3. Nowadays many apps are games and they use inbuilt functions to run. For example, an app might need GPS so it uses the inbuilt GPS functions of the device. This is SOA in mobile solutions.
  4. SOA helps maintain museums a virtualized storage pool for their information and content.
Article Tags :