## 3 Literature Review
### Mashup Frameworks  
This section discusses mashups from an aggregated scope, in review of frameworks that address the different attributes of mashups collectively. Frameworks are extremely important in the initial phases of a technology's lifecycle as they provide an initial foundation that can be applied by early adopters in industry and that can be evaluated (or extended) by researchers in academia. Since mashups are designed by end users for specific contexts with specific purposes, they tend to be very ad hoc in nature and span a wide variety of domains. As such, many frameworks have been developed to help designers develop mashups for the different domains.  
[PERSON] and [PERSON] [40] present a mashup framework that features a hybrid scripting language that supports unification as it is based on the type morphing paradigm. Much like inheritance in object oriented environments, type morphing is the ability of the language to cast any primitive type to another one where needed. The transformation of data across heterogeneous types is done by following a set of predefined rules. Through an interactive interface, users can iteratively overload (or mash) model elements until a sufficient solution is developed. [PERSON] _et al._[15] also use an object-oriented data model for the exchange of data between the disparate data models. Furthermore they argue that current web mashup frameworks lack sufficient data models to handle data interchange and propose \"a database-driven approach to web mashups that supports integration at the database level and enables mashup developers to work with a uniform abstract model and have direct access to powerful features of database systems\" [15, pg. 162]. [PERSON] _et al._[30] present a mashup model that quantifies the different roles of mashups which are: query data sources, import other mashups, use external Web services, and specify complex interaction patterns between its components. Their model is derived from semantic web, and various object oriented concepts like inheritance.  
One concept that is commonly discussed in mashup frameworks is interactive (or iterative) processes. This is especially true in the 'End User Programming' literature and will be discussed in the following section, and can be explained by the fact that multiple mashup variations are frequently considered before an acceptable solution is discovered. [PERSON] _et al._[32] present a framework for migrating legacy systems toward service-oriented mashups. In their framework, they place emphasis on modeling the business requirement up front and then analyzing the existing legacy systems to see if such functionality currently exists and can be implemented into the mashup. \"The iterative mapping process is as follows: (a) if a business requirement can be satisfied by one of the existing legacy components, then simply wrap it by considering the QoS attributes; (b) if there is a gap with the existing legacy component and requirement, and the gap can be filled during service wrapping, then accustom the legacy component into a new service; (c) if the gap cannot be fulfilled, then develop a new service for the requirement\" [32, pg. 171].