Интеграция веб-приложения с Drupal

Я - статистик в университете в Великобритании. Обычно люди здесь используют R для анализа данных, довольно легко учиться, знаете ли Вы C/Perl. Его действительная мощность находится в способе, которым можно импортировать и изменить данные в интерактивном режиме. Очень легко взять, много говорят CSV (или Excel) файлы и объединяют их, создают новые столбцы на основе других и затем бросают это в GLM, НОЖКУ или некоторую другую модель. Графическое изображение тривиально также и не требует знания совершенно нового языка (как PGPLOT или GNUPLOT.), Конечно, Вы также имеете преимущество наличия набора встроенных функций (от простых вещей как среднее, стандартное отклонение и т.д. полностью к нейронным сетям, шлицам и графическому изображению GL.)

сказавший это, существует несколько проблем. С очень большими наборами данных R может стать очень медленным (я только действительно видел это с> 50,000x30 наборы данных), и так как он интерпретировал Вас, не получают преимущество Fortran/C в этом отношении. Но, Вы можете (очень легко), заставляют R называть C, и Фортран совместно использовал библиотеки (или от чего-то как netlib или от, которые Вы записали сами.) Так, обычный рабочий процесс был бы к:

  • Разрабатывают, что сделать.
  • Моделируют код в R.
  • Выполнение некоторые предварительные исследования.
  • Перезапись медленный код в C или Фортран и вызов это от R.

, Который работает очень хорошо на меня.

я - один из единственных людей в моем отделе (> 100 человек) использующий управление версиями (в моем случае с помощью мерзавца с githuib.com.) Это скорее вызывает беспокойство, но они просто, кажется, не увлечены испытанием его и довольны раздаванием zip-файлов (фу).

Мое предложение должно было бы продолжить использовать LabView для приобретения (и возможно попытаться заставить Ваших коллег договариваться о комплекте инструментальных средств для приобретения, и создание доступно для всех), и затем переместитесь в экспорт данных в CSV (или подобный) и выполнение анализа в R. Существует действительно очень мало точки в перестраивании колеса в этом отношении.

5
задан Tanmay 10 November 2009 в 14:26
поделиться

4 ответа

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

  1. Реализует некоторые стандартные функции Drupal
  2. Имеет некоторые настраиваемые функции, которые должны «сливаться» с приложением Drupal (те же пользователи, те же разрешения и т. Д.)
  3. Уметь выгружать / скачивать контент (или данные) из настольных приложений.

Если я правильно понял, краткий ответ: да, вы можете сделать это с помощью Drupal .

Теперь для обширного: - В Drupal есть буквально тысячи модулей, поэтому я ожидаю, что вы получите большинство желаемого, просто установив правильную комбинацию готовых модулей. - Конечно, любой кастомный функционал можно легко реализовать и в виде модуля (что в наши дни довольно стандартно). - Взаимодействие с настольным приложением обычно осуществляется через веб-сервисы , а не через запросы к БД напрямую. Drupal изначально поставляется с сервером и клиентом xmlrpc, но вы можете масштабироваться до SOAP - если хотите - с помощью пары модулей contrib.

