Wednesday, December 29, 2010

Mashups - Most promising aspect of Web 2.0

Web 2.0 has opened the door for a new breed of web applications. Mashups, like Wikis, blogs and social networks are a part of Web 2.0 but mashups continues to grow faster. A mashup is an application that combines information from different sources and integrate them to deliver content for a specific purpose or a new functionality. The purpose of mashups are to create a new class of service or functionality that is convenient, more user specific and generate new business opportunities. For instance, a mashup application can combine service from a mapping application and apparel store to locate all the branches of the store in a city. There is a huge possibility for mashups in today’s world. Forrester Research predicts that mashups will be a $682 million industry in the next 5 years. Mashup promises cost effective solution that add a great value both at user as well as at enterprise level. Few more examples of mashup are Amazon Light and ActorTracker. Amazon Light contains listings of products sold by Amazon.com and combines them with data from Google, Yahoo, Del.icio.us, Blogger and others. ActorTracker combines Amazon, eBay, and other movie data. BizRate, PriceGrabber, MySimon, and Google's Froogle used combinations of business-to-business (b2b) technologies.

Architecturally, a mashup is comprised of three layers:-

Datasources/Content Providers layer – A mashup application can get data from diversified data sources. It could be a XML feed (RSS/Atom) or by calling external APIs exposed by third parties like Google Maps API, APIs from Microsoft (Virtual Earth), Yahoo (Yahoo Maps), AOL (MapQuest) or Flickr APIs. A detailed list is available at http://www.mashupfeed.com.

Transformation Layer – This layer basically transforms the data by filtering, sorting or by performing any custom operation on the data to create something useful.

Front-End/UI layer – Mashup is all about creating rich user experience which can be created using tools like Google Mashup Editors or IBM’s Lotus Mashups.

From implementation perspective mashups can be enterprise or non-enterprise. An enterprise mashup is created in a server while a non-enterprise mashup is created within the browser. Most of the mashups available today are browser based. They query the data sources/content providers, transforms the data and render it in a browser. Browser based mashups extensively use AJAX which allows pages and data used for the mashup to change without the page being refreshed, thus, making the tool very efficient for the user. Tools like Google Mashup Editor can be used for creating browser based mashups which can be created by end user with limited programming knowledge. Thus they are extremely useful for creating situational application quickly by the end user without incurring an overhead on the existing IT infrastructure. But browser based mashups have limitations. Browser based mashups cannot provide much option to the user and has large dependency on sources. Again, browser based mashups are created using javascript which has limited ability to perform complex operations\

On the other side enterprise mashups are more robust in nature. They can address the features of security and governance. Mashup server provides visual drag-and-drop interface for mashing services together. Common functions like merging, filtering and even custom functions such geocodeing are built into the server toolkit. The mashup server can safely perform and store authentication and authorization information for external services. It can also be connected to the enterprise's own authentication and monitoring toolsets.

A tutorial for creating mashups using GME is http://code.google.com/support/bin/answer.py?answer=71042&topic=12044

Few available Mashup editors are:-

· IBM Mashup Center

· Yahoo Pipes

· Google Mashup Editor

· JackBe

· Lotus Mashups

· Microsoft Popfly

· Mozilla Ubiquity

To me mashups are all about innovation. Services are available, so it is upto an user or an enterprise to mix and match the data or functionality from different sources and create applications that adds value. IBM is leading the mashup race with wide range of tools and editor. More information about mashups are available at http://w3-03.ibm.com/software/developers/page/1117

No comments: