Mashup as Software = MashWare

Nov 09, 2011
Diego Vergara

"The massive popularity of the World Wide Web is turning the web browser from a document viewing tool into a general-purpose host platform for various type of services, including desktop-style web applications. Web applications require no installation or manual upgrades, and they can be deployed instantly worldwide."

The beauty of web applications is that they avoid the installation process or even the update process to regular users who can decide which application they want to run, from word processors to even programming environments without the inconvenience of; required libraries, specifics platforms or version conflict. All the user needs is a browser - the rest is done in the web where the developers deploy their applications. In my opinion: It doesn't matter which programming language you use - in a web environment we can truly say "build it once, run it everywhere" (I know this phrase belongs to Sun and its programming language: java).

Then what's the big deal with mashups?

"Web 2.0 technologies combine two important characteristics: collaboration and interaction"

Collaboration refers to the social aspect where users can share data, services and applications, this characteristic is well known but Interaction is not to. Interaction refers to the ability to work as a desktop application, instead of refreshing the entire page when a control is updated, only that control is updated (ICEFaces call this Partial Submit) delivering a better end-user work.

"A mashup is a Web site that combines content from more than one source into an integrated experience"

Usually a mashup is known for mixing maps content with any other data, which allows you to represent that information in a visual context with coordinates. But a mashup is not only that; it can combine any kind of content while that mixing represents something useful like a library that displays an intro for any book and a price comparison taken from amazon.com and oreilly.com.

What Antero Taivalsaari proposes in his paper Mashware: The Future of Web Applications is Software as a Mashup - Mashware - where the development focuses in the dynamic integration of components that are taken from all over the web, making the browser the scenario where all the components are mixed so the user has the opportunity to customize the interaction or even the mashup behavior. This level of re-utilization will improve the way that web development is done these days.

"The Web could be the enabling factor that would finally make large-scale software reuse a reality rather than just a perpetual dream."

Is there a difference between Cloud Computing and Mashware?

Basically Cloud Computing implies "thin client" because the heavy load process is done in the server, while the mashware conceptualizes a "fatter client" where most of the process is done in the client. This leverages a huge difference: "...Mashware applications are not necessarily bound only to a single web server at a time"; this could be seen as a mixture between concepts - so the author puts in an equivalence where mashware can be compared to Rich Cloud Computing. However for security reasons current browsers disallow this; cross-domain Ajax rejections.

My next post will touch on the virtues of dynamic languages like JavaScript in mashware development and some web IDE for mashware creation.