# From Service Composition to Mashup Editor: A Multiperspective Taxonomy
## 2 Related Concepts
### Service-Oriented Architecture  
SOA is one of the most successful examples of the service-oriented computing paradigm. It offers a straightforward model for developing and deploying applications using Web standards. This architecture utilizes Web services as fundamental building blocks. It establishes a modular software architecture in an open information system, where each business function is represented by a basic service. This architecture enables the representation of an organization's business processes as services and the integration of these services into workflows that enable more complex business processes to be executed. Through a layered view, Figure 2 illustrates how business processes are represented through the system based on basic services in an SOA.  
The SOA reference architecture was first introduced in [12], and then was adopted and integrated by many standardization bodies such as OASIS, OMG, The Open Group ([[http://www.opengroup.org/onlinepubs/7699909399/toc.pdf](http://www.opengroup.org/onlinepubs/7699909399/toc.pdf)]([http://www.opengroup.org/onlinepubs/7699909399/toc.pdf](http://www.opengroup.org/onlinepubs/7699909399/toc.pdf)), accessed on 10 July 2020). It relies on three main actors as illustrated in Figure 3. As mentioned before, the basic concept is a Web service that represents a function encapsulated in a component. This component can then be invoked using a query with one or more input parameters and providing one or more outputs. In order to promote reusability and interoperability, each service should ideally be autonomous and not dependent on other services. Service-oriented architecture's main actors are:  
* _The service provider_ (or a third party mandated by them) is in charge of the service creation, deployment, description, and then publication through the repository (registry) publication interface.
* _The service repository_ hosts the description of services that have been published by the service provider and offers the possibility for clients to seek a specific service among those available and to access service descriptions.
* _The client_ (service consumer) should be able to look for services described in the service repository and select those of interest to them. Based on a service description, a client should be able to invoke this specific service hosted by the service provider.  
Figure 1: Illustration of SOC paradigm through outsourcing example.  
Figure 2: A layered view of SOA concept.  
Then, SOA defines a set of operations and roles as follows (those defined operations and roles are based on standards that are described in Section 4.1.2):  
* The description of the service consists of enumerating the input parameters of the service as well as the output parameters (type of data). The primary format for describing services is WSDL (Web Services Description Language) standardized by W3C.
* The service publication is to publish in a registry (or repository) services available to clients (service consumers).
* Service discovery includes the ability to search for a service among those that have been published. The primary standard used is UDDI (Universal Description Discovery and Integration), standardized by OASIS.
* The invocation consists of the customer query (connection) and interaction with the service. The main protocols used for the invocation of services are SOAP (Simple Object Access Protocol) and REST (Representational State Transfer), presented in Section 4.1.2.  
This section presented the basic concepts of service systems, such as the notion of service and the SOA reference architecture. These concepts are at the base of different standards and research issues. The following section describes and analyzes related existing research from the service composition point of view, which is the main research topic of our work.