Некоторые дополнительные мысли:

  • Если вы решите использовать Drupal и начнете с царапины, то вы должны знать, что вам и вашей команде потребуется потратить некоторое время и усилия, чтобы понять, как работает Drupal. Хотя - в отличие от Palantir - я придерживался Drupal, я согласен с ним / ним в том, что Drupal сразу же усложняет сложный комплекс . Это компромисс, который вы должны заплатить, чтобы иметь платформу, которая - будьте уверены - очень гибкая, легко подключаемая и надежная (иначе она бы не вышла из строя). я полагаю, что они использовались для перепроектирования белого дома , и я полагаю, что Drupal не получил бы второй год подряд награды «Лучшая PHP CMS»).
  • Хорошая новость: есть некоторые отличные книги, и я бы порекомендовал «Pro Drupal Development» для глубокого и всестороннего объяснения системы. Только не забудьте получить 2-е издание, так как первое касается уже устаревших 5 серий. Тем не менее ...
  • Очень хорошо в Drupal, по крайней мере, на мой взгляд, то, что большинство настроек, которые вам могут потребоваться для существующей функциональности, могут быть реализованы путем подключения исходного кода из настраиваемого модуля. . Этот IMO - самое большое преимущество Drupal: вам никогда не придется трогать код других разработчиков для достижения ваших целей, и это означает, например, что вы сможете поддерживать свои модули core и contrib в актуальном состоянии без нарушения каких-либо настроек, которые вы, возможно, сделали.
  • Drupal тяжелый. По сравнению с другими CMS, он отнимает у вашего сервера много вычислительной мощности и оперативной памяти, и - если вы не собираетесь иметь очень маленький сайт - я рекомендую развертывать его вместе с nginx, а не с Apache.
  • Drupal хорошо масштабируется, благодаря хорошему механизму кеширования и механизмов "дросселирования". Как ни странно это может звучать, Drupal очень хорошо масштабируется на веб-сайтах с большим трафиком, так что значительное увеличение трафика не обязательно означает значительное увеличение использования ресурсов.
  • Пользовательский опыт работы на сайте Drupal без дополнительных настроек вполне приемлем. бедных. В настоящее время над этим ведется огромная работа ( здесь и здесь (видео) ), но улучшения не будут доступны до тех пор, пока не будет выпущен D7 [скоро, но тогда вам придется подождать, пока модули будут перенесены], поэтому рекомендуется выделить некоторое время на создание административной темы, если администраторы вашего сайта выиграли не относиться к техническому типу.

В конце концов, мой совет: если ваш сайт собирается стать большим / сложным / со сложной бизнес-логикой и большим количеством функций, то Drupal, вероятно, хороший кандидат . Если ваш сайт, напротив, маломасштабный, со стандартной функциональностью и несколькими настраиваемыми элементами, возможно, Wordpress / Joomla может лучше соответствовать вашим потребностям [не потому, что они «менее мощные», а потому, что сильные стороны Drupal в этом случае не будут использоваться,

17
ответ дан 18 December 2019 в 06:03
поделиться

Я работал больше года, широко используя drupal, но в конце концов отказался от него. Drupal и другие системы CMS имеют очень жесткие ограничения и правила. Я бы использовал Drupal для проектов, где у вас простые требования и мало бизнес-правил или их нет. Drupal усложняется почти сразу, когда вы хотите делать сложные вещи (особенно обратите внимание на систему меню, формы и систему перевода, если вам нужно быть многоязычным).

Если ваша система действительно будет большой, со всем необходимым вы упомянули, тогда я бы предпочел использовать PHP-фреймворк для реализации вашей бизнес-логики и интеграции внешних продуктов по своему усмотрению (форум, блог, твиттер-клиент и т. д.)

Но совет: никому не доверяйте :) Загрузите его и поиграйте с ним неделю. Вы сможете принять решение и быть более уверенным в своем выборе!

3
ответ дан 18 December 2019 в 06:03
поделиться

Поскольку Drupal имеет открытый исходный код, вы можете делать с ним все, что захотите. Пара замечаний:

Изменение структуры пользователей / ролей в Drupal было бы утомительным и ненужным. Вам нужно будет, чтобы ваше настольное приложение аутентифицировалось из базы данных MySQL Drupal.

Drupal имеет сотни плагинов практически для всего, поэтому Drupal, без сомнения, может запускать всю "веб-часть" вещей, включая статистику посетителей и т. Д. Вам просто нужно опять же, чтобы подключить ваше настольное приложение к правильным таблицам MySQL и отобразить данные по желанию.

Не забудьте проверить другие системы управления контентом, такие как Joomla! (и многие другие). У каждого есть свои плюсы и минусы. www.opensourcecms.com позволяет вам легко тестировать CMS, и в прошлом я активно использовал его.

Просто сначала обязательно наметьте все компоненты. Каждый час планирования заранее избавляет от многих часов головной боли позже.

0
ответ дан 18 December 2019 в 06:03
поделиться

