Operator Architecture

With this post, I’m going to go into more detail about the architecture of Operator. To start out, we need to get on the same page with regards to terminology.

Handlers:

In the context of Operator each microformat has handlers associated with it. These handlers are the connections to various services. For instance, the tag microformat has handlers for flickr, delicious, technorati, and upcoming.org. Handlers are have nothing to do with the toolbar per say, they are associated with the microformat itself. Any user interface element could be used to invoke a handler on a microformat.

Actions:

Actions are a concept specifically associated with the toolbar at this point in time. An action is the pairing of a microformat with a handler in the user interface. For instance, if I pair the geo microformat and Google Maps handler, I have an action that looks up a location on Google Maps based on the content of the geo microformat.

When I created the Operator extension, I made a very deliberate distinction between the microformats themselves, and the toolbar. The microformats only contain information that distinguishes the format, such as its description, icon, class name or attribute value and handlers. They also have functions that no how to get a displayable name and to create a JavaScript instance of the microformat.

In addition to the microformats themselves, the Microformats JavaScript class has a number of functions related to finding microformats on web pages and working with them, but it has nothing that is toolbar specific.

So all that being said, I chose the toolbar as the user interface metaphor because I thought it was a good starting point. I see no reason why my architecture can’t be extended for other metaphors.

I invite comments to this post as to other user interface metaphors that could be used for microformats discovery.

Coming in my next post – why on earth did I put Live Clipboard support in Operator? And for that matter, what is Live Clipboard?

Please note: I reserve the right to delete comments that are offensive or off-topic.

Leave a Reply

Your email address will not be published. Required fields are marked *

One thought on “Operator Architecture

  1. I think the way you’ve developed the architecture for Operator is excellent.

    I quite like using toolbar buttons, but I think it would be nice to be able to cusomtise the order / move them to the standard toolbars so as not to use too much space at the top of the screen.

    The other idea I thought of was possibly to have a ‘use data from this page’ / microformats button that then had a drop down of the handlers available.