Web and Enterprise Mashups for Web Services and Data
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).