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 3 components.
- 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
Because the interface of service is separate from its implementation, a service provider can execute a request without the service consumer knowing how it does so; the service consumer only worries about consuming services provided.
SOA: How it Works?
With SOA, this software is organized as a set of software services. The services are supported by an infrastructure that, together with the services, improves information flow within the enterprise and between the enterprise and external enterprises.