Programming with Reason
Programming with Reason
Enterprise Mash-Ups Matter
Thursday, April 1, 2010
Software re-use is an over-used phrase from the last century that never really lived up to its promise. Perhaps that’s because the real value isn’t in reusing lines of code, but the data created by its users instead. In recent years, web 2.0 mashups—web applications that combine data from two or more sources—have become popular in the consumer space. For instance, combining Google Maps with vacation data and photos on Flickr makes for an interesting mashup. Of course, to do this, you don’t need to touch a line of Google’s code. All you need is access to its data; and to take a vacation, of course.
Many popular sites, such as Amazon, Flickr, Google, and YouTube, expose data via APIs especially for mashups. Other forms of data come from RSS feeds, and screen scraping. Often, the client portion of the application includes HTML and JavaScript for a dynamic, Ajax-based, experience. In some cases, the mashup of the data sources can be done completely with Ajax, with no need to deploy server-side application code. In other cases, a web application with server-side code is used, and may be combined with Ajax. The elegance of mahups is that there really are no rules, except that you shouldn’t violate copyright laws.
Mashups in the Enterprise
An enterprise application is one that is used in a corporate atmosphere to drive key business processes or serve customers, where security and reliability are crucial. Given its popularity in the consumer space, some say it was only a matter of time before mashups entered the enterprise space. In my opinion, they were actually conceived in the enterprise space. After all, web services were in vogue back in 2000, well before a single consumer mashup site hit the web.
In fact, any application based on a service-oriented architecture (SOA) is technically a mashup. SOA, clearly an enterprise endeavor, is the tool behind the promise of enterprise mashups. RSS feeds and the broadcasting of data via publish/subscribe protocols have been in use in the enterprise for even longer. And since many enterprise applications have become web-based since 2000, they satisfy that requirement as well.
However, the differences between consumer and enterprise mashups go beyond their target audiences; there are additional requirements for the enterprise. For instance, you need a framework that combines corporate data from SOA components, Ajax-enabled web interfaces, and built-in features that satisfy security, reliability, and corporate compliance requirements. It also needs to be based on standards.
Dynamic Business Applications
Perhaps the most important difference is that enterprise mashups need to be more dynamic; they need to provide full-cycle access to data. Users should be able to add, modify, move, contribute to, or somehow transform and aggregate the data the application uses. This two-way data cycle, combined with the traditional Internet protocols and Ajax capabilities of modern web 2.0 applications, results in what some call the Dynamic Business Application.
The tools for such applications have been around for some time. For example, Microsoft BizTalk was originally launched in the late 1990’s. Its goal was to allow developers to easily gather data, transform it, and orchestrate users’ activities using that data. That sounds like a mashup to me. Apache Cocoon provides similar orchestration features, and when combined with the information pipeline of an enterprise service bus, you have a solid foundation for dynamic business application development and deployment.
Enterprise Mashups in Action
There are many types of corporate applications that make sense as an enterprise mashup. Some examples that come to mind are:
•Management dashboards: whenever resources need to be managed remotely by individual operators, dashboard applications are used. Examples are network management, fleet management, power plants, railroads, and so on. Data from many locations needs to be aggregated and displayed remotely.
•Financial applications: data from multiple sources needs to be combined for investors, traders, and business people to make decisions. Combining data in unique ways, with proprietary algorithms, is a selling point. Mashups make it quick and easy to build and deploy new features.
•Call centers: typically, call centers rely on taking live data from a caller, using it to search a database for information (perhaps to solve a problem), and then add it back to the database for logging, escalation, or follow-up.
•Employee resources: corporations are beginning to combine their internal applications and associated data to build web-based applications for shared calendaring, name lookup, conference room booking, and corporate travel. These applications may have existed separately before, but data was duplicated across. Enterprise mashups allow them to share and combine data for increased value.
•Map-based applications: anyone who needs to combine statistics with location data (photographers, police officers, travel agents, fleet operators, reporters, and so on) can benefit from mashups that combine their unique data with Google maps, for instance.
Of course, this list isn’t complete; it’s limited only by the infinite needs of corporations globally, and the ingenuity of developers and other business-focused individuals.
Take Reuters Knowledge as an example of an enterprise mashup application in action (I worked on this project from its inception). This application combines multiple internal Thomson Reuters data sources with some external ones, aggregates the data in unique ways, and makes it available through a web interface designed for investment bankers. All that’s needed for the user is a supported web browser, and a broadband Internet connection.
The Future of Mashups
Viewing an enterprise mashup as a dynamic business application goes a long way to demonstrating its usefulness behind the corporate firewall. The goals of just about every corporation include the reuse of application logic and data, the need for two-way data communication, and the desire to quickly and easily provide new applications and features to its internal and external users. Enterprise mashups, a.k.a. dynamic business applications, meet these goals head on.
For more information on enterprise mashups, including sample applications, see the following:
•Mashup definition on Wikipedia
•Chicago Police Department crime viewer
Copyright @ 2003 - 2010 Eric Bruno