Mashup (web application hybrid)

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

In web development, a mashup is a web page or application that combines data or functionality from two or more external sources to create a new service. The term mashup implies easy, fast integration, frequently using 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 to add location information to real estate data, thereby creating a new and distinct web API that was not originally provided by either source.


Types of mashups

There are many types of mashups, such as consumer mashups, data mashups, and enterprise mashups. The most common type of mashup is the consumer mashup, aimed at the general public.

Data mashups combine similar types of media and information from multiple sources into a single representation. An example is 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; another example of a data mashup is Chicago Crime Map, which indicates the crime rate and location of crime in Chicago.

Enterprise mashups 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.

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 a separate 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:

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 behavior 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 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[1]. 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.

Business mashups

Mashup use is 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.[2]

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

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.[3]

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 (SaaS).

After several years of standards development, mainstream businesses are starting to adopt Service-oriented Architectures (SOA) to integrate disparate data by making them available 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 flexibility.

See also


External links

Personal tools

Served in 0.568 secs.