RReportGenerator on the Web

From Wikili
Revision as of 10:26, 18 November 2010 by Ripp (talk | contribs)
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.

 http://lbgi.igbmc.fr/rreportgenerator

How it works

The main tcl program rrg.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
    main
} else {
    source "[file dirname [info script]]/rrg_web.tcl"
    MainWeb
}
  • (We should find a better way to test if it concerns http ...)
  • If launched as local program, rrg.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.

Installation

To run RReportGenerator on the Web you need

  • A http web server (we use Apache)
  • The compiled RReportGenerator distribution rrg.tgz which contains
    • the executable rrg.exe (=rrg.tcl + rrg_web.tcl + tcl runtime library)
    • the logos RRG_logoTransparent.gif, RRG_generateReport.gif, LogoIGBMC.gif and your LocalLogo.png
    • a directory containing Scenarios and Indata
  • 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

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.tgz "http://lbgi.igbmc.fr/rreportgenerator/rrg.tgz"
tar -zxvf rrg.tgz
ls -l
#Uncomment following lines if your want your own Web subdirectory located somewhere else 
#mv Web WebFromDistribution
#ln -s /some/where/else/MyWeb Web
  • rrg.exe, 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.exe

  • To allow the execution of the rrg.exe as cgi-bin you need following line in the apache configuration file
  ScriptAliasMatch ^/rreportgenerator/rrg.exe /real/path/to/the/directory/rreportgenerator/rrg.exe
  • 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.exe
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 <head>
 <meta http-equiv="REFRESH" content="0;url=./rrg.exe?commande=WebForm">
 </head>
 </html>