Mashup (hybrid web application): new generation of Web-based applications
Mashups are new and exciting aspects of Web 2.0. As is often the case with new technologies or approaches the industry often gets caught up in promoting the value proposition of what’s emerging. The hype often muddies the water between the value of what can be created with the new technology and the value of what exists today. With mashups, it’s often unclear to IT professionals how their existing Web applications might be different from the proposed innovative approach to mashing-up data with a browser.
One of the first questions that customers often ask is “What’s the difference between a mashup and the Web applications that we currently use in our enterprise today?” The difference has little to do with technology or the integration of systems. Instead, it reflects the ease with which the application can be created by users, how the application is intended to be used, and the lack of nonfunctional requirements (for example, reliability, availability, and performance) that need to be addressed after the mashup or Web application is deployed.
Innovation in the Programmable Web: Characterizing the Mashup Ecosystem
As noted earlier, mashups utilize many of the same technologies as traditional Web applications both in the enterprise servers and in the browser. The concept of mashups is not new, as businesses and Web developers have been aggregating and integrating data for the past decade using the Web as a platform. To minimize confusion, let’s clarify a few points about mashups. For many, mashup is considered a technical term regarding the mashing of disparate data to produce something new and interesting. A situational application is considered a tactical application, one that is often temporary and built by the people who use it. In this respect, a mashup can be a situational application, and a situational application can be a mashup. For this article, mashup means a situational application that is implemented as a mashup. See figure 1 for an overview.
A primary difference between mashups and traditional Web applications concerns the mashup application life cycle and the tendency of mashups to join seemingly unrelated data from public sources in meaningful ways with little or no formal agreements with the data providers. (more)
Types of mashups
There are many types of mashups, such as consumer mashups, data mashups, and business mashups. The distinction is somewhat arbitary because the underlining technology is the same regardless of the use case.
The most common mashup is the consumer mashup. Consumer mashups combine different forms of media from multiple sources and combine them into a single graphical interface. Consumer mashups are aimed at the general public, that is, consumers. Examples of consumer mashups include the many Google Maps applications, iGuide and Radioclouds.
Another common mashup is a data mashup. Data mashups combine similar types of media and information from multiple sources into a single graphical representation. An example of a data mashup is the Havaria Information Services’ AlertMap. which combines current data from over 200 sources related to severe weather conditions, biohazard threats and seismic information from around the world, and displays them on a single map of the world. Another example of a data mashup is Yahoo Pipes
Business mashups focus on various forms of data aggregation into a single presentation, but also allow for collaborative functionability amongst businesses and developers. Serena Software is a company involved in the business mashup industry.
Recently, in the context of the Web, the mashup concept has emerged, and researchers have developed a huge number of Web 2.0 applications. But what exactly does mashup mean? It simply indicates a way to create new Web applications by combining existing Web resources utilizing data and Web APIs. Mashups are about information sharing and aggregation to support content publishing for a new generation of Web applications. By extension, service mashups — the theme of this special issue — aim to design and develop novel and modern Web applications based on easy-to-accomplish end-user service compositions. Combining Web service technologies with fresh content, collaborative approaches (such as Web 2.0 technologies, tags, and microformats), and possibly Web data management and semantic technologies (RSS, RDFa, Gleaning Resource Descriptions from Dialects of Languages, and the Sparql Protocol and RDF Query Language) is an exciting challenge for both academic and industrial researchers building a new generation of Web-based applications. Researchers have created different mashup tools and platforms, letting developers and end-users access and compose various data that Web applications can provide. IBM’s QEDWiki, Yahoo Pipes, Google Mashup Editor, and Microsoft’s Popfly are some well-known examples of mashup platforms that users have largely adopted. Yet these platforms and associated tools represent only early and limited sets of capabilities that are sure to be followed by more powerful and flexible alternatives. (more)
Key research issues in service mashups
Although many have already adopted the (service) mashup concept and recognized its value, realizing the concept is still challenging, and much work remains before we’ll see mashup applications in a mature stage. Let’s briefly discuss some key issues we must consider in the future to improve sharing (registration and publication), finding (search and discovery), reusing (invocation), and integrating (mediation and composition) services.
The first key challenge is that of semantic heterogeneity. Compared to data, services can present a broader form of heterogeneity. Correspondingly, the Web services research community has identified a broader form of semantics — data (I/O), functional (behavioral), nonfunctional (quality of service, policy), and execution (runtime, infrastructure, exceptions). Several research projects have looked at semantics for traditional (WSDL or SOAP) Web services to help address heterogeneity and mediation challenges, and the community took a step toward supporting semantics for Web services by adopting Semantic Annotation for WSDL (SAWSDL) as a W3C recommendation in August 2003. (more)
The four articles in this issue address some of the challenges inherent in developing mashup-services-based advanced Web applications.
In “Mashing Up Search Services,” Daniele Braga, Stefano Ceri, Florian Daniel, and Davide Martinenghi propose a visual service mashup language for graphically composing and automatically executing queries over search services. They define search services as services with a variable number of ranked data. The proposed language lets users declaratively specify a query and mash up registered services in a drag-and-drop fashion to compose that query. The authors build service compositions as directed acyclic graphs whose nodes are service invocations and whose arcs are connections between services. The authors propose a physical service access plan for the Web service composition’s execution needs, such as generating a schedule of series or parallel service invocations, orchestrating such invocations, and joining data from different services into a ranked output. They argue that their language enables interesting runtime environments capable of deriving different executable service invocation strategies. Researchers are still working to meet other challenges, such as mastering more complex dependencies among services and supporting reliable and transactional Web services.
In “Composing RESTful Services and Collaborative Workflows: A Lightweight Approach,” Florian Rosenberg, Francisco Curbera, Matthew J. Duftler, and Rania Khalaf propose the extensible Bite language based on a lightweight process composition model for both Web data-driven applications and Web workflow composition. Bite combines SOA process composition principles with REST architectural requirements and workflow functionalities. It lets users implement RESTful service composition and interactive workflows.
In “An Online Platform for Web APIs and Service Mashups,” E. Michael Maximilien, Ajith Ranabahu, and Karthik Gomadam propose an online mashup platform that enables the construction, reuse, sharing, deployment, and management of Web APIs and service mashups. The proposed platform’s main characteristic resides in its domain-specific language, which is introduced to explicitly represent the activities that a mashup designer must fulfill, such as data mediation and service protocol mediation. The authors have deployed the IBM sharable code platform on IBM alpha works services.
Finally, in “Understanding Mashup Development,” Jin Yu, Boualem Benatallah, Fabio Casati, and Florian Daniel provide an overview of some popular and representative mashup development tools and frameworks. Mashup in this article refers to Web applications comprising data, application logic, and UIs of existing applications or services. The authors compare and discuss these tools and frameworks by considering four dimensions: the component model, which describes the mashup components’ characteristic properties; the composition model, which specifies how components are glued to create a mashup application; the development environment, and the runtime environment. In their discussion, the authors conclude that mashup tools’ main characteristics are simplicity, usability, and ease of access. They also identify some perspectives that could improve mashup tools, such as describing user interfaces as components that can be reused and integrated like services.
Example of Mushup Application
- The mashup below uses the Yahoo API to create a traffic mapping tool. Enter the city and state for a view of traffic accidents, delays, and other incidents in your area. If no markers are present, try entering New York, New York where unfortunately, accidents seem to be ever present in the city. (follow me)
- An Ajax-Mashup Sample Application on Sun Java System Web Server 7.0 (follow me)
- CLEARMAP is a mashup web application by the Chicago Police Department which integrates the department’s database of reported crimes with Google Maps in order to help stop crime in areas and warn citizens of areas where the crime rate is high.
- TheCampingMap.com is a site that shows camp-sites in Europe.
- WikiCrimes is a wiki-style website where internet users can report crimes by placing pins on a GoogleMaps based map. The website classifies crimes as robbery, theft or other by pin colour
David Barnes demo of IBM Mashup Center