## 3 Literature Review
### Mashup Integration
#### Mashup Agents  
A large number of mashup environments are being designed for end users that lack significant technical expertise (e.g. [47; 48; 49; 51]), which increases the need for tools that support the mashup creation process. These tools generally include algorithms, web crawlers, and other technologies that are designed to go out and find potentially relevant sources of information. All of these tools can be classified as 'Mashup Agents', even though this term was not used in any of the publications that were reviewed. Web services are a common ingredient in web mashups. Much work has been done on web service composition including industry efforts on standard composition languages such as BPEL [77]. However, in terms of mashups, web service composition techniques are not suitable as they focus on describing messaging and synchronization processes; whereas mashups involve data integration and require content descriptions rather than process descriptions [28]. To address this shortcoming, [PERSON] _et al._[28] applied a machine learning based approach, and designed an agent based framework that continually observes web service feeds over time to learn the patterns, in order to provide a semantic mapping of the web service's content. In this approach, Artificial Intelligence (AI) is used to determine the semantic meaning of the potential mashup ingredient itself. Another approach is to utilize AI from the user's perspective, to predict and recommend potential mashup ingredients that they may deem useful. [PERSON] _et al._[29] do this by developing a Bayesian network to build user profiles as the representatives of usage patterns. A Bayesian network is a decision tree where each alternative outcome is assigned a probability, so in this case, each potential mashup ingredient has a probability of relevance, based on the user's previous browsing patterns. Natural Language Processing (NLP) is another AI technique that has also been found to be an effective means for web service semantic discovery. [PERSON] and [PERSON] [8] implemented such an approach and developed an agent that performed pair wise comparisons of web services based on the commonalties between the service's \begin{table}
\begin{tabular}{c} \hline
**Mashup Integration** \\ \hline
**Homogeneous** \\
[11; 74; 76] \\
**Heterogeneous** \\
[21; 23] \\
**Application (Process)** \\
[14; 22] \\ \hline \end{tabular}
\end{table} 
Table 3: Classifications for Mashup Integrations. inputs and outputs. An empirical evaluation of their agent showed that among the top 6 messages for mashup predictions were State, City, and Zip, which combined had a 29% prediction rate for valid mashups. In fact location based mashups could be considered a mashup sub-category all on its own (e.g. [26, 29, 34, 45]). As illustrated by Table 4, mashup agents can fall into one of two basic categories, server based agents and client based agents. Server based agents are tools that reside on a web server like Microsoft Popfly or Yahoo Pipes, whereas client based agents are plugins that are installed in the user's browser. Server based agents is the most popular of the two in industry and are widespread in academia too. For instance, [PERSON] _et al._[25] developed a mashup development framework that provides a server based data management engine that enables the developer to identify semantic relationships, and then to browse based on semantic relevance. Similarly, [PERSON] _et al._[78] present a semantic based agent that identifies similar API's and then enables users to build server based mashups. That being said, client based agents have several advantages over server based agents which include but are not limited to data access, privacy, performance, and user experience [24]. An ongoing research project titled MashMaker is an example that demonstrates the benefit of client based mashup agents [24, 46, 47].