Feb 04 2008

About abstraction

Tag:Tag , Andrea @ 10:52

In my last post I wrote about the idea of an abstraction layer to be built in order to create a sort of common basis for further software modules. Let us discuss this idea here.

An abstraction layer is “a way of hiding the implementation details of a particular set of functionality” [Wikipedia]. To give an example from everyday life, we could say that when we drive a car we use an interface (the steering wheel) to command the hardware (the wheels): the wheels don’t turn directly at our command, but there is some mechanism (probably power steering) which helps us and makes the steering easier. That mechanism acts in a very similar way as an abstraction layer does.

Now imagine a car where you can choose between using a steering wheel and some other gadget, as a handlebar or a joystick. It would be very useful if the power steering could receive its inputs and translate them into a standardized output for the wheels. In that case, it would probably be the best abstraction layer you could imagine.

Since farfalla is web based, the abstraction layer will be between the user interface(s) and the web-browser. It will consist in a intermediary program which can receive input directly from the keyboard or from another program, translating it directly into something that the web browser can easily understand.

It should also provide a way to receive data from the web browser and translate it into a more accessible way, for example in plain text.

This whole work will be done using Javascript and probably AJAX methods.

There are some well known issues in cross-browser compatibility, so the project will initially only support the Mozilla Firefox web browser: it is free and open source, cross-platform and also installable on a pendrive.

Leave a response