The service-oriented architecture (SOA) consists of three roles: requester, provider, and broker.
A service provider allows access to services, creates a description of a service and publishes it to the service broker.
A service requester is responsible for discovering a service by searching through the service descriptions given by the service broker. A requester is also responsible for binding to services provided by the service provider.
A service broker hosts a registry of service descriptions. It is responsible for linking a requester to a service provider.