Although mashups started out in the consumer space, their success makes a migration into corporate IT environments inevitable. Firms exploring this new software development model may struggle at first to understand the importance of mashups from a corporate perspective. In the upcoming book, Mashup Patterns, author Michael Ogrinz provides a collection of use-case driven patterns intended to explain the value of enterprise mashups to both technical and non-technical readers. We recently interviewed Michael about the patterns and what he hoped to achieve with his book.
Q: Can you give us a bit of background on the origin of “Mashup Patterns”?
During my day job as an architect at a major financial services firm, I meet with a lot of vendors. About two years ago, the “mashup companies” came knocking at our door. At first, I dismissed them. They seemed too much like the brittle screen-scraping solutions of the past, or required us to Web Service-enable everything.
I started spending more and more time thinking about the underlying technology and how it could impact the problems a professional IT teams face on a daily basis. The list of potential uses suddenly exploded. But I still couldn’t get the traction I needed around the office, which I partly blamed on the confusion created by conflicting vendor marketing strategies. What the industry needed was an objective set of ideas for how mashups could add value, regardless of the particular tool. I realized that a lot of my thoughts could be distilled into generic patterns. Not quite the academic, Gang-of-Four kind, but something a little more rooted in practical use cases. And the material had to be approachable by non-developers – ‘power-users’ that could create their own solutions with the many new mashup tools popping up.”
Q: How have you organized the patterns in this book?
The core of the book is organized into a set of 34 patterns grouped into five main categories. This structure is intended to organize the patterns according the circumstances where they add the most value.
Harvest: Mine one or more resources for unique data
- Alerter: Mashups do not necessarily present data directly to a user. Intelligent Agents can be configured to automatically monitor various conditions and trigger alerts
- API Enabler: Create a custom API for static resources (e.g., web pages) so that they can be utilized as a dynamic data source
- Competitive Analysis: Extract pricing and product information or advertising trends from competing firms to compare against your own offerings
- Infinite Monkeys: Automate a repetitive task to a scale unachievable by normal human agents
- Leading Indicator: Use a mashup to regularly monitor information that may indirectly serve as a leading indicator
- Reality Mining: Incorporate environmental and behavioral data to better understand human interaction
- Reputation Management: Use mashups along with Sentiment Analysis techniques to be scan for words that connote emotion and then rank how a document “feels”
- Time Series: Use a mashup to extract and store information at regular intervals in hopes of observing trends in the data
Enhance: Extended the capabilities of existing resources
- Accessibility: Construct an alternative application interface with no impact on the original code base
- Feed Factory: Create an RSS/Atom Feed for a site that doesn’t expose a feed, and create new feeds by remixing existing ones
- Field Medic: Provide a temporary patch to a system when you are unable to correct the problem directly
- Folksonomy Enabler: Add community-driven tagging or rating features to existing applications
- Smart Suggestions: Enhance productivity by using mashups to suggest material relevant to users’ tasks
- Super Search: Apply business specific knowledge to enhance user search activity so that results are obtained from multiple sites relevant to the problem domain. See illustration below.
- Translation: Pass content through a service to add clarifications or convert it to a different language
- Usability Enhancer: Construct a mashup “wrapper” (or façade) which exposes only the functionality necessary to use the system.
- Workflow: Add workflow capabilities to a system or chain of systems
Assemble: Remix existing data and interfaces to serve new purposes
- Communication and Collaboration: Combine internal communication products to solve problems related to Interruption Overload
- Content Aggregation: Multiple resources are combined to remove inefficiencies caused by frequent task-switching between applications
- Content Integration: Extend a system that accepts an incoming feed by mashing together multiple sources into a new feed that conforms to the original standard
- Distributed Drill-Down: Provide Master/Detail functionality across multiple systems
- Emergency Response: Create an ad hoc solution in situations where response time is crucial
- Filter: Remove unnecessary or unneeded data from a system or data feed
- Location Mapping: Geocode data for location mapping or address verification
- Splinter: Separate a unified data source into smaller, specialized streams of focused information
Manage: Leverage the investment in existing assets more effectively
- Content Migration: Migrate information from one or more applications to a new environment
- Dashboard: Acquire and display summary status information from multiple systems on a single-page
- Portal Enabler: Move existing content onto enterprise Portals without requiring custom coding.
- Quick Proof of Concept: Use mashups to validate a business or product idea that will entail a significant investment
- Single Sign-On: Allow a user to supply credentials one time for authentication across multiple internal and external systems
- Widget Enabler: Repackage existing systems for viral distribution via popular Widget platforms
Testing: Verify the performance and reliability of applications
- Audit: Use mashups to create an aspect-oriented view of application usage
- Load Testing: Multiple mashups run simultaneously can simulate the activity of hundreds of users and assist in load and stress-testing
- Regression Testing: By employing a predefined collection of data, ensure that input/output results across versions are as expected
Q: How are these patterns presented?
Each pattern is presented as a problem/solution pairing, and with a Fragility rating. Since mashups can be more brittle than traditional coding solutions I think it’s important to understand where they might break so organizations approach them with reasonable expectations. The patterns are accompanied by several examples intended to show their value under a variety of different circumstances. On an academic note, there are probably only a few mashup ‘patterns’ in the more traditional sense of the word: Data Acquisition, Data Entry, Transformation, etc. But that wouldn’t really help the layperson see the value of mashups. So instead, I define these operations as ‘Core Abilities’, and each of the patterns above leverages one or more of them. This helps at tool-picking time, too. You identify the patterns you’ll use, and then choose the product that supports the core abilities required to implement them.
Q: Does the book include real-world case studies of some of these?
Yes, I was able to obtain a collection of case studies from a number of firms including The Associated Press, Audi, the Defense Intelligence Agency, SimplyHired, and Thompson Reuters. There were other companies that were unable to attach their names to the text due to legal restrictions but their experiences should nevertheless show that mashups are already an important component of many organizations’ IT departments.
As part of our goal to provide expanded coverage of Enterprise Mashups, we’ve invited Michael to join us in sharing his thoughts and experiences in future posts. We’ll review case studies from major corporations, look at the legality and governance challenges enterprise mashups face, plus we'll begin comparing the commercial products and evaluating them by cost, capability, and usability.