2.1 Service-oriented architecture (SOA)
SOA is the architectural solution for integrating diverse systems by providing an architectural style that promotes loose coupling and reuse. The software components provide services to other components via a communications protocol, typically over a network. The party offering the service is known as a service provider (a server), and the party invoking the service a service consumer (a client).
A service is some functionality, typically a business process, which is packaged as a reusable software component that is:
- well-defined – a software component with a clearly specified interface and outcome
- self-contained – the implementation of the service is complete and independent of any product, vendor or technology
- a black-box – the implementation of the service is hidden (encapsulated) from the service consumer.
Examples of services might be:
- Currency conversion – a service that converts a sum of money from one currency to another might be used in a wide range of circumstances. It might be used, for example, to convert all the prices on a website store to a customer’s local currency.
- Customer credit checks – a service that provides the credit rating for a given customer.
- Provision of weather data – a service that provides selected weather data for a given geographical area and time period.
- Data storage – a service that allows data to be stored and later retrieved, perhaps with a range of capacities, costs and timescales on offer.