Service-Oriented Architecture is an example of a software design that features loosely coupled components that provide services to each other. The components use a shared communication protocol, usually over a network. In this design, services mean units of functionality that can be accessed outside of the originating component. An example of a component could be a mapping service that provides a map of the area in response to geographical coordinates.
According to the definition, a service has four properties:
- It is a representation of business activity with a defined outcome.
- It is self-contained.
- It is opaque to its users.
- It may be composed of other services.