SOA divides functions into distinct units, or services that can be accessible via a network in order to enable users to combine data and re-use it in developed applications. Services and their corresponding consumers interact with each other by passing data in a standard, common format, or by combining an activity from more than one source.
SOA-based solutions are designed with the concept of five horizontal layers:
1. Consumer Interface Layer: GUI for end-users and applications to access service
2. Business Process Layer: choreographed services representing business use-cases
3. Services: services are consolidated together on a company level in-service inventory
4. Service Components: components used to build the services, libraries, interfaces
5. Operational Systems: data models, data repository, technological platforms, etc.
SOA involves loose coupling of services with systems that underlie apps:
Message Queue -> Message Broker -> Integration Framework -> Enterprise Service Bus -> Integration Suite (BPM, MDM)
In addition to five horizontal layers there are also four cross-cutting vertical layers, each of which are applied to and supported by each of the horizontal layers: Integration layer, Quality of service, Informational, Governance.