This article needs additional citations for verification. (January 2013)
A mashup (computer industry jargon), in web development, is a web page or web application that uses content from more than one source to create a single new service displayed in a single graphical interface. For example, a user could combine the addresses and photographs of their library branches with a Google map to create a map mashup. The term implies easy, fast integration, frequently using open application programming interfaces (open API) and data sources to produce enriched results that were not necessarily the original reason for producing the raw source data. The term mashup originally comes from creating something by combining elements from two or more sources.
The main characteristics of a mashup are combination, visualization, and aggregation. It is important to make existing data more useful, for personal and professional use. To be able to permanently access the data of other services, mashups are generally client applications or hosted online.
In the past years[
The term "mashup" is not formally defined by any standard-setting body.
The broader context of the history of the Web provides a background for the development of mashups. Under the
The advent of Web 2.0 introduced Web standards that were commonly and widely adopted across traditional competitors and which unlocked the consumer data. At the same time, mashups emerged, allowing mixing and matching competitors' APIs to develop new services.
The first mashups used mapping services or photo services to combine these services with data of any kind and therefore to produce visualizations of data.[failed verification] In the beginning, most mashups were consumer-based, but recently[when?] the mashup is to be seen[by whom?] as an interesting concept useful also to enterprises. Business mashups can combine existing internal data with external services to generate new views on the data. There was also the free Yahoo! Pipes to build mashups for free using the Yahoo! Query Language.
Types of mashup
There are many types of mashup, such as business mashups, consumer mashups, and data mashups. The most common type of mashup is the consumer mashup, aimed at the general public.
- Business (or enterprise) mashups 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.
- Consumer mashups combine data from multiple public sources in the browser and organize it through a simple browser user interface.Wikipediavisioncombines Google Map and a Wikipedia API)
- Data mashups, opposite to the consumer mashups, combine similar types of media and information from multiple sources into a single representation. The combination of all these resources create a new and distinct Web service that was not originally provided by either source.
By API type
Mashups can also be categorized by the basic API type they use but any of these can be combined with each other or embedded into other applications.
- metasearch engines
- Cartographic and geographic data: geolocation software, geovisualization
- Feeds, podcasts: news aggregators
- Data converters: language translators, speech processing, URL shorteners...
- Communication: email, instant messaging, notification...
- Visual data rendering: information visualization, diagrams
- Security related: electronic payment systems, ID identification...
In technology, a mashup enabler is a tool for transforming incompatible IT resources into a form that allows them to be easily combined, in order to create a mashup. Mashup enablers allow powerful techniques and tools (such as mashup platforms) for combining data and services to be applied to new kinds of resources. An example of a mashup enabler is a tool for creating an RSS feed from a spreadsheet (which cannot easily be used to create a mashup). Many mashup editors include mashup enablers, for example, Presto Mashup Connectors, Convertigo Web Integrator or Caspio Bridge.
Mashup enablers have also been described as "the service and tool providers, [sic] that make mashups possible".
Early mashups were developed manually by enthusiastic programmers. However, as mashups became more popular, companies began creating platforms for building mashups, which allow designers to visually construct mashups by connecting together mashup components.
Mashup editors have greatly simplified the creation of mashups, significantly increasing the productivity of mashup developers and even opening mashup development to end-users and non-IT experts. Standard components and connectors enable designers to combine mashup resources in all sorts of complex ways with ease. Mashup platforms, however, have done little to broaden the scope of resources accessible by mashups and have not freed mashups from their reliance on well-structured data and open libraries (RSS feeds and public APIs).
Mashup enablers evolved to address this problem, providing the ability to convert other kinds of data and services into mashable resources.
Of course, not all valuable data is located within organizations. In fact, the most valuable information for business intelligence and decision support is often external to the organization. With the emergence of
Mashups versus portals
Portal technology defines a complete event model covering reads and updates. A request for an aggregate page on a portal is translated into individual read operations on all the portlets that form the page ("
render" operations on local,
getMarkup" operations on remote, WSRP
processActionon a local portlet or
performBlockingInteractionon a remote, WSRP portlet). The update is then immediately followed by a read on all portlets on the page.
Mashups differ from portals in the following respects:
|Classification||Older technology, extension of traditional Web server model using well-defined approach||Uses newer, loosely defined "Web 2.0" techniques|
|Philosophy/approach||Approaches aggregation by splitting role of Web server into two phases: markup generation and aggregation of markup fragments||Uses APIs provided by different content sites to aggregate and reuse the content in another way|
|Content dependencies||Aggregates presentation-oriented markup fragments (HTML, WML, VoiceXML, etc.)||Can operate on pure XML content and also on presentation-oriented content (e.g., HTML)|
|Location dependencies||Traditionally, content aggregation takes place on the server||Content aggregation can take place either on the server or on the client|
|Aggregation style||"Salad bar" style: Aggregated content is presented 'side-by-side' without overlaps||"Melting pot" style - Individual content may be combined in any manner, resulting in arbitrarily structured hybrid content|
|Event model||Read and update event models are defined through a specific portlet API|
RESTarchitectural principles, but no formal API exists
|Relevant standards||Portlet behavior is governed by standards
JSR 286 and WSRP, although portal page layout and portal functionality are undefined and vendor-specific
|Base standards are XML interchanged as |
The portal model has been around longer and has had greater investment and product research. Portal technology is therefore more standardized and mature. Over time, increasing maturity and standardization of mashup technology will likely make it more popular than portal technology because it is more closely associated with Web 2.0 and lately Service-oriented Architectures (SOA). New versions of portal products are expected to eventually add mashup support while still supporting legacy portlet applications. Mashup technologies, in contrast, are not expected to provide support for portal standards.
Mashup uses are expanding in the business environment. Business mashups are useful for integrating business and data services, as business mashups technologies provide the ability to develop new integrated services quickly, to combine internal services with external or personalized information, and to make these services tangible to the business user through user-friendly Web browser interfaces.
Business mashups differ from consumer mashups in the level of integration with business computing environments, security and access control features, governance, and the sophistication of the programming tools (mashup editors) used. Another difference between business mashups and consumer mashups is a growing trend of using business mashups in commercial software as a service (SaaS) offering.
Many of the providers of business mashups technologies have added SOA features.
Architectural aspects of mashups
The architecture of a mashup is divided into three layers:
- Presentation /
- Web Services: the product's functionality can be accessed using API services. The technologies used are
- Data: handling the data like sending, storing and receiving. The technologies used are KML.
Architecturally, there are two styles of mashups: Web-based and server-based. Whereas Web-based mashups typically use the user's web browser to combine and reformat the data, server-based mashups analyze and reformat the data on a remote server and transmit the data to the user's browser in its final form.
Mashups appear to be a variation of a
Mashups can be used with software provided as a service (SaaS).
After several years of standards development, mainstream businesses are starting to adopt
- Mashup (culture)
- Mashup (music)
- Open Mashup Alliance
- Open API
- Yahoo! Pipes
- Web portal
- Web scraping
- Fichter, Darlene. What Is a Mashup? (PDF). Retrieved 12 August 2013.
- "mash-up". merriam-webster.com.
- "Enterprise Mashups: The New Face of Your SOA". SOA WORLD MAGAZINE. Retrieved 2010-03-03.
The term mashup isn't subject to formal definition by any standards-setting body.
- Clarkin, Larry; Holmes, Josh. "Enterprise Mashups". MSDN Architecture Journal. MSDN Architecture Center.
- Sunilkumar Peenikal (2009). "Mashups and the enterprise" (PDF). MphasiS - HP. Archived from the original (PDF) on 2013-06-02. Retrieved 2010-02-27.
- "Enterprise Mashups: The New Face of Your SOA". SOA WORLD MAGAZINE. Retrieved 2010-03-03.
A consumer mashup is an application that combines data from multiple public sources in the browser and organizes it through a simple browser user interface.
- Digna, Larry (2007). "Gartner: The future of portals is mashups, SOA, more aggregation". ZDNET.
- Holt, Adams (2009). "Executive IT Architect, Mashup business scenarios and patterns". IBM DeveloperWorks.
- Bolim, Michael (2005). "End-User Programming for the Web, MIT MS thesis, 2.91 MB PDF" (PDF). pp. 22–23.
- Ahmet Soylu, Felix Mödritscher, Fridolin Wild, Patrick De Causmaecker, Piet Desmet. 2012 . “Mashups by Orchestration and Widget-based Personal Environments: Key Challenges, Solution Strategies, and an Application.” Program: Electronic Library and Information Systems 46 (4): 383–428.
- Endres-Niggemeyer, Brigitte ed. 2013. Semantic Mashups. Intelligent Reuse of Web Resources. Springer. ISBN 978-3-642-36402-0(Print)