Date Редакция Категория comp Теги R / Shiny

Перевод-пересказ руководства.

Теперь вы можете с помощью Shiny создавать полезные приложения. Но как поделиться ими с окружающими? На этом уроке мы познакомимся с несколькими путями распространения Shiny-приложений.

У вас есть две основные возможности для распространения приложений:

  • распространять приложение в виде двух файлов: server.R и ui.R. Это простейший способ, но он работает только тогда, когда на компьютере пользователя уже установлен R и пользователь умеет с ним работать. В этом случае пользователи могут запускать скрипты приложения Shiny как обычные скрипты;
  • распространять приложение в виде веб-страницы. Этот способ не требует от пользователя никаких предварительных знаний: он может общаться с приложением при помощи браузера, как с любой другой страницей в Интернет. Пользователь получает приложение уже полностью готовым к работе.

Распространение приложения в виде двух R-файлов

Любой пользователь R может запустить Shiny-приложение. Для этого понадобятся скрипты приложения server.R и ui.R и, возможно, дополнительные материалы, используемые в приложении (вроде папки www или файла helpers.R, как это было на предыдущих уроках).

Вы можете отправить эти файлы другому пользователю по электронной почте (возможно, в виде архива) или разместить их в онлайновом хранилище данных.

Получив файлы, пользователь размещает их у себя в рабочем каталоге R и запускает так же, как это делали вы на вашем компьютере.

# install.packages("shiny")
library(shiny)
runApp("census-app")

zip.png

Shiny имеет три встроенные команды, которые позволяют запускать файлы, размещённые в сетевых хранилищах: runUrl, runGitHub и runGist.

runUrl

runUrl скачивает и запускает приложение Shiny, расположенное по заданному адресу.

Чтобы использовать runURL нужно:

  • сохранить каталог вашего приложения в виде zip-файла;
  • разместить этот zip-файл на веб-странице, указав ссылку на него.

Теперь любой может скопировать эту ссылку (the weblink) и, войдя в R, выполнить команды:

library(shiny)
runUrl( "<the weblink>")

runGitHub

Если своего сайта для размещения файлов приложения у вас нет, можно разместить их в общедоступном сетевом хранилище, вроде www.github.com.

Github широко используется для хранения приложений на R, но его возможности этим не ограничиваются. Github -- это средство поддержки коллективной разработки приложений, которое позволяет отслеживать историю изменений приложения, вести вики, общаться с пользователями и т.п. Для использования Github, нужно зарегистрироваться на нём (бесплатно) и выбрать имя пользователя (user name).

Чтобы распространять своё приложение с помощью Github, создайте на Github репозиторий своего проекта. Затем поместите в этот репозиторий файлы server.R и ui.R, а также все необходимые приложению папки и файлы.

Ваши пользователи смогут запустить приложение, набрав:

runGitHub( "<your repository name>", "<your user name>") 

runGist

Если вы хотите разместить свои файлы анонимно, Github предоставляет для этого специальный сервис gist.github.com. Чтобы воспользоваться им не нужно даже регистрироваться на Github. Gist -- это простейший способ поделиться с другими своими Shiny-приложениями.

Чтобы разместить своё приложение на Gist нужно:

  • скопировать и вставить файлы server.R и ui.R приложения на веб-страницу Gist;
  • запомнить URL, который Github даёт странице с вашими файлами на Gist.

Как только вы сохранили ваши файлы на Gist, пользователи смогут запустить ваше приложение с помощью

runGist("<gist number>")

где "<gist number>" -- номер, который находится в конце адреса веб-страницы с вашими файлами на Gist.

Вот как выглядит запуск приложения, размещённого на Gist:

runGist("3239667")

Распространение приложения в виде веб-страницы

Все описанные выше способы распространения приложений имеют общее ограничение: чтобы ими воспользоваться, пользователь должен установить R и пакет Shiny на свой компьютер.

Однако Shiny позволяет пользоваться приложениями даже тем пользователям, которые R не имеют (и не собираются его устанавливать. Для этого Shiny использует веб-страницы: если вы разместите своё Shiny-приложение в Интернет и дадите ссылку на него другим пользователям, они смогут зайти на эту страницу и воспользоваться приложением.

Если вы знаете, что такое "веб-хостинг", то, скорее всего, сможете разместить приложение Shiny в Интернет самостоятельно. Если же вы предпочитаете более лёгкий путь, то RStudio предлагает три способа размещения Shiny-приложений в виде веб-страниц:

  1. Shinyapps.io
  2. Shiny Server
  3. Shiny Server Pro

Shinyapps.io

Самый простой путь для превращения вашего Shiny-приложения в веб-страницу -- это воспользоваться shinyapps.io, специализированным сайтом для размещения (хостинга) Shiny-приложений от компании RStudio.

shinyapps.io позволяет загрузить ваше приложение на хостинг прямо из сеанса работы с R. Вы можете управлять своим приложением при помощи инструментов администрирования хостинга. Чтобы получить более подробную информацию, посетите shinyapps.io.

Shiny Server

Shiny Server -- программа, дополняющая Shiny, создающая веб-сервер для размещения Shiny-приложений. Она бесплатна и распространяется с открытым исходным кодом, который доступен на Github.

Shiny Server устанавливается на сервере, работающем под управлением Linux. Чтобы установить Shiny Server, вам понадобится Linux, поддерживающий Ubuntu 12.04 или более новую (64 bit) или CentOS/RHEL 5 (64 bit). Если у вас другой дистрибутив Linux, то можно использовать Shiny Server, скомпилировав его из исходного кода.

С помощью единственного Shiny Server'а вы можете установить множество Shiny- приложений, разместив их на разных веб-страницах.

За детальными инструкциями по установке и конфигурированию Shiny Server, обратитесь к Shiny Server guide.

Shiny Server Pro

Shiny Server обладает всем необходимым для того, чтобы опубликовать ваше приложение в Веб. Однако, если вы захотите использовать ваше приложение с коммерческими целями, вам могут понадобится различные платные серверные программы, позволяющие реализовать:

  • аутентификацию при помощи пароля;
  • поддержку SSL;
  • инструменты для администрирования;
  • поддержку приоритетов;
  • и т.п.

В таком случае, обратите внимание на Shiny Server Pro -- профессиональную версию Shiny Server от RStudio.

Резюме

Приложения Shiny легко использовать. Вы можете распространять свои приложения как набор R-скриптов или как интерактивную веб-страницу. Каждый из методов имеет свои преимущества.

Вы узнали, что:

  • каждый может запустить ваше приложение, если у него будет установлен R, Shiny и он располагает файлами вашего приложения;
  • runUrl, runGitHub и runGist позволяют легко скачать и запустить Shiny-приложение, располагая всего лишь ссылкой на веб-страницу, где хранятся файлы приложения;
  • вы можете превратить ваше приложение в "живую" веб-страницу при помощи сервиса shinyapps.io;
  • вы можете использовать свободно распространяемый Shiny Server для создания Linux-сервера, обеспечивающего хостинг ваших Shiny-приложений;
  • если вам нужно больше возможностей для управления сервером, вы можете приобрести Shiny Server Pro от RStudio.

Поздравляем! Вы прошли весь путь создания полноценного Shiny-приложения. Теперь вы сможете создавать мощные интерактивные приложения и размещать их в Интернет. Результатами ваших трудов смогут воспользоваться другие люди и, возможно, создать на этой основе что-то своё, что пригодится уже вам.

Вы узнали достаточно и теперь пойдёте своей дорогой. Счастливого пути!



Комментарии

comments powered by Disqus