RReportGenerator on the Web

From Wikili
Jump to: navigation, search

While the original RReportGenerator is/was designed as stand-alone, now we've developed a version that is available through a web interface. This should allow users to benefit of servers that are much more powerful, in particular if the applications are memory consuming.


To run RReportGenerator on the Web you need

  • A http web server (we use Apache)
  • Access to R, latex and pdflatex
    • for Linux we use which R , which latex and which pdflatex
    • for Windows we search in the directory defined as the environment variable ProgramFiles
  • The unique file rrg.tcl (it's not the source file but the compiled file !!!)
    • It contains all what you need (=rrg_main.tcl + rrg_web.tcl + tcl runtime library + index.html + Logos + test scenarios and indata)
    • At first run it extracts automatically the logos, index.html and creates the Web directory where the Scenarios, Indata and Outdata will be stored

Installation on Linux

  • we need a directory accessible by the web server. We call it /var/www/rreportgenerator
#suppose www-data is the user running the web server
sudo su - www-data
cd /var/www
mv rreportgenerator rreportgenerator.OLD
mkdir rreportgenerator
cd rreportgenerator
wget -O rrg.tcl "http://lbgi.igbmc.fr/rreportgenerator/rrg.distrib"
# please notice the '.distrib' extension (it's the stable version)
  • rrg.tcl, index.html and the logos (with your LocalLogo.png) have to be in that directory (if not in the same directory you can use unix links to simulate it)
  • the sub directory called Web contains the scenarios, input and ouput files for all projects. (use links if they are elsewhere)

We can now use the url http://http_server/rreportgenerator/rrg.tcl

If this is done you can even use the url http://http_server/rreportgenerator

  • To allow the execution of the rrg.tcl as cgi-bin you need following line in the apache configuration file
  ScriptAliasMatch ^/rreportgenerator/rrg.tcl /real/path/to/the/directory/rreportgenerator/rrg.tcl
  • Notice : to allow the url http://http_server/rreportgenerator
    • do it in the apache configuration or ...
    • use the file index.html in rreportgenerator with the redirection to rrg.tcl
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <meta http-equiv="REFRESH" content="0;url=./rrg.tcl?commande=WebForm">

Write permissions

For the Web version

The user running the http server needs to have write permissions to

  • /var/www/rreportgenerator/Web where he creates
    • /var/www/rreportgenerator/Web/web.log
    • /var/www/rreportgenerator/Web/RRGDataForWeb containing the temporary files and RRG_config (can be modified)
    • /var/www/rreportgenerator/Web/ProjectX created when the user creates a new project ProjectX

For the standalone version

When a user runs rrg.tcl he creates

  • ~user/RRGConfiguration containing RRG_config and the temporary files
  • the Output files in the directory defined as Output Folder

How it works

The main tcl program rrg_main.tcl (mostly code by Luc Moulinier) remains nearly unchanged. We replaced the call to 'main' with following lines :

global env
if {! [info exists env(QUERY_STRING)] && $argv=={}} {
    package require Tk
} else {
    source "[file dirname [info script]]/rrg_web.tcl"
  • If launched as local program, rrg_main.tcl requires the package Tk and runs normally
  • If launched by the web server, rrg.tcl sources the additional file rrg_web.tcl (code written by Raymond Ripp) and sends a html page to the web browser.
  • Any action from the user through his web browser will rerun rrg.tcl, the arguments are always transfered within the web page and users queries, avoiding use of session variables.
  • The user can switch between existing projects (if he knows the password) or create a new project.
  • Within a project he can select, delete or create scenarios and input files.
  • After selection of a scenario and input file the user can run RReportGenarator. This lauches the normal rrg.tcl from Luc and stores the result in the OutputDir of the project.
  • These output files can be shown, downloaded and deleted by any user knowing the password of the project.