Assisting Mashup Development in Browser-Based Modeling Tools

Despite several efforts for simplifying the composition process, the learning process for using existing mashup editors remains rather difficult. Due to this difficult learning process, the development of mashup applications is only achievable by expert developers. In this paper, we describe how this barrier can be lowered by means of an assisted development approach that enables the reuse of existing composition knowledge. We further demonstrate and verify how with the help of our efficient interactive pattern recommendation and automated pattern weaving approaches, less-skilled users can successfully build mashup applications. The experimental evaluation of our prototype implementations and the result of user-studies validate the suitability of our assisted development approach for mashup design using browser based modeling tools. I. PROBLEM AND MOTIVATION By now, mashup tools, such as Yahoo! Pipes (http://pipes. yahoo.com/pipes/), undoubtedly simplified some complex composition tasks by providing easy modeling constructs. Yet, despite these advances in simplifying technology, mashup development is still a complex task that can only be managed by skilled developers ([1], [2]). In order to better understand the problem that we address in this research, let’s have a look at how a mashup is, for instance, composed in Yahoo! Pipes http://pipes.yahoo.com/pipes/, one of the most well-known and used mashup platforms as of today. Let us assume we want to develop a simple pipe that fetches a set of news feeds from Google News website, filters them according to a predefined condition (in our case, we want to search for news on products and services by a given vendor), and locates them on a Yahoo! Map based upon the geo-location associated with each news item. The pipe that implements the required feature is illustrated in Figure 1. As pointed out in Figure 1, for developing even such a simple application at every step a user needs to know which component/s to use, how to set the parameter values for the component, how to define the data mapping among components etc. Understanding this logic is neither trivial nor intuitive. To have a more detailed understanding of the problem space i.e., end user development, we performed an initial user study [3] with few end users (10 university accountants), who have little technical expertise. The study revealed that less-skilled developers wished to be assisted with automatic/contextual help through out the development process choosing the right component filling the correct config. parameter value connecting components together defining the correct data mappings Figure 1. Screenshot of the Yahoo! Pipes mashup environment showing typical composition steps in case they are developing an application. In order to meet the elicited requirements, in this paper we approach a few of the core research challenges of this vision, i.e., how to design an interactive development recommendation system that supports the reuse of existing composition knowledge for developing mashups in a step-by-step manner. That required us to find answers of the following research questions: • How to interactively reuse existing composition knowledge for developing new mashups. • How to represent the composition knowledge that captures the typical modeling steps in mashup designs and that can be recommended to users as reusable knowledge. • How to support interactive and contextual retrieval of composition knowledge at runtime. • How to automate the application (weaving) of the modeling edits (addition or deletion of components, connectors etc.), captured in a composition knowledge, to the current composition context. • How demonstrate and evaluate the usefulness of our interactive, contextual recommendation approach to its target users. • How to assess the usability and the accuracy of our recommendation algorithms for the target user groups. II. BACKGROUND AND RELATED WORK Several related work aim to assist less skilled developers in the application development. Web macro approaches ([4], [5]) capture and reuse navigation patterns in end user programming. However, the assistance in these approaches are provided only for navigating and configuring data in web pages. In our research, we support composition pattern reuse, by providing development assistance to end-users, in a more complex web mashup compositions scenario. In the context of web mashups, several works aim to assist less skilled developers in the design of mashups. Syntactic approaches [6] suggest modeling constructs based on syntactic similarity (comparing output and input data types), while semantic approaches [7] annotate constructs to support suggestions based on the meaning of constructs. In programming by demonstration [8], the system aims to auto complete a process definition, starting from a set of userselected model examples. Goal-oriented approaches [9] aim to assist the user by automatically deriving compositions that satisfy user-specified goals. Pattern-based development [10] aims at recommending connector patterns (so-called glue patterns) in response to user selected components (so-called mashlets) in order to autocomplete the partial mashup. The limitation of these approaches is that they partly overestimate the skills of less skilled developers, as they either still require advanced modeling skills (which users don’t have), or they expect the user to specify complex rules for defining goals (which they are not able to), or they expect domain experts to specify and maintain complex semantic networks describing modeling constructs (which they don’t do). The business process management community more specifically focuses on patterns as a means for knowledge reuse. Among the related works for applying or weaving recommended patterns, the automated pattern application approach [11] uses structural properties of the current composition model to tell the user which pattern (simple merge, exclusive choice, parallel branch, and similar) among the workflow patterns, as are introduced by Van Der Aalst et al. [12], are applicable in the current modeling context. The structural properties of the workflow patterns are verified against the current process model structure to check their applicability. These control flow patterns are not able to capture domain knowledge of the underlying mashup applications, and hence are not contextual. To address the limitations as identified in the existing related works, in our research, we aim at designing a more generic knowledge reuse approach i.e., in addition to the structural compatibility, we also consider the underlying mashup language (data flow based mashup) while capturing the knowledge to be reused for the assistance. In summary, in this research we design a more extensive assistance mechanism that not only interactively recommends reusable contextual composition knowledge, but also enables the oneclick knowledge reuse approach by applying (weaving) the knowledge in the current composition context on behalf of a user. III. APPROACH AND UNIQUENESS The primary goal of the interactive pattern recommender is to assist users in designing mashups in a step-by-step manner. The knowledge we want to recommend is reusable composition patterns, i.e., model fragments that bear knowledge that may come from a variety of possible sources, such as usage examples or tutorials of the modeling tool (developer knowledge), best modeling practices (domain expert knowledge), or recurrent model fragments in a given repository of mashup models (community knowledge [14]). The structure and types of composition patterns that capture the typical design steps in a mashup environment are the core knowledge behind our step-by-step recommendation approach. Composition pattern types. Composition patterns capture the typical modeling steps performed by a developer (e.g., filling input fields, connecting components etc. as shown in Figure 1) in a Pipes-like mashup tool. By analyzing the model of existing mashups [15], we specifically identified following five types of composition patterns. Parameter value pattern represents a set of value assignments for the input parameters of a component. This pattern helps filling input parameters of a component that require explicit user input. Connector pattern represents a connector between a pair of components, along with the data mapping of the target component. This pattern helps connecting a newly placed component to the partial mashup model in the canvas. Component co-occurrence pattern captures pairs of components that frequently occur together. It comes with two associated components as well as with their connector, parameter values, and data mapping logic. Component embedding pattern captures the information about which component is embedded into which other component, both being preceded by another component. This pattern helps, for instance, modeling loops, a task that is usually not trivial to non-experts. Multi-component pattern represents model fragments that are composed of one or more of the patterns as described before. This list of pattern types is not exhaustive, but it contains the most representative steps in mashup design. To read more about the basic intuitions behind coming up with this set of composition patterns, one can refer to our earlier work [15]. Conceptual model for interactive pattern recommender. Figure 2 depicts the conceptual model of our interactive pattern recommendation approach. The “white part” in the right hand side of Figure 2 represents the condition or context under which a recommendation is triggered by the recommendation algorithm. For example, applying a modeling action fill to an object of type parameter field triggers a recommendation that consists of a parameter value pattern. The Object-action-recommendation rule determines the type/s of recommendations to be invoked based on the current partial composition state, modeling action and the Mod