Difference between revisions of "RReportGenerator on the Web"

From Wikili
Jump to: navigation, search
Line 1: Line 1:
[[RReportGenerator]] is also available through a web interface.
+
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 http://lbgi.igbmc.fr/rreportgenerator]
 
   [http://lbgi.igbmc.fr/rreportgenerator http://lbgi.igbmc.fr/rreportgenerator]
  
 
=How it works=
 
=How it works=
The main tcl program '''rrg.tcl''', written by Luc Moulinier, remains nearly unchanged. We replaced the call to 'main' with following lines :
+
The main tcl program '''rrg.tcl''' (mostly code by Luc Moulinier) remains nearly unchanged. We replaced the call to 'main' with following lines :
 
<source lang="tcl">
 
<source lang="tcl">
 
global env
 
global env
Line 18: Line 19:
 
* (We should find a better way to test if it concerns http ...)
 
* (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 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''' and sends a html page to the web browser.
+
* 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.     
 
* 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.
 
* The user can switch between existing projects (if he knows the password) or create a new project.
Line 26: Line 27:
  
 
=Installation=
 
=Installation=
==To run RreportGenerator on the Web you need==
+
==To run RReportGenerator on the Web you need==
 
# A http web server (we use Apache)
 
# A http web server (we use Apache)
 
# An already installed RReportGenerator
 
# An already installed RReportGenerator

Revision as of 10:40, 3 November 2010

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

  1. A http web server (we use Apache)
  2. An already installed RReportGenerator
    1. with the files rrg.tcl and rrg_web.tcl or their binary version
    2. the logos RRG_logoTransparent.gif, RRG_generateReport.gif, LogoIGBMC.gif and your LocalLogo.png
    3. access to R, latex and pdflatex
  3. If you are running 'not compiled scripts' you need Tcl8.5 or higher

Where have the files to be located

  • we need a directory accessible by the web server. We call it rreportgenerator
  • rrg.tcl, rrg_web.tcl 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)
  • in the same directory must exist a sub directory called Web which will contain 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

  • To allow the execution of the .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
  • if you want to allow the url http://http_server/rreportgenerator
    • create a file index.html in rreportgenerator with a redirection to rrg.tcl
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <html>
 <head>
 <meta http-equiv="REFRESH" content="0;url=./rrg.tcl?commande=WebForm">
 </head>
 </html>
    • or do it in the apache configuration