From SSKE
SOA can be used as a model at different levels. It can guide the use of IT technologies at a programming level, or, if looking from a middleware perspective, it can guide the way products and open-source software are designed. SOA can also be used at a process level as a model for the integration and management of business processes. Finally, at a business level, it can guide the way enterprises are componentized into business processes, enable them to be reusable and configurable. As such, SOA can represent a consultation model for the high-level transformation of an enterprise in two ways, either by realizing each business process through IT processes, or by integrating SOA-based IT resources to create new business processes in a more efficient way.
Thus, more than a solely architectural model for software development, SOA is a guideline for better managing business processes and enterprises. The operational model proposed by SOA in this sense is triangular, aiming to represent a backbone for the creation, registration, discovery and composition of distributed services. The model identifies three service roles and each entity in the service-oriented architecture can play one (or more) of these three roles:
- the Service provider is the one that provides the services; it consists of a network-addressable entity that accepts and executes requests from consumers, while publishing its services and interface contract to the service registry in order to make the service discoverable;
- the Service requestor (or service consumer) is usually an application, a software module or another service that requires a different service. It initiates the enquiry of the service in the registry, binds to the service and executes its provided function according to the interface contract;
- a Service broker (or service registry) enables the service discovery. It contains a repository of available services and allows for the lookup of service provider interfaces to interested service requestors.
There are three operations in a service-oriented architecture:
- Publish: a service description must be published so that it can be discovered and invoked by a service requestor;
- Discover: a service requestor locates a service by querying the service registry for a service that meets its criteria;
- Bind and invoke: After retrieving the service description, the service requestor proceeds to invoke the service according to the information in the service description.