Mashup (web application hybrid)
From Wikipedia, the free encyclopedia
This article includes a list of references or external links, but its sources remain unclear because it has insufficient inline citations. Please help to improve this article by introducing more precise citations where appropriate. (December 2008) |
This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (September 2008) |
In web development, a mashup is a Web application that combines data from one or more sources into a single integrated tool. The term Mashup implies easy, fast integration, frequently done by access to open APIs and data sources to produce results that were not the original reason for producing the raw source data. An example of a mashup is the use of cartographic data from Google Maps to add location information to real estate data, thereby creating a new and distinct Web service that was not originally provided by either source.
Contents |
[edit] Overview
Content used in mashups is typically obtained from a third party source through a public interface or API (web services). Other methods of obtaining content for mashups include Web feeds (e.g. RSS or Atom), and screen scraping. Many people are experimenting with mashups using Amazon, eBay, Flickr, Google, Microsoft, Pictometry, Yahoo, and YouTube APIs, which has led to the creation of mashup editors.
A mashup or meshup Web application has two parts:
- A new service delivered through a Web page, using its own data and data from other sources.
- The blended data, made available across the Web through an API or other protocols such as HTTP, RSS, REST, etc.
The client generally accesses the mashup by using a Web browser displaying a Web page containing the mashup. Various mashup platforms support the emission of RSS, Web Services, instant messages or email messages, which are in turn consumed by feed readers, rich applications, IM clients, or email clients respectively.
Mashups and meshups are different from simple embedding of data from another site to form a compound page. A site that allows a user to embed a YouTube video for instance, is not a mashup site. A mashup or meshup site must access third-party data and process that data to add value for the site's users. Mashups typically "screen-scrape" or use other brute-force methods to access the untyped linked data; meshups typically use APIs to access typed linked data.
[edit] Types of mashups
There are many types of mashups, such as consumer mashups, data mashups, and Business Mashups. The most common mashup is the consumer mashup, which are aimed at the general public. Examples include Google Maps, iGuide, and RadioClouds.
Data mashups combine similar types of media and information from multiple sources into a single representation. An example is the Havaria Information Services' AlertMap, which combines data from over 200 sources related to severe weather conditions, biohazard threats, and seismic information, and displays them on a map of the world.
Business mashups focus data into a single presentation and allow for collaborative action among businesses and developers.
[edit] Examples
The potential use cases for mashups are as wide and varied as the Web. Some of the most common early use cases included mapping, video, and photos.
Crimes and Maps
WikiCrimes is a wiki-style Web site where users can report crimes by placing pins on a GoogleMaps based map. The Web site classifies crimes as robbery, theft, or other crime.
Flickrvision is an example of a mashup made using Flickr's API. CoolFlick is a mashup using the Flickr API as well as the Cooliris embedded wall.
Employment
JobBlob is a mashup using aggregated job data.
Search and shopping
Travature is a travel portal that has integrated airfare meta search engines, wiki travel guides, and hotel reviews. It also allows the user to share photos and discuss experiences with other travelers.
News aggregation
Digg is a mashup of various news Web sites controlled almost entirely by the users of the Web site.
Personal start pages
igoogle, netvibes, and pageflakes are mashups where users can add news, games, photos, podcasts or weather to their personal start pages. Other personal startpages such as allyve allow users to add information from personal accounts to their page.
[edit] Mashups versus portals
Mashups and portals are both content aggregation technologies. Portals are an older technology designed as an extension to traditional dynamic Web applications, in which the process of converting data content into marked-up Web pages is split into two phases - generation of markup "fragments" and aggregation of the fragments into pages. Each markup fragment is generated by a "portlet", and the portal combines them into a single Web page. Portlets may be hosted locally on the portal server or remotely on another server.
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, JSR 168 portlets or "getMarkup" operations on remote, WSRP portlets). If a submit button is pressed on any portlet on a portal page, it is translated into an update operation on that portlet alone ("processAction" on a local portlet or "performBlockingInteraction" on a remote, WSRP portlet). The update is then immediately followed by a read on all portlets on the page.
Portal technology is about server-side, presentation-tier aggregation. It cannot be used to drive more robust forms of application integration such as two-phase commit.
Mashups differ from portals in the following respects:
Portal | Mashup | |
---|---|---|
Classification | Older technology, extension to traditional Web server model using well defined approach | Using 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 | CRUD operations are based on REST architectural principles, but no formal API exists |
Relevant standards | Portlet behaviour is governed by standards JSR 168, JSR 286 and WSRP, although portal page layout and portal functionality are undefined and vendor-specific | Base standards are XML interchanged as REST or Web Services. RSS and Atom are commonly used. More specific mashup standards are expected to emerge. |
The portal model has been around longer and has had greater investment and product research. Portal technology is therefore more standardised and mature. Over time, increasing maturity and standardization of mashup technology may make it more popular than portal technology. New versions of portal products are expected to eventually add mashup support while still supporting legacy portlet applications.
[edit] Business mashups
Mashup use is expanding in the business environment.
Business Mashups are a key component of 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.
Legal and commercial issues are often an underlooked aspect related Business Mashups. It should not be overlooked that APIs are typically subject to legal limitations. For example, there are sometimes restrictions on using an API with a device that is not a Web browser[1] or it is not possible to use that API to provide a commercial service. In addition, the API providers often do not provide any sort of warranty in case of failure to deliver the service. These aspects may limit the applicability of Business Mashups unless specific service level agreements are in place.
[edit] Architectural aspects of mashups
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 Facade pattern.[2] That is, it is a software engineering design pattern that provides a simplified interface to a larger body of code (in this case the code to aggregate the different feeds with different APIs).
Mashups can be used with software provided as a service (SaaS).
After several years of standards development, mainstream businesses are starting to adopt Service-oriented Architectures (SOA) to integrate disparate data by exposing[jargon] this data as discrete Web services. Web services provide open, standardized protocols to provide a unified means of accessing information from a diverse set of platforms (operating systems, programming languages, applications). These Web services can be reused to provide completely new services and applications within and across organizations, providing business flexibilty.
[edit] Mashup editors
Mashup editors are available to help users create or edit mashups. Examples include (alphabetically):
[edit] References
- ^ Google Maps/Google Earth APIs Terms of Service
- ^ Design Patterns: Elements of Resuable Object-Oriented Software (ISBN 0-201-63361-2) by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides