Si:
- por cualquier motivo debe hacerse completamente en R
- tienes más tiempo para gastar en
- necesitas un fuerte control sobre todo
- eres bueno en HTML, JavaScript, jQuery, Bootstrap (o paquetes y marcos similares)
- eres bueno en R y no te asusta la programación de “nivel inferior”
→ entonces sugeriría OpenCPU sin duda.
Pero hay que pagar un precio: sin widgets, sin “fantasías sofisticadas” y componentes listos para usar. Solo R, servicio web, JavaScript, y usted. Incluso se debe implementar el control del acceso del usuario. Manejé esto integrando mis aplicaciones con Active Directory, que consulto a través de la herramienta de línea de comandos “openldap”, luego analizo el resultado y genero un “token mágico” para la autenticación posterior (recuerde, esto no tiene estado, ¡no es una sesión de usuario típica!) . Pero estoy bastante seguro de que los mecanismos expuestos por el servidor Apache (OpeCPU se basa en Apache2) también podrían usarse.
- ¿Qué debe hacer al preparar una aplicación web para pruebas beta desde el punto de vista frontal?
- ¿Cuál es la diferencia entre PhoneGap y las aplicaciones nativas?
- ¿Cuáles son los pros y los contras de usar Coffeescript para las aplicaciones del lado del servidor Node.js?
- ¿Cuáles son los principales módulos de un sistema central de reservas de hotel?
- ¿Cómo se diseñaría una base de datos para una aplicación web que permita a los usuarios crear sus propias páginas web basadas en una plantilla compartida entre todos los usuarios?
También tendrá que ocultar su código del “mundo exterior”. Esto se debe a que el verbo “OBTENER” muestra el código de una función determinada. No quiere mostrar a los “hackers” el código de su sistema, ¿verdad? El código se puede volcar de múltiples maneras, a través de GET, a través de print (), a través de stop (), a través de RMarkdown, etc. Abordé este problema (bueno, eso no es un problema, Jeroen lo diseñó intencionalmente) usando el túnel VPN (OpenVPN) o HTTPS y creé algunas reglas mod_rewrite + mod_security en Apache.
Shiny es como Java / .NET, mientras que OpenCPU es como C ++. No diría que esto plantea problemas serios si eres al menos un programador de mediana experiencia. He estado usando OpenCPU comercialmente desde su primera versión, y realmente me gusta por su flexibilidad, bajo nivel y la falta de capas intermedias adicionales.
Algunas personas podrían argumentar que esto no es prudente y que mejor debería ir por un camino diferente, empleando lenguajes más tradicionales para la creación de un servicio web. No estaría de acuerdo. Depende de tus requerimientos. Cuando creo algo “serio”, lo hago basado en .NET Framework (ASP.NET MVC) + conector apropiado para R. Pero en aplicaciones pequeñas y medianas R juega realmente bien y consume muchos menos recursos. Realmente aprecié el hecho cuando implementé un servicio web en Raspberry Pi.
La elección es tuya 🙂