¿Qué debo elegir para una aplicación web altamente personalizada en R, Shiny vs. OpenCPU?

Si:

  1. por cualquier motivo debe hacerse completamente en R
  2. tienes más tiempo para gastar en
  3. necesitas un fuerte control sobre todo
  4. eres bueno en HTML, JavaScript, jQuery, Bootstrap (o paquetes y marcos similares)
  5. 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.

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 🙂

More Interesting

¿Existen buenas aplicaciones web de código abierto (preferiblemente basadas en LAMP) para crear cuestionarios de autoidentificación política?

¿Elegirías Django sobre PHP y SQL para tu aplicación web y por qué?

¿Es posible realizar un seguimiento de las actualizaciones del plan con Google Analytics?

¿Cuál es la mejor manera de comunicar un flujo de trabajo para una aplicación web de consumo?

¿Qué es una aplicación web?

¿Puedo crear una aplicación basada en web usando PHP?

¿Es un mal movimiento no incluir algún tipo de registro de correo electrónico / creación de cuenta al crear una aplicación web y solo confiar en el registro / inicio de sesión social?

Cómo bloquearme de Facebook

¿Qué pasos debo seguir para desarrollar una aplicación .NET donde los usuarios de la aplicación puedan agregar o eliminar elementos de formulario dinámicamente según la elección?

Referencia cruzada múltiples relaciones de muchos a muchos. ¿Qué base de datos debo elegir?

¿Qué tan complicado es crear funcionalidades de reconocimiento de imágenes personalizadas en mi aplicación web? ¿Algún estadio sobre costos y tiempo?

¿Cuál es el mejor sistema SSO basado en la web?

¿Cuál es una buena estrategia para competir con una aplicación web ya existente y popular que está dentro del mismo nicho y tiene el mismo propósito general?

¿Qué tipo de aplicaciones utiliza para realizar un seguimiento de los cómics web que lee?

¿Qué es una API en desarrollo web?