Although Wikipedia lists mashup under four main headings, there are alternative possible uses for mashup technology in development. If Wikipedia is taken as the reference, the four main groups are:
Clearly, a mashup is a combination of two or more sources. In development terms, these sources could be data, service or pure technology (i.e. software applications, services or tools). With this in mind, this article will explore some possible mashups, from the point of view of a programmer.
IBM has acknowledged the concept of glue code in an article entitled 'Improving the Quality of WebSphere Commerce Customizations, and defines it as "Anything that offers no immediate logic."
The guiding principle of using glue code is that it should only link two pieces of working, fully tested, functionally sound, application code. In mashup terms, glue code is the holder for the combination of services - data or behavior - that presents them to the wider audience.
Where glue code has its own behavior, that behavior should be simplistic enough that it can be easily debugged.
A data mashup exists when a programmer takes data from two (or more) sources, and combines them to produce output that would not have been possible without the mashup taking place. The result of the mashup is data, or code, that can be used in a software application.
This is slightly different from a traditional data mashup which takes two streams of XML (such as RSS feeds) and combines them to produce a result. Yahoo! Pipes are an example of a data mashup technology at work.
Service mashups occur when a user combines two or more services (usually online) to produce a third service. This is similar to a data mashup, except that the user actively seeks the data that they are using, rather than just taking it as a feed.
An example of a service mashup might be taking the XML list of best selling items from Froogle, using it to do a search on Google, and then extracting a list of keywords from AdWords, based on the content of each page scraped as a result.
Finally, and of most import to programmers, is the possibility to ride on the shoulders of existing technology in creating a new application or service. After all, if the customer can be satisfied by a combination of proven, off-the-shelf solutions held together by easy to maintain glue code, then both sides will benefit.
The client will receive a great service - robust, and easy to develop further - and the developer will be able to create something quickly and cheaply that is easy to maintain. Developers need to understand the importance of mashups and really think outside the box when delivering client-oriented solutions.