Mashup (web application hybrid)

From Wikipedia, the free encyclopedia

Jump to: navigation, search

In web development, a mashup is a web application that combines data from more than one source into a single integrated tool. The term Mashup implies easy, fast integration, frequently done by access to open API's and data sources to produce results data owners had no idea could be produced. An example 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 via 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. Some programming languages, such as Orc, offer support for the creation of mashups.[1]

A mashup web application has three parts:

  • A web page that provides a new service using its own data and data from other sources (from additional content providers).
  • Additional content provider: Data is made available across the web through an API and using different web protocols such as HTTP, RSS, REST, or other web services.
  • The client: is the user of the mashup, often 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 consumed by feed readers, rich applications, IM clients or email clients respectively.

Mashups 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 site must access third party data using an API, and process that data to add value for the site's users.

[edit] Types of mashups

There are many types of mashups, such as consumer mashups, data mashups, and Business Mashups. The distinction is meaningless because the underlying technology is the same regardless of the use case.

The most common mashup is the consumer mashup, which are aimed at the general public. Examples include Google Maps applications, iGuide and Radioclouds.

Architecturally, there are two styles of mashups: Web and Server. Web-based mashups are typically done in the Browser, and only need a Web container. Server-based mashups are done on the server either in the datacenter or in the Cloud.

Another common mashup is a data mashup. Data mashups combine similar types of media and information from multiple sources into a single graphical 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. Yahoo Pipes can be used to define data mashups.

Business mashups focus aggregate 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 include mapping, video and photo, searcs database of reported crimes with ArcIMS in order to help stop crime in areas and warn citizens of areas where the crime rate is high.

WikiCrimes is a wiki-style website where internet users can report crimes by placing pins on a GoogleMaps based map. The website classifies crimes as robbery, theft, or other by pin color.

Video and photo

Flickr is an image storage site that allows users to organise their collection of images and share them. Through the use of its Application Programming Interface (API) the content can be used by other sites to create a mashup. Flickrvision is an example of a mashup made using Flickr's API.

youMashTube lets end-users make video mashups through Youtube's API. Leeloo Chat is a discussion site that allows users to share their photo albums directly from their profiles. The underlying services are Flickr and Picasa Web Albums, and they are seamlessly integrated in the user interface, such that the albums can be browsed inside the very same user interface that Leeloo Chat site provides.

Search and shopping

Travature is a travel portal that has integrated airfare meta search engines, wiki travel guides, hotel reviews. It also allows the user to share photos and discuss experiences with other travellers.

News aggregation

Digg is a mashup of various news websites controlled almost entirely by the users of the website.

[edit] Telecom mashups

A "telecom mashup" is a telecommunications service where service elements come from more than one source and are combined into an integrated experience. For example, one could get the base service from company A, a ringback tone from company B, a voicemail service from company C, etc. Microsoft's Connected Services Sandbox is an example of a "service development environment" (also referred to as a "service development platform" or a "service development framework") that enables developers to more easily create telecom mashups.

Nested, embedded, sequential or recursive telecom mashups, where a large number of services are used, are considered risky or "over-the-top" (OTT) by network operators.[2] Because of their complexity, such mashed up services can be difficult to control and charge, and therefore may cause operators to lose revenues. In addition, operators are subject to government fines or customer litigation from lax or overzealous conformance to Lawfully Authorized Electronic Surveillance (LAES) in the management of OTT mashups.[3]

[edit] Mashups versus portals

Mashups and portals are both content aggregation technologies. Portals is 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 of these markup fragments 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, that is translated into a single update operation on that portlet alone ("processAction" on a local, JSR 168 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 the one using 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 standardisation 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] Mashups in a business environment

Mashup use is expanding in the business environment.

After several years of standards development, mainstream businesses are starting to adopt Service-oriented Architectures (often referred to as SOA) to integrate disparate data by exposing 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.) The SOA standard for data services is Service Data Objects. These Web services can be repurposed into new services and applications within and across organizations, providing business agility.

Mashups are a key component of integrating business and data services, as mashup 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 interfaces.

[edit] Architectural aspects of mashups

Mashups appear to be a variation of a Facade pattern.[4] 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. Its role in service oriented architecture is often to give the end user a more customised, familiar, or simply easy to implement interface. Geodata provided as a service, for example, is the ideal companion for a mashup with the Google Maps API.


[edit] Mashup editors

There are already several mashup editors that help user create or edit mashups. Examples include (alphabetically):

[edit] References

  1. ^ http://orc.csres.utexas.edu/
  2. ^ http://www.pipelinepub.com/0108/VC1_7.html
  3. ^ http://www.pipelinepub.com/0408/VC1_1.html
  4. ^ Design Patterns: Elements of Resuable Object-Oriented Software (ISBN 0-201-63361-2) by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

[edit] External links

Personal tools