# From Service Composition to Mashup Editor: A Multiperspective Taxonomy
## 5 Mashups Editors: An End-User Services Composition Environment
### General Properties Analysis  
In [91], the authors present an overview of tools and environments for creating Mashup to identify research issues. The authors point out and explain the difference between Mashup development and classic component-based application development. The Mashup targets specific situational needs (typically a use case). To perform this analysis, the authors selected some Mashup creation environments (Yahoo Pipes, Google Mashup Editor, Microsoft Popfly, etc.). They proposed reviewing these tools instantiated in a particular Mashup sort that is the \"housing maps application\". They identified the conceptual and practical features that will help to structure the analysis. At the conceptual level, two paradigms were distinguished: (i) the basic components that will be used to create a Mashup, which could be either data, application logic, or the user interface. This classification results in a layered view of Mashups creation that will include three layers: a  
Figure 12: Interface of the natural language composer. Figure 13: Example of user’s request using Ubiquity. presentation layer (interface), data layer, and functional processes layer. (ii) The second identified paradigm is the composition logic; in other words, how the components are assembled. This operation depends on several parameters, which include: the output type (data, application logic, or interface), the orchestration style (flow-based, event-based, or layout-based), inter-component communication (one-to-one interface, centralized communication media), and the composition execution (instance-based or continuous). At the Mashup creation environment level, several characteristics have been identified and classified here through two concepts: (i) the user interface, which can be browser-based (sometimes plug-ins), and is characterized by an environment type (drag and drop, textual, or hybrid) in order to provide facilities for the user, who could be a Web user, an advanced user, or a programmer. (ii) The execution environment, which is an important parameter to consider since it stands for delivering Mashups for users. It is characterized by the deployment type (hosting: local, Mashup provider, or a third party), the integration operation, which may occur on the server side (engine-based or Web-app-based implementation style) or on the client side (for instance, within the browser via JavaScript), and, finally, the scalability of the execution environment (number of data sources, composition models, or users). This structured analysis allows for a detailed comparison of different Mashup makers according to various criteria. However, unlike [92], this analysis mainly highlights the Mashup environment's technical aspects from the service providers' viewpoint. It helps to identify the technical issues to consider when implementing a Mashup maker for social networking matters (e.g., scalability). Nevertheless, this study does not provide elements that help to identify the requirements that each Mashup framework has to meet to become as user-friendly as possible. In [93], a similar study highlighted that Mashup creation can be separated into several conceptual levels. This has introduced the concept of \"lightweight composition\", which is just another name, from the end-user point of view, for the Mashup creation process. Furthermore, the authors focused on Mashup makers, with a special focus on community-related and social network properties, which they named \"mass collaboration\" features. From the end-user point of view, [PERSON] et al. [92] investigated tools and environments for creating Mashups, which they called \"Mashup makers\". This investigation provided an advanced analysis of the main characteristics and properties provided by these environments from the end-users' point of view. The authors defined a Mashup as \"an end-user driven recombination of Web-based data and functionalities\".