Поиск публикаций  |  Научные конференции и семинары  |  Новости науки  |  Научная сеть
Новости науки - Комментарии ученых и экспертов, мнения, научные блоги
Реклама на проекте

Делаем веб приложения с помощью Shiny App и ShinyProxy

Среда, 17 Июнь, 11:06, d-kishkinev.livejournal.com
Возникла необходимость сделать web app для визуализации данных для не очень продвинутых юзеров, которым в R копаться сложно или даже невозможно (т.е. давать им R скрипты не очень помогает - быстро теряются и малейшие модификации приводят в ступор или продвигаются крайне медленно), а вот point-and-click web apps были бы в самый раз. Но как сделать web app без глубокого знания HTML, CSS, JS, инструментов аутентификации и авторизации? Как это сделать без найма команды веб разработчиков и бюджета?

Выход в принципе был понятен, но теперь весь roadmap кристаллизовался (уверен, что много иных способов, но пока выбрал этот). Для самого web app - это пакет Shiny для R. Общие принципы я знал давно, но теперь напоминаю себе и слушаю вот этот курс на Udemy.com.

Само приложение планирую разместить на своем сервере с помощью ShinyProxy. Это такой инструмент, который основан на Docker и Java. На Linux сервере устанавливаете Java, Docker. Делаете Docker images для разных web app. В Docker image можете установить R с Shiny package, свою app (это обычно просто один файл app.R). Круть в том, что можно для разных юзеров и линков установить разные Docker images, где свою среда - т.е. свой набор R, shiny, shiny app (т.е. уникальная комбинация из нужных версий этих компонентов). Отконфигурировать какие пользователи могут всё это по какому url адресу загрузить в браузере. Пользовательские политики аутентификации и авторизации настраиваются в файле *.yml (те кто пользуются Java это знают ибо это их классика). Есть возможность смотреть статистику допуска, посещаемости. Есть возможность отконфигурировать нагрузки на CPU для данного приложения. Всё при этом open source.

Для примера см вот эти (увы плохого качества - пардон) скриншоты из доклада на конфе useR! одних пользователей ShinyProxy (весь доклад ниже)



Конечный результат такой. Вот так запускаете ShinyProxy - просто запуск *.jar файла из командной строки на сервере



Вот что видит пользователь, когда он идет к вашему веб приложению по линку. Т.е. его просят залогиниться. Т.е. ваше приложение не будет просто открыто кому попало. Можно кстати настроить social login через Google, GitHub etc. Пароль правда не знаю пока как генериться, но видимо есть способы.


Далее юзеру показывается список доступных ему веб приложений со ссылками

Ну и далее юзер кликает на линк нужного приложения и попадает на страницу приложения - внизу просто shinyapp демка

Вот так конфигурируется доступ к конкретным приложениям - в файле *.yml Красным выделена конкретное приложение по данному url и ldap groups - это группы юзеров, которым это приложение доступно. Ну и там много чего еще.

Читать полную новость с источника 

Комментарии (0)