SOA – Service-Oriented Architecture
is an architectural style that allows different software systems to communicate and interact with each other as services.
- Commonly composed of the following components:
- Service Provider – A web service, application, with a service interface
- Service Registry – To discover the services
- Service Bus – It routes messages between different components: Protocol transformation, message transformation, message routing, etc.
- Business Process Execution Engine – It coordinates the execution of various services.
- Enterprise Service Bus (ESB) – Provides integration with legacy systems, data transformation, mediation, security enforcement, etc.
- Orchestration Engine – Controls the flow of execution in complex scenarios
- Pros: scalability, modularity, fault tolerance
- Cons: deployment, cost, simplicity, testability, performance, reliability