Краткий ответ: Drupal хорошо подходит для создания чего-то подобного, особенно если вы хотите интегрировать свое приложение / логику в Drupal как набор пользовательских модулей. Другой способ, интеграция Drupal во внешнее приложение, также может быть осуществлен, но это даст вам больше трений, поскольку архитектура Drupals в значительной степени ориентирована на то, чтобы быть самостоятельной структурой.


Более длинный ответ: У меня есть в значительной степени противоположное мнение / опыт по сравнению с Palantirs. Я работаю почти исключительно с Drupal в течение года в контексте двух довольно сложных / «предприимчивых» проектов (после нескольких лет использования «на стороне» для более мелких вещей). Хотя я согласен с тем, что это накладывает некоторые жесткие правила (но не ограничения!), Я считаю это преимуществом, поскольку эти правила дают четкое руководство и предоставляют проверенные способы того, как что-то делать. Три части, упомянутые Palantir, являются хорошими примерами для этого:

  • Система меню - Обеспечивает хорошо структурированный и эффективный механизм диспетчеризации, который легко расширяется вашими собственными материалами, обеспечивая при этом огромную гибкость для настройки / управления существующими путями / путями по умолчанию. (Обратите внимание, что «система меню» в Drupal обозначает всю тему управления пространством URL-адресов, а не только подмножество «видимых» меню, которые обычно ассоциируются с этим термином)
  • Forms API - декларативный подход к веб-формам с хорошо продуманный рабочий процесс и множество встроенных функций безопасности, о которых вам в противном случае пришлось бы позаботиться самостоятельно. Также очень расширяемый, с прямыми опциями для настройки / расширения уже существующих форм по запросу, добавлять новые правила проверки к любому полю или целым формам, многоступенчатым формам, корректировкам форм на основе javascript и т. д.
  • Система перевода - это довольно сложно, просто потому, что интернационализация чертовски сложна. Но он встроен и снова дает четкое руководство о том, как что-то делать, чтобы работать в общем виде (хотя есть проблемы с некоторыми добавленными модулями, которые не используют / не поддерживают его должным образом).

I мог бы привести больше примеров для частей, в которых я ценю «правила», но этот пост уже становится длинным, и мне все еще нужно рассказать о некоторых недостатках;)

Итак, чтобы подвести итог положительной части - если я дал черновые спецификации, которые вы опубликовали, я бы сказал «нет проблем» и выбрал бы Drupal, будучи уверенным, что он станет прочной основой для пользовательских частей, обеспечивая при этом все стандарты, такие как форум, блоги, интеграция twitter / facebook и многие, многие другие в виде уже существующих решений (даже если они могут нуждаться в некоторой адаптации / настройке).


Недостатки: Как всегда, есть недостатки, и некоторые из них существенны, в зависимости от требований / обстоятельств.

  • Кривая обучения - Drupal довольно сложен, и «разобраться» в его концепциях нужно время. «Поиграть с ним в течение недели», как предлагает Palantir, безусловно, даст вам общее ощущение / широкое впечатление, но этого никоим образом не достаточно, чтобы серьезно судить о его плюсах и минусах, поскольку они будут обнаруживаться только во время кодирования в / для него. Поэтому, если вы уже хорошо знакомы с установленной структурой веб-разработки, это может быть проблемой. Если вам все равно нужно выучить один, это не должно быть проблемой. Drupal 7 перейдет на PDO, что должно (наконец) положить конец этому сомнительному состоянию.
  • Миграции Test / Stage / Production - Части нестандартной гибкости Drupals обусловлены тем, что многие вещи настраиваются в административном бэкэнде, который подразумевает, что многие важные параметры конфигурации хранятся в базе данных. Это делает перенос данных и / или конфигурации между несколькими экземплярами довольно сложным / утомительным, если вы покинули (ранние) стадии разработки, когда вы можете уйти с полными операциями дампа / восстановления (см., Например, этот вопрос и ответы )

Для меня это основные, но вы наверняка найдете больше :)

7
ответ дан 18 December 2019 в 06:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: