What is Service-Oriented Architecture (SOA)?
4-4 minutes
Service-Oriented Architecture is a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It is a style of software design where services are provided to the other components by application components, through a communication protocol over a network.
What is a Service?
The basic principles of service-oriented architecture are independent of vendors, products, and technologies. Different services can be used in conjunction to provide the functionality of a large software application, a principle SOA shares components among modular systems. The service-oriented architecture integrates distributed, separately-maintained and -deployed software components. It is enabled by technologies and standards that facilitate components’ communication and cooperation over a network, especially over an IP network.
A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online. A service has four properties according to one of many definitions of SOA:
- It logically represents a business activity with a specified outcome.
- It is self-contained.
- It is a black box for its consumers.
- It may consist of other underlying services.
Benefits of SOA
SOA provides access to reusable components (i.e. Web services) over a Network (i.e. TCP/IP network), which makes this an important topic to cloud computing going forward. According to W3C, SOA is proven to be beneficial. These are:
- Language Neutral Integration: Regardless of the developing language used, the system offers and invoke services through a common mechanism. Programming language neutralization is one of the key benefits of SOA’s integration approach.
- Component Reuse: Once an organization built an application component, and offered it as a service, the rest of the organization can utilize that service.
- Organizational Agility: SOA defines building blocks of capabilities provided by software and it offers some service(s) that meet some organizational requirements; which can be recombined and integrated rapidly.
- Leveraging Existing System: This is one of the major use of SOA which is to classify elements or functions of existing applications and make them available to the organizations or enterprise.
Elements of SOA
A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently
A service is a self-contained functionality that performs a specific task that consists of 3components.
- The interface defines how a service provider will perform requests from a service consumer
- The contract defines how the service provider and the service consumer should interact
- The implementation is the actual service code itself