- 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 is a function which is well-defined, self-contained and does not depend on the context or state of other services.”
Features of SOA
- 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
Advantages of Service-Oriented Architecture
- 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.
Disadvantages 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.
- 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.