Saturday, March 17, 2012

ZUNI PuSH - App or API?

I was just answering some questions from Beatrice -- our developer at Trento -- about the ZUNI PuSH system that they are fast completing. We were talking about the filtering feature and how complex or simple it should be. Naturally, I said it should be simple mostly because I think simple search features are more powerful. Simplicity accommodates a vastly larger diversity of queries, and their intentions, than do complex search systems (contrary to theory). However, I made a point to Beatrice which got me thinking. I said that we "should keep in mind that this process provides the subscriber with a filtered feed for them to process. That means that we do not have to, and even probably should not, provide" a complex filter. The point of the system, I went on briefly to say, is that the subscriber can do what they like with the data as they are PuSHed (sent) the filtered feed data. In this way, what we are doing is "much more like and API than an APP", I said.

So this is what got me thinking. We have been treating this system as though it were an App (a Web Application), which it partially is. However, it is an App that allows you to work with feed data as though it were an API (an Application Programming Interface). What APIs do is to allow for an App (App_1) to communicate with another App or system, or many other Apps or systems, so that data from these Apps or systems can be used, modified and reapplied in the App_1. APIs also allow for data to be passed from the App_1 back to the other Apps or systems. APIs are everywhere on the web, but  APIs act in the background, behind a front-end of an App that the user engages with, so users don't usually know they are there.

The ZUNI PuSH system, however, is a bit of a hybrid. Though it is a front end App for people to publish and/or subscribe and filter feeds -- in this way nothing unusual, it actually sends the subscriber the feed data from the filtered feed like an API for the subscriber to process. In this way, the ZUNI PuSH system is like an API.

This may seem like a "technicality", and it is in one sense, but it is actually critical to understanding what it is we are trying to do. The fact that it is both an App and an API shows how this approach is fundamentally different from other access systems such as readers, portals or catalogues. These traditional access systems see information as something that is accessed and referred to. The ZUNI PuSH system sees information more as it is used in mashups -- as something that is used, transformed and recontextualised by the user. The ZUNI PuSH system sees information as a resource, not as a product, and this is a critical difference with far reaching implications.