2013-06-16 1 views
4

Я разработал приложение R, и я хочу его развернуть.Развертывание приложения R с графическим интерфейсом

В настоящее время приложение состоит из набора функций, которые должны запускаться из командной строки, например, R-пакета. Чтобы развернуть его, я собираюсь переупаковать R Portable, добавив необходимые библиотеки и мой код. Моя основная проблема заключается в выборе подходящего инструментария GUI.

Производство Окружающая среда

Мое приложение является однопользовательской один (т.е. Desktop приложение) и целевой платформы для Windows. Он мог бы загрузиться в R, а затем вызвать набор инструментов или загрузить, например, на Java, а затем вызвать механизм R. GUI должен в первую очередь подавать функции приложения. Он также должен захватить графический вывод функции.

Возможные альтернативы

Вот потенциальный список альтернатив. Я хотел бы знать, соответствуют ли они соответствующему описанию environement.

Java JRI теперь выпущен только как часть rJava, но в то время как последний отчетливо документирован, я не могу найти документы и руководства для первого. Что касается Deducer, он представлен в виде графического интерфейса передний конец, но я обнаружил, что она также является GUI toolkit

TCL/Tk привязок, кажется естественным выбором для R и хорошо документированы, но кто-то жалуется на ограничения этого инструментария , RGtk2 кажется интересным, и есть также некоторые учебные пособия. gWidgets является одним из редких наборов инструментов для виртуализации пакета!

Несмотря на то, что я не нужен, нужно настоящее веб-приложение, интересным вариантом будет взаимодействие R с JavaScript/HTML. Как и большинство из нас, я знаком с этой средой, и приложение может принести пользу многим JS-библиотекам. Проблема в том, что красивые Shiny server и rApache предназначены только для Linux, и это, вероятно, верно, вероятно, Concerto. Вместо этого Rserve работает в Windows и, хотя официального JS-клиента нет, я нашел третью сторону rserve-js, а также node.js client. Rook, автор того же автора rApache, должен быть агностиком платформы (не так ли?). R Server Pages может работать, но я не нашел примеров по функциям HttpDaemon и HttpRequest в виньетке или справочном руководстве. Я провел несколько простых примеров с gWidgetsWWW. Он работает, но, похоже, создает консервированные веб-страницы без возможности изменения кода HTML.

EDIT

Позвольте мне уточнить мой вопрос. Я не рассматриваю ваши личные предпочтения. Технологии или продукты, упомянутые здесь, как правило, очень молоды и не широко распространены. Было бы очень неприятно обнаружить после того, как инвестировали месяцы кода, что они еще не готовы или не подходят для производства. Поэтому я хотел бы знать (не ваши субъективные вкусы, но), если они могут работать в описанной выше среде.

+2

