We need a mashup runtime

After conversation with Cefn Hoile yesterday, I drew this:

Thumbnail of drawing

I’m starting with a view of the Internet as a series of sexy services that we might want to mash together. But there’s a problem with this, which is that we can’t get them to talk directly to one another, so setting up mashups without some sort of intermediary is tricky or not possible in a lot of circumstances. I illustrate this with the example of Twitter – whilst it is a useful gateway from the mobile world into the web, you can’t specify arbitrary behaviour with the data it collects.

The usual solution to this is how mashups are typically written – someone writes some PHP, Ruby, JavaScript, XSLT, Perl, Python, etc. to collect the data and mash it up. That’s ok, but what if we can’t program? That’s where the idea of encapsulating some of these behaviours in “blocks” comes in. We assemble these like lego bricks to do what we want. This is not a ground-breaking idea – there are a lot of companies trying to make this easy for people: Microsoft PopFly, Teqlo, Yahoo! Pipes, OpenKapow, Proto, MashMaker from Intel, WebWidgetry, IBM QEDWiki… These services move a step away from having to write a mashup yourself, but they present another series of problems: for instance, what if I want control over my lego bricks, what if I want conditional execution and branching? The simplification doesn’t reach far enough for this customisation to happen if you’re not a programmer, if it lets you at all. Furthermore, what do we do if we want to create an interaction with services that are not a part of the Internet, what if I want to interact with my desktop, my cooker or my USB fan?

If libraries are the modular abstractions of traditional programming, with an associated environment to run in and be called from, what is the analogous environment when our libraries are these lego bricks?

There is much talk of the web as a platform, and I’m interested to see how far this idea goes. How much can we decouple programming from the IDE’s and runtimes that we’re used to, and create a new model for working in the cloud?



  1. Keith
    Posted August 20, 2007 at 4:54 pm | Permalink

    The WSO2 Mashup Server can give you a complete mashup runtime. You can write mashups using JavaScript and E4X extention. We also offer variety of metadeta and also expose your mashups as web services which makes it easier for you to consume your mashups (and make better, richer mashups). Its still an 0.1 release with 0.2 scheduled for end of next month. Its completely open source so step in and provide your ideas. They are most welcome.

  2. Posted August 24, 2007 at 5:04 pm | Permalink

    have you had a chance to check out http://editor.googlemashups.com. Piotr did a nice hello world example here http://www.woloszyn.org/2007/08/05/google-mashup-editor/ . It has the possibility of reducing making mashups into HTML like script.

    Everyone can put together a noddy HTML page, right?

  3. Posted September 7, 2007 at 8:29 pm | Permalink

    Hi Jay! Thanks for the link in your article. Also, yesterday I published some new content on our platform which I just want to point you to, as it pertains to this post of yours.

    Funny, if you check out the latest post on widgetsandmashups.com (just written last night) – I’m talking about a runtime as well 🙂

    Didn’t that happen with you and I once already before, only the other way around? We blog alike, heh.

  4. Posted September 7, 2007 at 8:30 pm | Permalink

    Oh, the new content is actually best viewed starting on http://www.someElement.com (a forward of sorts).

  5. Posted September 19, 2007 at 2:48 pm | Permalink

    Check out AlchemyPoint, a new end-user mashup platform from Orchestr8.

    It provides a complete mashup runtime environment, with full control over conditional branching, scripting, data transformations, etc. It’s a totally programmable mashup environment.