Je dois développer une interface Web permettant à l'utilisateur de saisir des entrées qui seront transmises à un Rscript en tant que paramètres et de renvoyer le résultat à l'utilisateur.
J'ai quelques questions pour quelqu'un qui a créé une interface Web similaire:
R dispose de son propre serveur Web, vous pouvez donc tout faire à l’intérieur de R. Ensuite, inutile de choisir un framework ou de les amener à se parler, etc., utilisez simplement un framework R:
http://cran.r-project.org/web/packages/Rook/index.html
Si vous n'aimez pas cela pour des raisons de performance ou pour d'autres raisons, pratiquement tous les frameworks parlent à R d'une manière ou d'une autre, utilisez donc ce que vous connaissez bien. J'utiliserais Django et appellerais R via Rpy2 ou exécuterais un processus Rserve, mais si vous pouvez programmer en PHP ou en Java, utilisez un framework basé sur ces langages. Si vous ne pouvez programmer que dans R, apprenez Python ou utilisez Rook.
Rstudio a un nouveau serveur appelé Shiny qui utilise node.js pour l'interface utilisateur:
Rstudio fournit une interface Web pour R voir http://rstudio.org/docs/server/getting_started
Vous pouvez exécuter R sur le serveur Web Apache: http://rapache.net/
Un moyen très pratique consiste à combiner Rstudio Server et Rook (voir les autres réponses pour les liens).
Rstudio Server offre un moyen très simple de configurer un serveur R accessible à tous les utilisateurs du réseau. Vous l'utiliserez généralement pour éditer et exécuter votre script sur ce serveur.
Rook vous permet de créer facilement une interface Web en mélangeant du code HTML pour le texte et les interactions (comme les champs de saisie, etc.) et le code R. Une fois que votre script fonctionne, lancez-le simplement à partir de Rstudio Server, et tout utilisateur (avec accès) pourra s'y connecter, sur la même adresse IP que Rstudio Server.
J'utilise cette configuration avec googleVis et j'en suis très satisfait.
À mon avis, OpenCPU est actuellement le package gratuit le plus avancé pour la création de services Web sans état (REST) dans R. Shiny est un excellent cadre. Toutefois, si vous prévoyez d'utiliser la version communautaire gratuite, notez qu'il ne gère pas les appels simultanés .
Il y a une bonne liste sur le site Web R - http://cran.r-project.org/doc/FAQ/R-FAQ.html#R-Web-Interfaces