Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Выполнение PERL cgi скрипта без www сервера???


Автор: yaya 17.8.2009, 15:07
Выполнение PERL cgi скрипта без www сервера???

Сразу О Главном: Хочу сделать cgi-perl-скрипт(приложение), работающий очень быстро! 
Есть html страница с полями ввода. Скрипт обрабатывает поля и делает запрос на ряд других 
cgi-скриптов вращающихся на www серверах. Затем по средствам локального www сервера выдает 
результат работы в окно браузера из которого была открыта html страница.
  
Вопрос каким образом реализовать данную цепь без сервера, т.е. html-страница->perl 
скрипт->вывод ответа на запрос(результат работы скрипта передаются в браузер).
    Как я понимаю сервер не реально выкинуть из этой цепи (RFC):
1) если нельзя, то как лучше на perle реализовать www сервер.
    (возможно требуется работа с сокетом, какой модуль/пакет лучше использовать?)
    may be STDOUT как-то использовать!?

2) оптимизировать работу скрипта, www сервера, etc.....
    
3)А может быть вообще Проще! на perl'e сделать сетевое GUI-приложение.

P.S. Хочу писать именно на Perl'e, хотя понимаю что это интерпретируемый язык, но мне очень 
интересно сделать это именно на нем.

Автор: sir_nuf_nuf 17.8.2009, 15:35
1) что именно вы хотите ?
а) что бы по сети и с графикой... 
  -  даже не знаю что посоветовать
б) хочу что веб-приложение на perl работало быстроооооооо!
  -  не используйте технологию CGI. используйте mod_perl. В последнее время
     популярна связка nginx + FCGI  (походу самое быстрое решение)
в) хочу что бы работало без www сервера
  -  это не возможно. Вам придется писать свой сервер и на 99% вы будите делать лишнюю работу и 
     изобретете велосипед с квадратными колесами


2) вам нужно опрашивать другие сервера ?
вот тут боюсь слово быстроооо не применимо. Если опрос серверов идет синхронно, то время отклика будет не менне суммы их времен. Вам нужно придумать как их CGI (FCGI) опрашивать сервера параллельно - это интересный вопрос. Предлагаю его и обсуждать =)

Автор: zenixan 17.8.2009, 15:52
В качестве сервера возможно подойдет http://search.cpan.org/~gaas/libwww-perl-5.831/lib/HTTP/Daemon.pm

Автор: sir_nuf_nuf 17.8.2009, 15:54
zenixan, а ты уверен, что HTTP::Daemon быстрее того же apache ?

Автор: yaya 17.8.2009, 16:16
Большое спасибо за ответы. К слову забыл сказать я работаю под Windows. 
связка nginx + FCGI- есть ли аналог ngnix под Винды.

Добавлено через 4 минуты и 45 секунд
Кто-нибудь работал с HTTP::Daemon игра стоит свеч?
В самом деле на сколько его реализация в приложение эффективнее nginx + FCGI; mod_perl+Apache (оптимально настроенный)!? 

Автор: sir_nuf_nuf 17.8.2009, 16:27
Цитата(yaya @  17.8.2009,  16:16 Найти цитируемый пост)
есть ли аналог ngnix под Винды.
 есть. nginx.

Автор: Ramirez 21.8.2009, 18:02
yaya, как минимум надо сначала определить, зачем именно Вам нужен HTTP::Daemon и почему не устраивают стандартные решения (apache/nginx/fcgi/mod_perl). 

скорость? хмм, наверное, все пользуются вышеуказанными стандартными решениями потому, что это модно, а не потому что это оптимальные решения, которые оттачивает куча народа не один год уже smile

GUI-приложение на перл? да, это возможно. но опять-же, сначала надо четко сформировать задачу. И станут ясны пути ее решения. 

Автор: yaya 22.8.2009, 08:36
Скажите, а это все (вышеописанное мною) можно сделать используя только (или в большей части) JavaScript!?

Добавлено через 1 минуту и 33 секунды
Цитата(yaya @ 22.8.2009,  08:36)
Скажите, а это все (вышеописанное мною) можно сделать используя только (или в большей части) JavaScript!?

т.е.
Цитата

Есть html страница с полями ввода. Скрипт обрабатывает поля и делает запрос на ряд других 
cgi-скриптов вращающихся на www серверах. Затем по средствам локального www сервера выдает 
результат работы в окно браузера из которого была открыта html страница.

Автор: kavkaz 22.8.2009, 12:06
Можно. Использую ajax, делаете запросы к вашим серверам, получаете ответы и обрабатываете/выводите на страницу, не перезагружая её.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)