PubDown Architecture

PubDown has a layered design with four tiers: (i) web interface, (ii) logic, (iii) execution engine, and (iv) persistence. The Fig. 1 shows the PubDown architecture

The PubDown web interface uses the ZK framework , which allows to develop a desktop-like application with an environment that uses AJAX communications between user and server. In the web interface layer, the logic is managed by controllers. The design of the logic layer is based on the Model-View-ViewModel (MVVM) pattern which reduces the coupling between UI and the controllers. PubDown defines three different controllers: (i) Scopus controller, which manages the Scopus downloads (ii) PubMed controller, which handles the PubMed downloads, and (iii) Weka controller, which administrates the corpus file creation.

The execution engine layer is the most important part of the application. The engine is the core of PubDown and run every task asynchronously. It can be configured to allow a maximum number of tasks in order to control memory and processor consumption, and it is isolated from the UI to run the tasks even if the user closes its session. Finally, the persistence layer is responsible of storing the papers and its metadata. All the papers and its metadata are kept in the server.