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