AOPWrapper

From Pedro

Jump to: navigation, search

The conversion of legacy single-user applications to collaborative multi-user tools is a recurrent topic in groupware settings. Many works tried to achieve collaboration transparecy: to enable collaborative features withouth modifying the source code of the single-user application. In this paper, we classify these efforts in two categories: whitebox and blackbox transparent models. Whitebox approaches require the knowledge and access to the original source code of the tool, whereas blackbox approaches achieve complete transparency by intercepting or wrapping user interface libraries and input events. We outline the advantages and drawbacks of computational reflection techniques like software introspection and interception as essential tools for enabling transparent collaboration. Introspection is important for capturing and injecting user events and for accessing information about the software components. Interception mechanisms like Aspect Oriented Programming (AOP) are useful for achieving transparent software wrapping. We present a novel blackbox solution based on lightweight wrapper technologies (Aspect Oriented Programming) and computational reflection. We validate our approach with existing Swing-based aplications like a Web browser (Lobo), a pdf viewer (PDF Renderer), a game (Mahjongg), and with an AWT-based toolbox for Lucene Indexes (Luke).

Demonstrations:

These are some example applications we have used to validate our prototype. We provide them already leveraged in order to allow users to quickly realize what AOPWrapper is able to do. Once you have got the files, you only have to edit the config.properties file properly.


Binaries:


Source code:



Warning: AOPWrapper requires access to an ActiveMQ server in order to broadcast all AWTEvents. So you have to either get an ActiveMQ server installed or have access to one.

Personal tools