Perl, mod_perl2 или CGI для веб-сервиса? - PullRequest
0 голосов
/ 02 августа 2011

Я собираюсь разработать веб-сервис с открытым исходным кодом, который должен собирать ("web-scrape") некоторые данные с нескольких - в настоящее время трех - веб-сайтов.

Веб-сайты не предоставляют никаких веб-сервисов и API, они просто публикуют веб-страницы.

Данные будут собираться «вживую» по запросу любого клиента со всех веб-сайтов параллельно, а затем будут анализироваться в XML для возврата клиенту.

Операционная система сервера будет Linux.

Первоначально клиенты будут просто моим приложением для Android.

Число одновременных клиентов может составить около 100 или более, если проект будет успешным ...; -).

В настоящее время мои предпочтения идут на принятие:

  • perl (для служебного языка)
  • mod_perl2 с ModPerl :: Registry (для встроенного в Apache быстрого интерпретатора Perl)
  • модуль Perl CHI :: Driver :: FastMmap (для современного и быстрого обработчика кэша)
  • perl module Coro (для асинхронного цикла событий для параллельного размещения множества запросов)

Поскольку я полагаю, что спецификации проекта могут представлять общий интерес и интерес, и поскольку у меня много проблем с комбинированным использованием Coro с mod_perl2, я спрашиваю:

Хорошо ли совпадают мои предпочтения по усыновлению?

Видите ли вы какие-либо несовместимости или потенциальные проблемы?

Есть ли у вас предложения по улучшению (в таком порядке):

  • совместимость между компонентами
  • аккуратность реализации
  • простота обслуживания
  • выступления * * 1 052

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Вы, вероятно, больше не хотите разрабатывать использование mod_perl для любого нового проекта. Вы действительно хотите использовать что-то на основе Plack или, может быть, даже сам Plack. Если вы хотите использовать Coro, использование AnyEvent , такого как Twiggy , может иметь смысл (хотя вам может понадобиться установить обратный прокси перед ним).

0 голосов
/ 03 ноября 2011

Вы счастливы придерживаться Apache?
Если это так, забудьте о Coro и позвольте apache управлять параллелизмом; предварительно загрузите ваши модули и конфигурацию и напишите супер-эффективный apache RequestHandler. (Я всегда так поступаю, когда доступен apache2 + modperl2.)
Если нет, начните изучать Plack, который не зависит от сервера.

Если вы выберете первый маршрут, я бы рекомендовал избегать традиционного CGI и вместо этого принять CGI :: Application , который дает почти легкость и скорость CGI, но с гораздо более приятной / современной средой разработки и фреймворк (и Plack-совместимый).

...