One of the more popular trends to fall under the Web 2.0 umbrella is the creation of Web applications called mashups. Mashups draw upon existing Web applications or data sources and combine these resources to create a new application. I examine the technologies behind mashups, the architecture of mashups, and provide examples of mashups in action.
Don’t reinvent the wheel
The Web is overflowing with sites that seemingly fulfill every need. Developers recognized the existence of these resources and decided to reuse and extend them as opposed to mimicking their functionality. The result of reusing and extending such resources is known as the mashup concept.
Mashups are applications that combine data from multiple resources or services to create a new application. Developers can use various technologies when assembling their own mashups. The following list provides an overview of these technologies:
The basic idea is to use these technologies to interact with Web services or APIs and content providers.
Mashup architecture
The general architecture of a mashup application has three levels or tiers. The services or data sources used in the mashup constitute the first level. This may include one or more resources depending on the application requirements, and one common data source is the actual user base that enters data directly in the application (think Blogger).
The next tier is the actual mashup application that brings together these resources into a hybrid. It may include its own functionality or simply present the data sources. The final piece of the puzzle is the user client used to access the site. Client-side scripting may be utilized to enhance the user experience.
The crux of a mashup application is the first step in encompassing the data sources. The Web provides a wealth of possibilities with the following list providing a small sample:
In action
It is often surprising and enlightening to see what other developers are doing with existing Web services and data. Here are a few examples of existing mashup sites:
In action
It is often surprising and enlightening to see what other developers are doing with existing Web services and data. Here are a few examples of existing mashup sites:
The ProgrammableWeb site provides information on a countless number of such sites.
Promoting reuse
The mashup concept seems to follow along the community aspect so tightly integrated with the Web. That is, services and data are shared (sometimes not freely) so developers can extend functionality as opposed to spending time duplicating what is already available. I find it quite inspiring to see what other developers are doing with existing data and services.
Are you embracing the mashup concept? If so, share your experiences with the community in the article discussion.