There is a frequently recurring piece of software development lore that plays on the fact that good programmers are supposed to be lazy. In these stories, a good programmer will take a frequently recurring, monotonous task (like testing) and instead of doing it by hand, will instead write a piece of code once that will do the task for them, thereby automating it for future use.
Put another way, instead of carrying out the work by hand, a lazy programmer will spend 95% of the time allotted to the work by developing code that will carry it out for them, and the last 5% of the time will be spent running it to get the actual work done. Then, every time the task must be carried out in the future, software can be directed to complete it swiftly and automatically.
While this is a simplified model (one must ask who checks the work every time to make sure it's right, how is the code maintained over time, and so on), it's also one of the significant motivations behind the drive for end-user mashups; applying this very same concept of task automation to daily work and life.
How many routine tasks could we get out of our way if we had powerful task automation tools that almost anyone could use? How many one-off tasks could be automated that couldn't possibly justify the expense of custom software development? These problem areas -- automating repetitive work, and automating complex, collaborative problem solving (the tacit interactions I tend to cite so much) -- are potentially ripe for enabling low-barrier tools that let us assemble solutions out of the rich landscape of services that are beginning to flourish in our organizations. This world of available services is already a vibrant ecosystem on the Web.
But even though we have vast arrays of usable components and so many services to leverage today, most frequently achieved for now through basic snippet insertion in HTML, it currently seems to be the lack of enabling tools that's holding back the widespread creation of meaningful mashups. While Google Maps mashups, for example, are possible with very little code, it nevertheless still requires code. And that creates a barrier that the average Web user or enterprise employee will not be able cross without professional intervention. But if the Web really is made of small pieces, loosely joined, it should be possible to create capable, end-user friendly tools that make it possible to quickly combine pre-existing services and components together into applications and living business processes -- carrying out the necessary technical wizardry of integration under the covers -- similar to connecting the pieces of a home audio visual entertainment system together.
Fortunately, as I covered recently with sites like DataMashups.com, the tools do finally seem to be arriving and a week doesn't go by without someone telling me about yet another mashup product heading on its way to market. And though too many of them aren't Web-based, or are still too technical, or have very rough edges and too high a barriers to use, it's clear that a lot of smart people are working hard at solving this last piece of the puzzle; great tools for leveraging the vast repositories of hard-to-recreate data sources, rich services, and Web components that are growing out of the Web 2.0 generation.
A round-up of eight promising mashup tools
While there are certainly advantages and drawbacks to many of the early tools presented here, these eight mashup tools and sites are the best ones I've come across so far. Note that I've not extensively used all of them yet, and this is just my list of potentially promising and interesting tools that I've seen. Any omissions or oversights are entirely mine. As always, if you know of other compelling mashup tools not described here, please be sure to send me a note about them.
Above All Software's Above All Studio is one of the most interesting software assembly tools I've seen so far in the enterprise space. While you can't use their software online, you can create full-blown, new enterprise mashups using their Studio tool. Very SOA-friendly, Above All has spent a lot of time adding the enterprise context to their tool and it shows and you can download and work with Above All studio immediately using with their free trial. While they do get some knocks here by not having a pure SaaS version of the product and for having too steep a complexity gradient, the capabilities are also some of the most powerful available currently. Says Above All about their enterprise mashup capabilities: "Studio's visual modeling capabilities allow you to create new, more useful business services from the low-level services typically found in enterprise IT environments. These refined services make it faster and easier to repurpose existing application functionality as new composite applications. With Above All Studio you can create simplified interfaces, coarser-grained abstractions or combine related services into new services."
Dapper is an impressive new online mashup tool that takes the concept to the extreme, making it possible to convert and reuse just about any source of information on the Web, including that in plain old HTML. While this has non-trivial copyright and other intellectual property implications, the results are impressive. Dapper's user interface is surprisingly easy to use and despite a few clunky areas, it really does offer an end-user set of tools for connecting together services into new services. While I think it's fair to say that Dapper won't let you build the most highly functional applications, it can be an essential tool for "liberating" the data you need access to, making it easier for inclusion in your Web application. Or for consumption by your preferred mashup tool. While I do suggest you are very careful about the provenance of the data sources that you use in your mashups, Dapper does provide an excellent way to quickly enable mashup scenarios that you can't easily achieve any other way.
DataMashups.com is a new highly Web-centric mashup tool that I covered recently because of its extreme user friendliness and compelling Apple Hypercard-like development model, complete with a WYSIWYG "edit" mode. The rich palette of widgets and functionality provided by DataMashups.com and its ability to provide data-driven capabilities by connecting to a long list of standard databases and data sources paints a clear picture of the potential for creating deep, highly functional mashups by end-users. I like DataMashups.com also for its pure SaaS delivery model, which allows easy assembly and hosting of mashups right on the Web and makes it easy to get working quickly. While this model isn't very friendly for certain enterprise scenarios (issues like data security and governance for example), it would undoubtedly be popular for many consumer and small business applications. DataMashups is a tool to watch as they continue to make it even more user friendly and easy to use.
JackBe's JackBuilder product is a browser-based mashup tool with an enterprise bent and is intended to deliver on a vision JackBe calls Rich Enterprise Applications or REAs. JackBuilder is apparently an entirely Ajax based IDE that allows widgets, components, and services to be woven together into enterprise mashups. The JackBuilder product is not currently available for use on the Web or for downloading, but the vision for JackBuilder is an excellent signpost for where the enterprise software development space is headed. JackBuilder seems well positioned to deliver on so-called "situational software" that can be created in a very short time for a specific need and then tossed away, or saved as a template until a similar situation comes up. Interestingly, JackBuilder can be provisioned by the IT department to make sure the many governance requirements of SOA consumption are dealt with consistently with the enterprise mashups JackBuilder creates. Disclaimer: I maintain a professional relationship with JackBe.
Nexaweb's aRex is an intriguing addition to this list because it's more of an OpenLaszlo or Flex competitor in the RIA space than a real mashup tool. I'm adding it here since I believe that Nexaweb understands the Enterprise Web 2.0 space well and will be continuing to evolve this product to full fit into the evolving 'mashosphere'. That being said, the biggest weakness of aRex is that it really can't be used by non-technical people to create mashups. aRex uses the powerful declarative framework approach preferred by most leading RIA vendors these days and makes it easy for the applications you develop to consume a rich set of remote services. Nexaweb does provide a drag and drop GUI editor to make this easier but there are still too many developer-focused features to make it truly easy to create composite applications in the browser. aRex however is an up-and-coming tool that puts Ajax power in the hands of just about anyone who has basic fluency in Web technologies including business analysts and Web designers.
Procession's Process Engine and Process Designer is a serious task-oriented enterprise mashup product. The feel of the product is stiff and enterprisey but it's clear that the product is focusing on the sweet spot in the mashup space; the aforementioned task automation that is likely to provide a lot of the ROI as people try to apply this technique to their business and lives. Also, delivery of applications based on Procession's products seems to be primarily Flash-based, likely making second order assembly and remixing scenarios less likely, though the processes developed do become open Web services based on SOAP. It's clear that Procession's products are firmly grounded in the right ideas and if Procession can make the product go more with the "grain" of the Web, it could be a real contender in the enterprise mashup space. Also, surprisingly, like a lot of the enterprise mashup tools, Procession has no SaaS version or easily downloaded trial to enable grass roots adoption, something that may hinder the ultimate success of many of these tools.
RatchetSoft is system integrator and composite application/mashup vendor and their Ratchet-X Studio product is a medium-weight solution to the rapid application integration problem. RatchetSoft claims that applications can be created with no programming and with a high degree of security. While the Studio product seems aimed more at the OEM market and uses their terminology, it's clear that the product is aimed at helping mashup creators "expose application UI elements so they can be integrated with external applications and data sources, and create processing routines that govern the nature of these integrations." You can download and try out the RachetSoft's mashup tools immediately using the typical but tedious Web request form.
RSSBus is a brand-new mashup tool that focuses on that ubiquitous Web syndication protocol that just about every modern Web site in the world provides content and notifications through. Rather that visual mashups, RSSBus primarily focuses more on the creation of mashups of feeds of data -- as well as many other kinds of data sources -- into a a brand new RSS feed. The creator of RSSBus, /n software (no, not a typo), articulates the vision of RSSBUs as an enterprise service bus based on the RSS protocol: "RSSBus gives you the tools to quickly create structured feeds out of anything; not just news and blog postings, but business data or application data that you own or have access to." While RSSBus unfortunately does not produce feed mashups in other syndication formats like Atom, RSSBus does manage to consume a very wide variety of data sources, turning existing business data sources into powerful RSS feeds that have a very large range of syndication and consumption scenarios, which has sometimes been likened to the Unix pipe of the Internet.
A lot more mashup tools are on the way to market these days, though some are still in the early stages of development and some interesting ones are nearing release. I'll continue to keep this list of mashup tools updated as I'm able in future posts.
Will you consider using mashup tools to automate tasks in your work? If yes, which ones? If no, why not?