Williamsport Media Developer

Get creative with technology.


About Me
Blog
ASP.NET Web Development
After Effects Motion Graphics
Online Video Production
Desktop Widgets
Benefit From Online Media
Portfolio

NOTE: You appear to have JavaScript disabled in your browser!

Mash Ups

What is a mash up site?

A mashup is a web site that combines data from multiple sources to form a web portal. The content used in mashups comes from RSS feeds or data provided by the application programming interfaces of various web applications. The mashup provides a one stop destination for the Internet user where he or she can view information that would otherwise require visits to many web sites. Therefore a mashup site serves as a personal web portal. I have created an example mashup page that combines data from Amazon, Pownce, and LiveVideo.



RSS Feeds

Most of the content in a mashup site will come from RSS feeds. Really Simple Syndication (RSS) is a method of delivering blog articles and other content. RSS feeds can be read using feed readers or aggregators. Increasingly text content is not read by people who are taking the time to visit many web sites. Instead they subscribe to RSS feeds and have content delivered to them. RSS feeds can be read in the browser, using online web applications, or even in Outlook 2007.



Web Application APIs

Many major web sites like Amazon and eBay which are really massive web applications now provide application programming interfaces (APIs) so other web applications can consume the data they have to offer. This data is usually made available as XML that is delivered by a web service. Web services differ slightly from RSS feeds in that they may have various methods which can be called to determine the data they provide. For example, a web service that provides shipping quotes may accept the package weight in a request for information to return the calculated shipping charges. Another method call may be available for international shipping. A mashup site can use eBays APIs to provide a search form for auctions, the Amazon API to offer a similar search form for books, and the YouTube API to list the most popular videos on that site for today.

Custom Web Services

A mash up site does not need to use publicly available sources of information. It can also consume data provided by custom web services. This makes mash up sites attractive for business and enterprise use because they can provide a one stop destination for viewing a variety of information that management needs to stay on top of their business operations. An enterprise mashup will combine data from multiple databases to present charts, reports, and external news sources which may feature news that is relevant to their business.



Mashup Site Development

There is a lot of development work involved in creating a mashup site. There is also development work required to provide content to existing mashup sites. To create custom mashup sites I use the web parts technology which is built into ASP.NET 2.0. This is similar to the technology used by Sharepoint but it is less involved and does not require expensive licensing. To provide content for mashup site I use ASP.NET to create web services which expose the data in databases as XML feeds. I have also written web parts to consume the data provided by major web application APIs.



JSON

JSON is JavaScript Object Notation. Basically it is a way to serialize JavaScript object arrays as plain text. JSON is definitely a hot technology because it allows you to avoid the same origin policy (SOP) problem that you can encounter when using the XMLHttpRequest object. There is a browser restriction which prohibits you from pulling data from another domain. For example, if your browser loads a web page from www.example.com then that web page can't get XML data from a web service running on www.google.com. It can only get XML data from a web service running on www.example.com. Needless to say, this really makes it difficult to create mash up sites that combine data from many sources. The best way to work around this problem is to get the data in the JSON format inside a script tag and then use the JavaScript object directly in a callback function. I've been using JSON a lot because it allows me to consume web services in compiled HTML help. I have a web handler running on the server that retrieves data from web services and then transforms it to JSON data which the web page in the compiled help file can use without encountering any cross domain issues.