I had a chance to talk to Kevin Hakman of TIBCO late last week about their Ajax Challenge (Kevin co-founded General Interface, which was acquired by TIBCO a couple of years back), the goal of which is to build the world’s largest mashup. You have to use General Interface to build it, but more interestingly, you have to use PageBus, a JavaScript client-side message bus that TIBCO just contributed to the OpenAjax Alliance as open source to become part of the OpenAjax Hub 1.0 installation.
The contest is splashy (win an oversized TV! win a video iPod!) but PageBus is the real news here: it provides a message bus for mashups in an attempt to eliminate the spaghetti mess of point-to-point integrations that we’re already starting to see emerge. In the enterprise world, this is why ESBs have become an essential part of any sizable application integration effort: without a message bus, you’re creating a unique integration between each pair of applications. Okay when you have two applications, but not when you have 10. [To be fair, usually you don’t have every application interact with every other application in a complex integration: each one may only interact with a couple of others, but that just shifts the pain point, it doesn’t eliminate it.]
Getting back to mashups and the OpenAjax Hub, the PageBus exposes the basic functions of messaging — publish, subscribe, unsubscribe — all in less than 5k of JavaScript, so that multiple Ajax components on an HTML page can share data using these standard methods. This allows the development of a mashup to be more easily split up between multiple developers since each can focus on their specific component and not on the interface between components; it will also allow for easier “no programing required” assembly of components within a PageBus-enabled mashup framework.
This is a pretty important step in mashup-land: I’m starting to see a lot of things referred to as mashups that are actually portals, where the components don’t intercommunicate, but the fundamental benefit of mashups is that they are an integration, not just components that happen to coexist on the same page.
TIBCO is apparently already using this in their BPM product for things such as task list publication, which means (I think) that you could create a mashup between your iProcess task list and some other component or data source — a real BPM mashup. Although many vendors are starting to provide RSS feeds of task lists/inboxes (I hope that my past year of nagging about this has had some contribution to those efforts), this is the first truly mashup-enabled BPM environment of which I’m aware.
The full OpenAjax Hub specification is about 4-6 weeks away from release, but the project is already on SourceForge. TIBCO will continue to develop the source and contribute to the open source efforts in the future; their press release about PageBus is here.