In Web development, a mashup is a Web page or application that uses and combines data, presentation or functionality from two or more sources to create new services. Mashups have gained popularity in the last few years.
The term implies easy, fast integration, frequently using APIs and data sources to produce enriched web applications that were not necessarily the original reason for producing the raw source data. Early mashups took data from sources such as google, twitter, etc and combined them with other services to create visualizations of the data.
The mashup architecture is divided into three layers:
- Presentation: this is the user interface of mashups. The technologies used are HTML/ XHTML, CSS, Javascript, Ajax.
- Web Services: the products functionality can be accessed using the API services. The technologies used are XMLHTTPRequest, XML-RPC, JSON-RPC, SOAP, REST.
- Data: Handling the data like sending, storing and receiving. The technologies used are XML, JSON, and KML.
Because mashups use technology that most of you are already familiar with, many are starting to take it seriously as a quick and easy solution to integration problems that previously seemed like a daunting amount of work.
In the past years, more and more Web applications have published APIs that enable software developers to easily integrate data and functions instead of building them by themselves.
There are many types of mashups.
- Data mashups: combine similar types of media and information from multiple sources into a single representation which create a new and distinct Web service that was not originally provided by either source.
- Consumer mashups: opposite to the data mashup, combines different data types. Generally visual elements and data from multiple sources. (eg.: Wikipediavision combines Google Map and a Wikipedia API). This is the most common type of mashup, which is aimed at the general public for developing web applications.
- Business mashups: generally define applications that combine their own resources, application and data, with other external web services. They focus data into a single presentation and allow for collaborative action among businesses and developers. This works well for an Agile Development project, which requires collaboration between the Developers and Customer (or Customer proxy, typically a product manager) for defining and implementing the business requirements. Enterprise Mashups are secure, visually rich web applications that expose actionable information from diverse internal and external information sources.
Source : http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid), Sunday Times Magazine
Couldn’t say it better.