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 involves loose coupling of services with systems that underlie applications:
Levels of communication between interacting software in SOA:
- Message Queue
- Message Broker
- Integration Framework
- Enterprise Service Bus
- Integration Suite (BPM, MDM)
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.
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.