Я до сих пор не уверен, что вы думаете. Это, похоже, прекрасно подходит к типу вопроса [вам следует не спрашивать здесь] (http://stackoverflow.com/help/dont-ask). Если вы можете превратить его в настоящий вопрос, я бы посоветовал вам сделать это. – Dason

+0

@Dason: Я зашел в тупик, так как мне нужно начать новый проект (или сказать, что завершите проект), и после нескольких месяцев работы я не захотел бы обнаружить, что я принял совершенно неправильный путь. Мне нужно найти инструментарий, который работает на производстве. Только разработчик, который использует/редактирует его, может сказать мне. Пожалуйста, предложите мне, как я мог бы улучшить вопрос? – antonio

+0

@antonio Я только что увидел, что вы отметили вопрос «Рук». Вам нужно, чтобы ваше приложение запускалось только внутри вашей офисной сети? если да, то «Рука» этого более чем достаточно. Я использую его пару недель, и это идеально, если вам не нужен внешний доступ к приложению. – Michele

ответ

1

Я собираюсь сделать что-то подобное.Самый быстрый способ (как для времени развертывания, так и для будущей производительности приложения) представляется c# сопряжением с R через R.NET. В Visual Studio вы получите невероятные возможности визуализации всего за несколько кликов, а также создание интерактивных/древовидных диаграмм, и это довольно просто. Как вы уже упоминали, RServeJava) - еще один ценный вариант.

EDIT

Если веб-приложение не требуется для запуска на адрес IP публики пакет г Rook это интересный вариант. Некоторые примеры с Rook: using ggplot2, using googleVis

+1

Спасибо. Я вижу, что код HTML находится в коде R. [Jeroen Ooms] (http://www.stat.ucla.edu/~jeroen/files/seminar.pdf) предлагает: «Не используйте R для создания макета или HTML. Это скоро станет неуправляемым ». С помощью« Rook »можно ли переместить макет в отдельные HTML-файлы, не сгенерированные с помощью R-скриптов? – antonio

+0

не уверен, но я думаю, что семинар не о 'Rook', а' RApache' (и приложение, которое он означает, огромно :-)). С помощью 'Rook' вы создаете страницу' html' с 'res $ write (" ... ")'. На данный момент мне действительно не нужно следовать этому предложению, чистый код «html» внутри моих веб-приложений мал, и они в основном пользовательский интерфейс, чтобы вводить некоторые параметры, делать запросы, показывать таблицы, графики и вычисления Результаты. Я также вставляю некоторые «JavaScript» для проверки полей и отображения предупреждений. Тем не менее, вы можете добавить в свой код 'html' в свою' R' ссылку на файл 'css' и, следовательно, сделать это отдельно. – Michele

3

Мы создали свой род WebAPP здания на rApache и Ruby on Rails рядом с некоторыми другими технологиями в rapporter.net - что получилось действовать скорее основу для размещения R на основе статистических приложений в средствах Rapplications вместо нашей первоначальной цели - создать удобный для пользователя онлайн-интерфейс для R. Я бы тепло предложил проверить наши функции, так как вы могли бы сэкономить массу ресурсов, не имея дело с серверной, CMS и другими скучными проблемами , но может сосредоточиться на статистическом инструменте.

Во всяком случае, кроме продвижения нашего материала, позвольте мне подвести итог своего опыта:

  • rApache определенно готов к производству, но обратите внимание, что только для достаточно лиц без алгоритмов (по умолчанию Apache начала бы кутит рабочий так тот же пользователь/клиент будет взаимодействовать с разными R-сеансами в каждом запросе). Например. RServe будет лучшей альтернативой для приложения с поддержкой состояния.
  • AFAIK Shiny server предназначен для размещения специализированных статистических инструментов и приложений - так же, как наша служба Rapplication с бэкэндом БД или без него - с помощью настраиваемого пользовательского ввода. Для этого вам потребуются некоторые технические навыки, а также для обеспечения (HA) среды может потребоваться слишком много дополнительных ресурсов. Это может быть огромным преимуществом или недостатком, основанным на ваших требованиях и ожиданиях.
  • Самой большой проблемой в таком вопросе должна быть безопасность (например, с использованием RAppArmor или sandboxR), а не только для внутреннего разъема R-интерфейса, поскольку пользователи будут взаимодействовать с вашими серверами (если они размещены в облаке). Настольные приложения немного более дружественны для разработчиков, но поддержка всех основных платформ в эпоху таблеток и смартфонов может быть не-нет. Облачное приложение может работать на любом устройстве с браузером.
  • Вы должны выбрать оптимальное решение, основанное на ваших требованиях. Существует множество инструментов, готовых к производству, и каждый из них имеет свои преимущества и особые варианты использования. Просто проверьте, какие связанные пакеты/приложения по-прежнему находятся в стадии разработки с поддержкой, и ответьте на несколько вопросов:
    • Нужно ли подключаться к базам данных?
    • Какие типы пользовательских ввода необходимы (например, только параметры, наборы данных, команды R)?
    • Desktop/cloud app? Ты уверен? Если позже, хотели бы вы позаботиться о настройке, обслуживании и поддержке?
    • Выполняете ли вы какие-либо вычислительные интенсивные задачи?
    • Вы хотите внедрить приложение, чтобы помочь пользователям с повторяющимися и стандартизованными задачами или, скорее, предоставить довольно общее и расширяемое программное обеспечение?
    • Вам нужно гибкое приложение с интерактивной настройкой или использование для целей отчетности?
    • Какие выходные форматы вам нужны?
    • Какие еще технологии вы знаете? Было довольно сложно создать приложение на основе Meteor с бэкэном NoSQL, если вы работали с MySQL, PHP, Java или C# в прошлом.
+0

, кстати, если вам понравится 100 баунти :-) Не могли бы вы дать мне немного информации об этом http://stackoverflow.com/questions/17118048/getting-the-ip-address-of-an-rook-page- пользователь, с которым вы, похоже, можете ответить! – Michele

 Смежные вопросы

  • Нет связанных вопросов^_^