A few weeks ago I wrote about data mashups. Truth be told, my post resembled more a greased watermelon contest than a tight syllogism, the exact definition eluding my grasp.
Today, I came across a nice post by Dion Hinchcliffe called Is IBM making enterprise mashups respectable?
Dion does a much better job than I did at classifying the different types of mashups, bringing a clear taxonomy to the previously amorphous bunch of Web 2.0 stew. Here are the five types of mashups Dion describes:
- Presentation Mashup: This is the shallowest form of mashup in the sense that underlying data and functionality don't meet. Information and laout is retrieved and either remix or just placed next to each other. Many of the Ajax desktops today fall into this category and so do portals and other presentation mashup techniques.
- Client-Side Data Mashup: A slight deeper form of mashup is the data mashup which takes information from remote Web services, feeds, or even just plain HTML and combines it with data from another source. New information that didn't exist before can result such as when addresses are geocoded and display on a map to create a visualization that could exist without the underlying combination of data.
- Client-Side Software Mashup: This is where code is integrated in the browser to result in a distinct new capability. While a component model for the browser is only now being hashed out as part of Open Ajax, there is considerable potential in being able to easily wire together pieces of browser-based software into brand new functionality.
- Server-Side Software Mashup: Recombinant software is probably easier right now on the server since Web services can more easily use other Web services and there are less security restrictions and cross domain issues. As a result, server-side mashups like those that in turn use things like Amazon's Mechanical Turk or any of the hundreds of open Web APIs currently available, are quite common.
- Server-Side Data Mashup: Databases have been linking and connecting data for decades, and as such, they have relatively powerful mechanisms to join or mashup data under the covers, on the server-side. While it's still harder to mashup up data across databases from different vendors, products like Microsoft SQL Server increasingly make it much easier to do. This points out that many applications we have today are early forms of mashups, despite the term. Of course, the more interesting and newer aspects of mashups happen above this level.
What I like about this is that this definition defines the type of mashup (presentation, data, functionality) and the point of mashup (client, server). Based on this definition, I'd say Ipedo is most certainly in the Server-Side Data Mashup category, with some potential in the Client-Side Data Mashup category.
Joe McKendrick digests and adds some additional comments in Mashup vs. SOA app: what's the difference? Take a read and let me know what you think.