Mashups and SOA

It does not take a rocket scientist to understand that mashups are moving from something conceptual and fun to productive and businesslike. In fact, developers are leveraging mashups to solve all sorts of business problems. The speed for production and the value of these little applications are compelling.

However, two factors must also be considered: the mixing and matching of resources found on the Web and within the enterprise, and the true composite application, such as the one defined in the world of SOA. Thus, mashups are indeed SOA, and SOA includes mashups.

Patterns emerge
While the concept of mashups is still developing, clearly the solution patterns are becoming more sophisticated as they now combine the up-and-coming concepts behind SOA. To that end, two types of mashups are surfacing: visual and non-visual.

Visual mashups are familiar to us as we mash Google Maps with a sex offender database, or a real-time stock ticker with a portfolio manager. The value is there; take two resources and create something more useful than the applications would offer separately. It's kind of a 1+1=3 thing.

Visual mashups provide the ability to change the way a visual interface behaves by mashing it up with other content or services.

While visual mashups are typically Web-site-to-Web-site, we are seeing more of the Web-site-to-enterprise (SOA) variety these days. Examples would include a mashup of Google Earth with your sales figures or your sales figures with your logistics system.

Non-visual mashups involve the mashing up of two or more services to create a combined application or integration point to service a business process. What's unique is that they may not externalize anything to a user interface. In essence, they operate behind the scenes, but they are mashups nonetheless.

Non-visual mashups are the mashing up of two or more services that create a composite and do not leverage a user interface or other visual properties.

Examples would include mashing up a stream of customer addresses with an address validation service, or mashing up a stream of social security numbers with a credit check service. Each non-visual mashup, perhaps, is sending exceptions off to another stream or queue for processing later, or perhaps to other mashups. This is simple, and I bet you can think of even more complex and valuable non-visual mashups for your own enterprise using your SOA services, externally hosted services or a combination.

Mashups and System Architecture


Thus, when talking about mashups in the context of architecture, you’re typically discussing SOA. In fact, mashups are one of the most successful aspects of SOA. The use of mashups is exploding now, offering the best proof point of SOA.

If you're talking about Webby applications, then perhaps WOA, or Web-oriented architecture, is a better term. It really does not matter to me, as long as we're discussing the use of Web-based and enterprise-based resources and services that are knitted together to form a solution. Or, more important, we’re talking about resources and services that provide the ability to recreate the solution (the composite) without a lot of latency, in essence, adding the notion of agility, a core benefit of SOA.

Today, many people who build mashups don't think of it as SOA. However, the core notions of SOA and WOA are clearly working when considering mashups. I view mashups as a mechanism that proves the SOA concept. As time goes on, the concept of mashups will morph into traditional development and become part of the architecture.

While mashups are an innovative way to build cool applications from many available resources, visual and non-visual, they are still composite applications. While there are mashups that are completely Web-hosted, more and more are a mix of Web and enterprise resources, as well as mashups that are true enterprise mashups.

Though mashups did not emerge from the core concepts of SOA, they indeed provide some core SOA mechanisms, including:

1. The ability to place volatility into a single domain, thus allowing for changes and for agility.
2. The ability to leverage services, both for information and behavior.
3. The ability to bind together many back-end systems, making new and innovative uses of those systems.

This, however, does not mean that mashups are not innovative; clearly they are. Moreover, it does not mean that mashups are not extensions of the core notion of SOA. Remember, SOA is not a term, but rather an architecture pattern.

David S. Linthicum is a managing partner at ZapThink. Reach him at david@zapthink.com.

June 15, 2008