brilliant - azul de coomassie g-250
Implementación de la aplicación brillante R como una aplicación independiente (2)
No estoy familiarizado con ese enfoque, ¿es común? Yo personalmente nunca lo he visto. En esencia, lo que haces es combinar R, Shiny, un navegador web y tu código en un archivo. Es como si el cliente instalara R, Chrome, brillante y ejecutara su código, pero simplemente lo hace todo con un solo clic. Le estás dando literalmente al usuario tu código. No sé cómo funciona, pero si el autor mismo afirmó que el cliente podrá ver el código fuente, entonces tiene sentido para mí y no creo que pueda evitarlo.
¿Por qué no simplemente alojar el archivo en un servidor brillante o shinyapps.io? El cliente no verá tu código entonces. Además, ¿es realmente tan importante que no puedan ver tu código? Muchas veces la gente teme que otros vean su código, pero en realidad a nadie le importa mirar el código de otras personas y robarlo. A menos que tenga un código patentado muy patentado y avanzado.
He desarrollado una aplicación RShiny que me gustaría compartir internamente con mis colegas (Hospedar la aplicación en un servidor, no es una opción en este momento).
Estaba explorando varias opciones, y encontré una técnica para agrupar tu aplicación como una aplicación de escritorio independiente, con un archivo instalador, que luego puedes compartir y distribuir. (El enfoque se explica aquí y aquí ) Esto es bastante claro, porque los usuarios que lo instalan no necesitan tener R (ni ningún otro paquete requerido) para instalar y ejecutar la aplicación (tiene versiones portátiles de R, Chrome, etc.)
Pude seguir el enfoque y crear una aplicación de escritorio independiente, con un archivo de instalación, que ahora puedo comenzar a compartir.
Sin embargo, esta es mi preocupación: idealmente, no me gustaría que mis usuarios puedan acceder al código fuente. ¿Hay alguna manera de restringir dicho acceso? En el tutorial (el primer enlace que publiqué), esto es lo que dice el autor:
*
Por último, tenga en cuenta que su código fuente es de fácil acceso. Si esto le preocupa (por ejemplo, si está distribuyendo a un cliente que no debería tener acceso al código) lo mejor que puede hacer es impedir el acceso compilando primero el código fuente confidencial en un paquete binario. Dicho esto, cualquier usuario que conozca R (y tenga suficiente intención) puede simplemente volcar el código en la consola.
*
¿Hay formas mejores y más inocentes de impedir el acceso?
¡Gracias!
No estoy seguro de si encajaría perfectamente en la cuestión de la oscuridad del código, pero el paquete RInno está diseñado para ayudar con el problema de seguridad de los datos, es decir, cuando una empresa no desea compartir sus datos con un tercero. También automatiza el proceso al que hizo referencia anteriormente y le permite conectar su aplicación a GitHub / Bitbucket para enviar actualizaciones a las aplicaciones brillantes instaladas localmente a través de llamadas API al inicio.
Para empezar:
install.packages("RInno")
require(RInno)
RInno::install_inno()
Entonces solo necesita llamar a dos funciones para crear un marco de instalación:
create_app(app_name = "myapp", app_dir = "path/to/myapp")
compile_iss()
Si desea incluir R para sus compañeros de trabajo que no lo tienen instalado, agregue include_R = TRUE
para create_app
:
create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)
Por defecto incluye brillos, magrittr y jsonlite, por lo que si está utilizando otros paquetes como ggplot2 o plotly, simplemente agréguelos al argumento pkgs
. También puede incluir paquetes de GitHub en el argumento de los remotes
:
create_app(
app_name = "myapp",
app_dir = "path/to/myapp"
pkgs = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"),
remotes = c("talgalili/installr", "daattali/shinyjs"))
Si está interesado en otras características, consulte FI Labs - RInno . Si desea una guía sobre cómo conectarlo a GitHub / Bitbucket, consulte la guía de instalación continua :).