In the past year, a concept of web application mashups has spread like wildfire, and it is also gaining popularity among enterprise service providers and developers.
In this article, I will discuss what mashups are and the differences between enterprise and web mashups, as well as cover types of data and application mashups. Further, I will provide insight on enterprise tools that automate creation of enterprise mashups, specifically BEA Data Services AquaLogic platform and what it offers.
Mashups and Mashlets
The concept of mashups is not new; however, their use in relation to the Internet is new. The term mashup originally referred to the practice in pop music (notably hip-hop) of producing a new song by mixing two or more existing pieces. In technology, a mashup is a web application that combines data from more than one source into a single integrated tool; an example is the use of cartographic data from Google Maps to add location information to real estate data, thereby creating a new and distinct Web Service that was not originally provided by either source (Wikipedia). A mashlet is a distributable widget that combines the functionality of multiple web applications into a portable form.
Creation of mashups and mashlets from different web applications would not be possible without proliferation of the latest web technologies and standards. Ajax, RSS, and Web Services all contribute to the technology set of mashups. The Web 2.0 movement and its ideology (which I covered in one of my previous articles The Web 2.0 Movement Is Here. But What Does It Mean to You?), also fits perfectly with the idea of mashups, and the popularity of some of the web applications (and sites), such as Google Maps, Flickr.com, FaceBook.com and other social networks also fuels the wave of mashups.
When these sites and applications initially exposed their APIs to let developers extend functionally, they probably had not envisioned that people would try to mix or combine outputs to introduce new logic and behaviors. But, as soon as some clever developers realized that this can be done, a new breed of web applications was born.* Soon thereafter, companies started to provide APIs and Web Services specifically for the mashup use.
*One of the earliest mashups was a site, housingmaps.com, created by Paul Rademacher, that combined Google Maps with craigslist apartment listings to pinpoint the location of real estate visually.
Several major technology companies realized the potential of creating an unlimited number of new applications and went a step further by providing whole web platforms for mashup development and publication. Intel, Google, Microsoft, and Yahoo all provide sites for mixing different data sources, web services, RSS feeds, and Ajax APIs from various web applications to create mashups with new and unique uses. Users of these sites can create, share, and publish their work. (Please see the References section for a complete list of popular mashup sites).
In the world of enterprise development, the presentation is often very separate from the data. Therefore, mixing data sources or data services to provide new data or services is also a form of a mashup. If a web application mashup is something that can be interacted with, the enterprise mashup will often be only on the back end, but nevertheless it can be very useful mashup. For example, consider a new web service that combines output from another two distinct web services and a relational database into one interface. This approach can be very practical.
Doing the same mashup with open source toolkits, such as Axis or Xfire, is possible, but a new breed of enterprise tools is now available that allows developers great flexibility in the creation of web services in addition to a visual environment for mashup development. Tools that generate web services server code (by SOAPifing existing application logic) or tools that generate consumer code based on WSDL existed for some time. However, this kind of enterprise tools evolved specifically to support design, aggregation, development, and testing of data sources and web services to produce new ones.
BEA Data Services Platform: AquaLogic
The current generation of enterprise tools, such as BEA AquaLogic, offers advanced features such as federations of requests to multiple service providers, aggregation of responses, redirection of requests (via SOA bus) to other web services, integration of different web and data sources into one interface for consumption, manipulation of the SOAP contents in real time to a fit specific purpose, and other enterprise-level functionalities.
This commercial product supports many new web service development concepts. It is relatively new to the market, and is yet to become one of the major enterprise vendors in this space. But, it already holds a lot of promise. At the time of this writing the current version is 3.0, which is fairly different from a previous major release, 2.5. This current build still has some bugs, but given the scope of the product and ambitiousness of it features, issues are expected.
Creating a New Data Source with BEA AquaLogic
The installation of the AquaLogic platform is fairly straightforward, and it requires BEA Weblogic Platform (Server) with AquaLogic support to be installed first (9.2 mp2 or higher). The AquaLogic server has its own console, similar to the BEA Weblogic console, where AquaLogic DSP (Data Services Platform) applications can be configured. The development environment called “Data Services Studio” is Eclipse based and can be installed as a plug-in or a standalone app.
After installation, the Data Services Studio needs to be configured to know where the AquaLogic platform is, so that it can automatically deploy new applications there. The tool also supports, among other enterprise features, the concept of Contract First Web Services and allows separation of logical and physical layers of the application (logical would be XML schema and physical can be actual implementation).
Here is how a new mashup Web Service can be created with the AquaLogic tool:
- Launch the Server and the Data Services Studio.
- Create a new project and a “physical” folder.
- Right-click and choose to add a new Physical Data Source.
- On the wizard dialogm you can choose from a variety of data sources, including Web Wervices, Java Functions, relational databases, and so forth. The tool does not support RSS feeds, yet.
For the purposes of this article, I have chosen an existing Web Service.
After selecting the data source, Data Services Studio will read the WSDL and present available methods to call.
- After choosing the methods to be used in a mashup, AquaLogic will auto generate all the necessary logic to call the service.
This next screenshot shows a service being tested directly in the tool. Please note that the server needs to be started for auto-deployment. Also, because the tool automatically imports the data source and creates all the back-end logic, this provides a very flexible environment for mashup creation. Other data sources now can be imported in a similar way and their output can be aggregated into a new data source/Web Service, visually, within the tool. The possibilities are numerous at this point.
Conclusion: The Darwin Theory Lives Online!
Looking at the concept of mashups in the web applications, one can easy realize that combining various APIs, data sources, and feeds to create new uses is a way to create almost countless new and unique web applications. For example, combining maps—with apartment search data, with the restaurant location data, with the train route and with an address book—will show the best places to find real estate that is close to friends, convenient for commuting, and is near good places to eat. But, not all of the mashups will be successful, and as in the Darwin Theory of evolution, only the fittest or the most popular will survive. The unpopular applications will eventually disappear.
It will be interesting to see what new web application will appear and thrive and which ones will die off. In the enterprise area, it will be interesting to see what new tools will evolve and what other features they will provide.
- Intel Mash Maker
- Google Mashup Editor
- Microsoft Popfly
- Serena Mashup Composer
- Yahoo pipes
About the Author
Vlad Kofman works on enterprise-scale projects for major Wall Street firms. He also has worked on defense contracts for the U.S. government. His main interests are object-oriented programming methodologies, UI, and design patterns.