From Service Composition to Mashup Editor: A Multiperspective Taxonomy
1. Introduction and Methodology
Service-oriented computing and particularly service composition have been fairly fruitful research topics. Research contributions made in this area vary according to addressed issues and approaches. These contributions may include data engineering techniques for service description languages, protocols for publications and discovery operations, the optimization of services selection and scheduling, and the deployment and monitoring of composed services. This paper aims to present a structured understating of these contributions with the intent to define a comprehensive classification of different Web service composition approaches. Therefore, this paper reviews and analyzes the concepts and existing works related to the composition of Web services from the perspective of the end-user.
The purpose of this research is to propose a taxonomy framework for Web service composition approaches from a user perspective. A taxonomy framework provides a way to organize and categorize existing approaches to Web service composition from the user perspective. This makes it easier to understand the current state of research in this area and identify gaps in the literature. The framework is based on an analysis of existing academic research that classifies Web service composition and is comprehensive, consistent, and easy to understand. The purpose of this research is to provide a comprehensive understanding of the different approaches to composing Web services and how they relate to each other by providing a clear and consistent taxonomy framework. It helps researchers, practitioners, and developers choose the Web service composition approach that best suits their particular needs.
In this regard, we used a variety of methods to select relevant literature for study, including (i) searching and identifying relevant articles and papers containing specific keywords using online databases such as Google Scholar, IEEE Xplore, and ACM Digital Library; (ii) checking the references cited in existing articles and works related to Web service composition; (iii) identifying works written by prominent researchers; and (iv) searching for articles related to specific conferences, journals, and workshop proceedings. Once relevant literature was identified, we analyzed existing research to understand the current state of research in the field, and identify gaps in the literature, particularly the need for a structured understanding of service composition approaches.
Our main comparison criterion for Web service composition approaches was the end-user perspective. The end-user perspective refers to how easy it is for the end-users to use and understand the Web service composition approach. This includes aspects such as the usability of the user interface, the simplicity of the composition process, and the ease of understanding the results of the composition.
Incorporating the end-user perspective as a comparison criterion can help to ensure that the Web service composition approach is user-friendly and easy to use, which can be beneficial for both the end-users and the developers. For example, an approach that is easy for the end-users to use and understand is more likely to be adopted and used in practice. Additionally, when the end-users can easily understand the results of the composition, they can make better decisions based on the information provided.
It is important to note that the end-user perspective is to be considered, along with other criteria such as software engineering, services performance, and maintainability, as an end-user friendly approach that is not secure or has a poor performance that will not be useful in practice.
We have therefore identified many perspectives of Web service composition. Accordingly, it is possible to address the service composition from the software engineering perspective, which, here, is called the system’s perspective. It includes semantic, formal, or data engineering techniques and technologies used to address the problem at hand. Another perspective is engendered from the user’s point of view. Basically, the user has to define the composition logic in a more or less explicit manner based on the provided tools. In this scope, automatic, manual, or semi-automatic approaches are identified. The rest of the paper details each of these approaches in order to propose an exhaustive taxonomy that would help to better understand research challenges and contributions from different perspectives.
In the remainder of this paper, we first review the concept of Web service composition through the basics of Web services and service-oriented architecture (SOA), and then provide some classifications based on different criteria. Additionally, we present a detailed review of the composition tools of Web services by the end-user, particularly Mashups. In that regard, we analyze the few existing mechanisms of assistance and support to end-users and point out the lack of such features. Finally, we conclude by summarizing the main ideas that emerge from the overall analysis.
2. Related Concepts
2.1. Web Services
“A service is an intangible provision, composable, expressed in a perceptible manner, which, in a predetermined operating condition, is a source of value for the consumer and the supplier (service provider)”.
The next section introduces the SOA concept that relies on Web services as the basic building blocks in a structured architecture.
2.2. Service-Oriented Computing
2.3. Service-Oriented Architecture
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.
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.
3. Service Composition
In this context, using the services composition approach can offer a good opportunity to fix those issues. The purpose of service composition is the reuse of existing services to create new ones. This optimizes the development cycle and deployment of innovative services. Another important goal of services composition is to provide the ability to customize services according to end-user’s preferences. This approach provides end-users with personalized and user-centric services. With the generalization of the Internet, we are witnessing, in recent years, the evolution of the service composition paradigm, initially dedicated to a restricted audience of IT specialists for business application integration (software architects, developers, etc.), toward a broader audience of Web users.
3.1. Service Composition’s Research Landscape
This subsection covers the service description, publication, and discovery; the composition description and optimization, including service interoperability; and finally the composed service deployment and monitoring.
3.1.1. The Description of Services
It is clear that the service description plays an important role in the composition process. A well-described service increases the relevance of its selection as well as the consistency (correctness) of the resulting composition pattern. Indeed, a service is represented by its description, which corresponds to the functional and non-functional priorities.
In addition, all proposed protocols and languages (described later) were designed from the perspective of information systems and are intended for experienced users. The semantic description, especially tagging techniques, contributes not only to a better interpretation by machines through reasoning but to bridging the gap between service description technologies and end-users as well.
3.1.2. The Publication and Discovery of Services
Service publication and discovery are two important operations for the composition process and particularly for the selection of the most relevant service. The publishing operation essentially raises issues of data and information engineering summarized in database technologies and access means to populate those databases with services description. Service discovery, based on those database technologies, has to provide not only access means but should also select the service descriptions that best fit the selection criteria (the request). This actually constitutes an optimization problem. From the perspective of SOA specifications, UDDI technology with its variants is the reference. Semantic technologies are also an alternative for optimizing the discovery and selection services in the composition process.
3.1.3. The Efficiency of the Composition Process
The heart of the service composition is the selection and scheduling of services to match the description of the service that we would like to compose. This description should provide the hints needed to form the composite service schema. Several approaches and technologies are possible. For this purpose, many standards have been proposed to explicitly define the description of a composition pattern, namely BPEL4WS, BPML, and WSCI. Less explicit tools, based either on textual or graphical interfaces, have been proposed to allow for the definition of the composed service logic. For the automatic approach, the logic of composition is formed based on information taken from the user context.
3.1.4. Interoperability, Execution, and Monitoring of Composite Services
4. Taxonomy for Services Composition
In this section, we provide a detailed taxonomy of different existing approaches for service composition from both system and user perspectives. On the one hand, service composition is organized from the system perspective based on the following identified approaches: formal, structured, or semantic. On the other hand, service composition is categorized from the user perspective based on the end-user’s involvement (i.e., manual, automatic, or semi-automatic approaches).
4.1. System Perspective
In contrast to the user’s perspective, the system perspective provides details about the techniques and mechanisms used to achieve service composition in terms of service publication/discovery, scheduling, and deployment. Concerning this perspective, we identified three non-exclusive approaches: the Formal approach, which provides the tools and formalisms that allow, for example, the formal validation or verification of a number of predefined properties; the Structural approach, which looks to establish data structures and access methods in formal operational protocols and languages that are often used by other approaches; the Semantic approach, which brings semantics to improve and optimize the composition’s operations mentioned above; and, finally, the domain-specific service composition, such as a Grid Service and Geographical Information System.
4.1.1. Formal Approach
Formal models can be used for the automatic or manual modeling of composed services. The formal description techniques allow for the use of methods and tools to make the development cycle of services more reliable, faster, and cheaper. Formalisms for specifying these services are based on precise and mathematically based syntaxes and semantics. Developing models will apply methods and tools in three major phases of the development lifecycle of the service: (i) the verification, (ii) the automatic or semi-automatic code generation, and (iii) the generation of the test benches.
The Specification and Description Language (SDL)
The ECharts Formalism
In summary, this approach offers formal methods to verify or test software components (services) automatically, which are necessary for the composition of services. However, these formalisms are too specific and require high technical and mathematical skills, and therefore cannot be directly used by end-users, but can intervene at underlying layers to ensure some required properties (such as security properties).
4.1.2. Structural Approach (Software Engineering Approach)
Web Services Description Language (WSDL)
The Universal Description Discovery and Integration (UDDI)
Simple Object Access Protocol (SOAP)
Representational State Transfer (REST)
Business Process Execution Language (BPEL)
BPEL is a complete and open standard with many supporting engines. BPEL was quickly accepted by the industry and is now the dominant technology in the field of Web service composition. It takes the form of an XML file readable in the engines of business process management. It drives the execution of business processes (workflow). The BPEL file therefore concerns matters such as processing data, sending messages, or calling a function. There are two types of BPEL processes:
An abstract, which specifies the exchange of messages between the various parties without specifying the internal behavior of these parties;
An executable process, which specifies the execution order of activities. Each activity represents a given process (a Web service) involved in the main composition script.
Services Composition Using BPEL
The ability to integrate or compose existing services into new services is the most important functionality provided by SOAs. The service composition must be created taking into account the maintenance of services that rely on other services. The SOA offers a homogeneous environment for the composition in such a way that its components are described in the same protocol and communicate with the same standards for exchanging messages. The composition of services is achieved through a framework that consists of three parts:
Models of composition and language: The composition of services means the creation of a workflow that defines the order in which the services are invoked, how the data are transmitted, and how the logic is implemented. A composition model provides a language in which the composite service workflow has to be written.
A development environment: This development environment consists of an editor for the language of composition, such as a programming language integrated development environment (IDE).
A runtime environment: A composition of services is executed by creating instances of the composition script and deploying them in an execution environment (application servers).
There are two distinct ways to conceive a composition of services, i.e., the choreography and orchestration:
Choreography: The choreography of services describes the collaboration between services to accomplish a given goal. The control logic for a choreography is distributed. Each service knows what to perform and which service to contact. Choreography languages allow for a description of protocols that the participants have to follow. In , two main choreography approaches were defined: (1) the global model, which describes a protocol from a global view of the messages exchanged by all parties, and (2) the interaction model, in which each service describes its temporal and logical dependencies among the exchanged messages, which is similar to defining a kind of interface. WS-CDL (WS Choreography Description Language) adopts the global model, whereas WSCI and the abstract BPEL process are based on the interaction model.
Orchestration: The orchestration of services allows for a definition of the sequence of services according to a predefined schema and runs based on predefined “orchestration scripts”. These scripts are often represented by business processes or workflows inside or outside an organization (enterprise). They describe the interactions between applications by identifying the messages and by connecting the logic and invocation sequences. Orchestration describes the way in which Web services can interact together using messages, including the business logic and execution order. These could include different services from different organizations, and the result could be a model of a long-term transactional and multi-stage process.
An important difference between orchestration and choreography is that the orchestration is centralized, i.e., the process is under control from the business perspective. However, the choreography provides a comprehensive and collaborative coordination. It describes the role of each participant involved in the application.
Other Related Technologies
Some of the recent technologies in software engineering, such as microservices and containers, can be used in Web service composition in different ways. They provide different ways to create, compose, and manage Web services by allowing developers to create more flexible and scalable solutions. These technologies can improve the maintainability of the solutions and can facilitate the deployment and scaling of the solutions. In particular, microservices are a software architectural style that structures an application as a collection of small, loosely coupled services. Web service composition can be implemented using microservices by breaking down a complex application into smaller, independent services that can be composed together to form the desired functionality. On the other hand, containers are a way to package and deploy software applications. Web service composition can be implemented using containers by packaging each service in a container and then composing the services together by connecting the containers. This allows for an easier deployment, scaling, and management of the services.
4.1.3. Semantic Approach
Semantic Web technologies are meant to enable greater access to services on the Web. Users and software should be able to discover, invoke, compose, and monitor Web resources offering particular services and having particular properties, and should be able to do so with a high degree of automation. A number of standards and technologies were introduced in the world of semantic Web services. Hereafter, we describe two main ones.
Web Ontology Language for Service (OWL-S)
Web Service Modeling Ontology (WSMO)
4.1.4. Horizontal vs. Vertical Compositions
4.1.5. Domain-Specific Approaches
Grid Service for Web Service Composition
A grid service is a type of Web service that allows for the sharing of resources, such as computational power or data storage, across a network of computers. Grid services are relevant to Web service composition because they provide a way to aggregate the capabilities of multiple Web services into a single, cohesive system. By utilizing grid services, developers can create complex, distributed systems that are able to leverage the resources of multiple machines to perform tasks that would be infeasible for a single machine to accomplish alone. Additionally, grid services can be used to manage and orchestrate the interactions between multiple Web services in a composite application, making it easier to create and maintain large-scale, distributed systems.
Geographic Information System (GIS) for Web Service Composition
Most of the described work considers Web services from a system perspective. However, in recent years, end-users have become the focus of various technologies, including Web services composition, as explained in the next section.
4.2. User Perspective
4.2.1. Manual Web Services Composition
The first approach is based on manually composing multiple services by the user. This operation must be entirely and manually performed by the end-user. Formal languages such as SDL can be used. Alternatively, textual editors and GUI-based tools that are based on technical protocols and formalisms such as BPEL-based IDEs can also be used. Needless to say, both alternatives require a high level of technical knowledge and experience that the user does not have. Because the majority of end-users are not programmers, this approach is highly criticized for requiring an unrealistic technical level on the end-users, which dramatically limits its use.
4.2.2. Automatic Web Services Composition
The second approach is the automatic services composition. This approach aims at automatically building composite services that are in response to a user context or request. Except for the request, the end-user does not provide any more information about the composition process. Below, we cite some works that fall into the category of the automatic approach and summarize the overall landscape of contributions made in this area. The most common technique used in this approach is based on the so-called goal-driven service composition, particularly the inputs/outputs matching. In other terms, from a defined goal definition (set by the user and/or their context), this technique uses the matching between output and input interfaces (data types) in order to define the most likely pair of services that can be composed together. Step by step, this operation aims to build the composition pattern that matches the defined goal.
4.2.3. Semi-Automatic Web Service Composition
5. Mashups Editors: An End-User Services Composition Environment
5.1. Mashup and Mashup Creation Environment
5.2. Overview of Major Mashup Creation Environment
Mashup creation platforms support the user in integrating and orchestrating services for their final composite application and provide an abstract layer that hides the complexity of the underlying process model (e.g., BPEL). The growing visual programming paradigm (graphical) of Mashups is the most common way to meet those requirements. Other methods are the description of the processes via a naturally readable rule language, occasionally called a controlled natural language (CNL), or the implementation of a timeline that describes the user interaction on the basis of their chronological appearance. In order to come to a comprehensive solution for the modeling process, several other aspects, such as event-handling, dependencies between user interaction, or message flows, have to be considered.
5.2.1. Graphical Editor
The graphical Mashups editor tool allows an end-user to create simple Mashups by using the graphical user interface for drawing the workflow describing the logic of the composite service. The end-user can simply drag/drop boxes representing the available building blocks (representing Web services) and connect them to indicate the flow dependencies.
Open Mashups Studio
5.2.2. Natural Language Editor
Natural Language Composer
Based on the natural language annotation of services in the system, the parsing of sentences is generally recursive in order to analyze and then find a possible candidate among the list of existing annotated services;
The interpretation graph is constructed (in an intermediate formalism);
Based on the interpretation graph, the system generates the orchestration script in order to create a sequence of service calls, and the arguments are appropriately assigned;
The script is deployed into a given execution technology.
5.3. General Properties Analysis
5.4. End-User Support
To provide direct assistance to end-users, most Mashup editors tend to ease the end-user intervention in the process of composition. This intervention can take place at three levels:
Pre-composition support: by facilitating the selection of services by features that are either service categorization, textual, or contextual selection.
Post-composition support: by providing the ability to tag or rate basic services. This information is used later on by recommendation systems (collaborative filtering or content-based) at the pre-composition phase in order to allow for the automatic selection of services that fit with users’ preferences.
In-composition support (at the services scheduling phase): for this case, no direct features have been identified in the current Mashup editors that help end-users in selecting services when they are creating a composite service (connecting services).
5.5. Other Related Technologies
Some of the recent technologies in software engineering such as Low-code can be related to Web service composition and mashups in different ways. Low-code is a development approach that allows developers to create complex applications with minimal coding. This can be used in Web service composition by allowing developers to easily create and compose Web services using visual drag-and-drop interfaces and pre-built components, rather than writing code from scratch. Low-code platforms often include a visual development environment similar to Mashups, where developers can drag and drop pre-built components, such as Web services, forms, and user interface elements, to create a functional application. They also include pre-built connectors and integrations with other systems, such as databases and third-party services, to allow developers to quickly and easily connect to other systems and services.
Low-code and Mashups are both related to Web service composition, but they have some key differences. A Mashup is a Web application that combines data or functionality from multiple sources into a single, integrated experience. Mashups can be created by combining Web services, APIs, and other data sources together, usually by writing code to connect and integrate them. In our context, we refer to Mashups that do not require writing code to create the integration between different services. On the other hand, low-code is a development approach that allows developers to create complex applications with minimal coding. It uses visual drag-and-drop interfaces, pre-built components, and other abstraction layers to allow developers to create applications without having to write extensive amounts of code. Low-code platforms often include a visual development environment, where developers can drag and drop pre-built components, such as Web services, forms, and user interface elements, to create a functional application.
6. Discussion and Conclusions
We presented in this paper a literature review of Web service composition and end-user oriented composition environments (Mashup editors). In this regard, we discussed the concepts of service, SOA, Web services composition, and its key concepts. We classified the different approaches to service composition either from system or end-user perspectives.
In particular, we pointed out the concepts of SOC and composition of services, which were originally developed for enterprise application integration, and have recently evolved for end-users usage, typically Web users. These end-users are characterized by limited technical and programming skills, but are nevertheless producing Web content. In fact, in the Web 2.0 context, one of the interesting properties of end-users is their ability to produce or participate in producing content. Web 2.0 has brought a set of different technologies dedicated to end-users (even in an enterprise context), so it has become very easy for such users to publish or annotate resources (user-generated content (UGC)). Furthermore, these end-users are tying new relationships based on interests to the generated content, and stay in touch with their social relatives through online social networks and collaborative environments. Consequently, the composition of services should currently be driven by end-user needs, as it is encouraged by online environments of sharing and social interactions through the Internet.
Mashup editors have emerged as an answer to this evolution in order to overcome the technical complexity that the end-users are facing and to ease the composition process for them. In fact, through this Mashup concept, existing works have provided (i) abstraction features such as visual workflow language, (ii) community features such as rating and tagging, and (iii) service selection facilities such as text-based search. Even if these features are absolutely necessary, we hardly believe that they are sufficient. In particular, during the composition process itself, and as we have pointed out previously, existing features do not currently provide any direct support to end-users. In fact, the users have to manually select and connect all services in order to compose them according to specific requirements and the composition logic. This phase of the composition represents a relatively painful phase of the process due to the lack of support.
Regarding the evolution of the Web from Web 1.0 to Web 4.0, Web 1.0 was about connecting to the Internet and retrieving information, Web 2.0 was the advent of social media and user-generated content, Web 3.0 was the advent of the semantic Web, where computers generate and think about new information instead of humans, and Web 4.0 is the Internet of Things, or, as we call it, the intelligently connected Web.
The objective was to propose a comprehensive and consistent classification framework by conducting a thorough analysis of the different Web service composition approaches and providing a clear and detailed explanation of the proposed classification framework. However, as in most classification approaches, our taxonomy was limited because it was intended for the end-user perspective of Web service composition, and hence did not cover many other classification criteria, such as QoS, expressiveness, scalability, security, and interoperability.
With respect to emerging technologies in machine learning (ML) and artificial intelligence (AI), Web service composition can be used to build more sophisticated and intelligent systems. For example, a Web service that uses natural language processing (NLP) to understand and respond to user requests could be combined with a Web service that uses ML to make recommendations, resulting in a more powerful and user-friendly service. Additionally, AI-based Web services can be integrated into Web service compositions to provide a more accurate and efficient processing of data. As these technologies continue to evolve, the possibilities for Web service composition will likely expand further.
Comments are closed.