Обзор: Необходимо интегрировать библиотеку R с веб-сервером, написанным на python. Я изучил некоторые варианты, которые часто упоминаются в разных блогах и потоках переполнения стека. Потоки, которые я встретил, сравнивают библиотеки, такие как Rpy2 и pypeR, и предоставляют конкретные ответы для интеграции R и python. То, что я ищу, является общим решением, так что к R-коду можно получить доступ к множеству языков/клиентов программирования (для будущей расширяемости).Интеграция кода R с веб-сервером
Требования:
- код R должен работать отдельно для обработки тяжелых вычислений и не быть встроены в сервер приложений.
- R модуль должен быть масштабируемым и легко ремонтируемым. любое изменение сервера приложений (написанное на python) не должно вызывать изменения в коде R.
- Модуль R может использоваться как API для дальнейшей разработки приложений с использованием веб-фреймворков, отличных от python.
Варианты уже исследовали:
- rpy2, Пайпер: Один из вариантов, чтобы написать отдельный сервер питона и пусть этот сервер дескриптор R-код с помощью rpy2. Сервер приложений может отправлять запросы на второй сервер.
- Rserve и pyRserve: используйте Rserve и pyRserve клиент для связи между R и python.
- Apache Thrift and Protocol Buffer: rprotobuf - это интерфейс для R, чтобы заставить его работать с протокольным буфером, но я не смог найти поддержку R в Apache Thrift. Будет ли что-то вроде Thrift или протокола буфера лучше, чем создание R-сервера.
- Rapache и Rook: используйте пакет Rapache и Rook в R, чтобы настроить сервер для обработки запросов.
- deployR: Создано компанией Revolution Analytics.
Какой из них был бы идеальным выбором или любой другой вариант, которого нет в списке?
Напишите R скрипт и запустить его с помощью 'call'? Любой язык может это сделать. –
Изменена первая строка, чтобы прояснить проблему. Его не только 1 R-скрипт, но и целая библиотека, которую мне нужно интегрировать с веб-сервером. И я не хочу называть R-скрипты специально с сервера приложений. Требуется общее решение, которое позволяет мне использовать библиотеку, такую как API. –
Если мы говорим о * .lib или подобном, который может быть включен в C или C++, это будет путь. Может ли это работать на ваш случай? Если нет, почему бы и нет? «* R-код должен запускаться отдельно для обработки тяжелых вычислений и не быть встроенным в сервер приложений *« Я не вижу проблемы с тем, что вокруг него есть приложение тонкого хоста. – JensG