Friday, January 18, 2008

Integrating Ratchet-X With Other Mashup Tools (Microsoft Popfly, Yahoo Pipes, etc.)

We received a question on our support forum today that had to do with integrating Ratchet-X with other mashup tools such as Microsoft Popfly, Yahoo Pipes and others. Since we received this question a number of times before, I thought it wise to blog about this topic in some detail.

The first logical question one should ask is; “Why in the world would I want to integrate mashups that I create using other tools with Ratchet-X? Isn’t Ratchet-X a competing mashup tool?"

Let me address the second question first. There is no doubt that based on the broad definition of mashup, Ratchet-X can also be considered a mashup tool. I certainly believe this opinion and reflect it in the way we promote Ratchet-X. However, it is not a mashup tool in nearly the same sense that the aforementioned tools are. You use Popfly and Yahoo Pipes to create “new” applications from existing mashups, services and function parts. The end result is a rapidly created new user interface tailored to the specific needs of the user. That’s great! That’s not what Ratchet-X does. Ratchet-X enables users to mash existing services and function parts into existing applications without having to create a new or alternative user interface. That’s the whole point of the product. We believe that while there is a significant market brewing for mashup tools that empower developers and users to rapidly create new applications from existing stuff, we also believe the vast majority of the world wants functionality mashed into the applications they already use – their systems of record so to speak. Given this premise, we do not compete with other mashup development platforms. In fact, we compliment them. This leads me to answering the first question regarding why one would integrate mashups with Ratchet-X.

This question is answered in two parts. The first part is easy. Once you create a mashup using any one of these mashup development tools, in the end, it is still an application like any other. This application has a user interface, performs its function and is static. So as the users' needs change, the mashup must either be modified or cloned and modified to accommodate these new requirements. If the user of the mashup is also the mashup author or has the prerequisite skills to make the changes, great! The changes should be made directly to the mashup.

However, there are two issues of concern. The first being you can see how this can quickly run amok as the number of versions and permutations of versions grows – along with the support headaches. Second, I believe the vast majority of end users using mashups for the foreseeable future will not have the skills required to modify the mashup to accommodate their changing needs. If this is the case, users are left fending for themselves waiting for IT resources to free up and get to their project. How many developers place modifying existing code as a high priority item? Not many. I certainly wouldn’t.

So the user now has an application that needs to have functionality added to it and they do not have the skills or the stomach to modify the application. Well, that’s why we created Ratchet-X. This use case is no different for a mashup application then it is for any other application. Create the appspace, define the regwins and snippets and link to xmodels.

The second scenario is a little more interesting. Say I create a Popfly mashup that returns data that I’d like to integrate into an existing application. Can I use Ratchet-X to get the data out of the mashup interface and into my application of record? Absolutely! All you need to do is create an appspace that profiles both the Popfly results screen and the system of record data entry screen and run the results through Commander’s Task List. Here’s a simple example. Let’s say I create a Popfly mashup that returns a detailed stock quote for a ticker symbol. Assuming I’ve created the appspace described above, when the Popfly results screen is displayed, I can tell Commander to copy the data to Commander’s task list. I can then go to the task that contains the data in the task list and paste it into the system of record screen. In two clicks, I’ve moved the data from Popfly to my other application. And the best part about it is that neither application has any idea that it just exchanged data with other. That’s pretty neat!