JavaStat: a Java/R-based statistical computing environment

Architectures are described which allow a Java-based front-end to run R code on a server. The front-end described here is a Java application called JavaStat (http://javastat.stat.wvu.edu). JavaStat is a highly-interactive program for data analysis and dynamic visualization with data management capabilities. The objective is to bring the high-level functions of R to JavaStat, without excessive duplicative development work. Results returned from R are wrapped and then displayed using linked, dynamic plots in JavaStat. The principal idea is to use Remote Method Invocation to communicate with a Java server program (JRIServer), which in turn communicates with R using Java/R Interface (JRI). Two versions have been implemented. The first (basic) architecture maintains a connection between the client and server in order to return the results from R. This is suitable for small to moderate data sets in which relatively simple models are run. The second (enhanced) architecture queues the requests and uses polling to fetch the results. It is suitable for large data sets and complex models, e.g., those encountered in genomic studies. JavaStat supports the basic architecture out of the box, but a user account is required to enable the enhanced architectures. The enhanced architecture supports workflows, e.g., genomic and modeling workflows.