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:
XML: The backbone of most mashup sites is XML. Data is often retrieved via XML feeds and incorporated in the application by manipulating the XML. With that said, XML-related technologies like XSLT and XPath are often used to process XML.
Web services: The Web services concept includes numerous technologies like SOAP, XML, and WSDL to deliver data to a client. Mashups can retrieve and send data using Web service calls via the variety of publicly accessible Web services available today.
RSS/Atom: XML-based content syndication standards provide an easy way to push data to users that subscribe to the feed.
Screen scraping: The old-fashioned approach to pulling data from other sites via simply retrieving or scraping data from a Web page is still used today when other approaches are not available.
AJAX: This Web application model brings together various technologies, most notably JavaScript and XML, to enable the asynchronous loading and displaying of data. It enhances the user experience by smoothing the process of sending and receiving data to/from servers.
The basic idea is to use these technologies to interact with Web services or APIs and content providers.