Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написание веб сервиса 
:(
    Опции темы
infarch
Дата 11.3.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Возникла необходимость написать веб сервис на Перл. И желательно это сделать так, чтобы wsdl файл создавался автоматически (а может еще какие файлы нужны?). С таким делом я раньше не сталкивался, так что прошу совета у тех кто знает что к чему. Интересует все: какие модули лучше использовать с точки зрения поддержки последних спецификаций soap, как создавать wsdl файл и так далее. Главное - результат должен получиться полностью работоспособный, чтобы клент с помощью visual studio и c# мог без проблем это использовать, даже не заметив никакой разницы (... надеюсь что это возможно).
Буду очень благодарен за подсказки.
PM MAIL   Вверх
dron000
Дата 11.3.2010, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 20.9.2006

Репутация: нет
Всего: нет



Смотри на HTTP::Request , LWP::UserAgent; XML::Simple , ну а дальше от объема передаваемых и обрабатываемых данных и специфики того что именно нужно.
PM MAIL   Вверх
infarch
Дата 11.3.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



У меня основная проблема - автоматическое создание wsdl файла на основе имеющихся классов. Если это решу, то дальше проще пойдет. Хотя есть и другой момент - совершенно неохота вручную парсать входной xml и формировать выходной. Я понимаю что перл это не java+axis и не c#. Но вот никак не могу поверить что такого еще никто не писал smile
PM MAIL   Вверх
mvsgt
Дата 11.3.2010, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: нет
Всего: 1



Я бы не делал web-сервисы на перле вообще. Java, C++, C#. Проблемы будут в совместимости это раз, два - стандарты SOAP 1.1 ещё как-то реализованы (и то не полностью), а SOAP 1.2 вообще фрагментарно. На CPAN есть два или три приличных модуля, посмотрите их описание (поиск по SOAP и WSDL). И валидация схем, вроде , вообще отсутствует.


PM MAIL   Вверх
infarch
Дата 11.3.2010, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Цитата(mvsgt @ 11.3.2010,  16:23)
Я бы не делал web-сервисы на перле вообще. Java, C++, C#. Проблемы будут в совместимости это раз, два - стандарты SOAP 1.1 ещё как-то реализованы (и то не полностью), а SOAP 1.2 вообще фрагментарно. На CPAN есть два или три приличных модуля, посмотрите их описание (поиск по SOAP и WSDL). И валидация схем, вроде , вообще отсутствует.

Куда деваться, клиент хотят перл smile А знаете что самое интересное? Этот веб сервис уже существует! И написан на жаве. Но дело в том что он является второстепенным интерфейсом для крупного проекта который написан на перле. И проект этот развивается, появляются новые функции. Приходится периодически дописывать джаву, а это фактически дублированеи бизнес-логики. Вот поэтому я сейчас изучаю возможность отказа от джавы. Есть и еще одна трудность - клиенты уже имеют скомпилированный код для работы с веб сервисом и вряд ли будут в восторге если его придется переписывать. Тоесть надо все сделать незаметно для конечного пользователя.
Была еще одна идея - превратить имеющийся джава веб сервис в фронт-енд для функций перл. Как считаете, выйдет из этого нечто путное?
PM MAIL   Вверх
mvsgt
Дата 11.3.2010, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: нет
Всего: 1



теоретически выйдет, практически я бы отказался от перла. С вебсервисами он может внезапно наткнуться на непреодолимые препятствия.

У меня всё проще - сообщения ява получает и пишет в базу, а перл их разбирает потом и сам через SOAP отправляет ответные сообщения. Но это не всегда то что нужно, у меня это очень хорошо подходило под общую архитектуру.
PM MAIL   Вверх
infarch
Дата 11.3.2010, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



А как это перл у вас отвечает на сообщения которые приняла джава? Можно маленький пример?
PM MAIL   Вверх
mvsgt
Дата 11.3.2010, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: нет
Всего: 1



Java разбирает сообщения и пишет в базу, перл читает сообщения из базы. Получается хорошая система - надёжная java+tomcat, которые не падают, и сомнительный перл, который можно отлаживать и править без потери входящих сообщений.

JAVA часть такая простая, что быстро отлаживается и о ней забываем. А обработчик на перле удобно отлаживать, так как входные данные для него - таблицы в базе, которые можно заполнять как угодно.
PM MAIL   Вверх
infarch
Дата 12.3.2010, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Тоесть получается так - джава пишет в базу, перл это дело отслеживает, обрабатывает и пишет в базу респонс, а джава его отдает назад. Так? А не очень тормозит? Может можно как-нибудь через память наладить взаимодействие?..
PM MAIL   Вверх
mvsgt
Дата 12.3.2010, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: нет
Всего: 1



я смотрел - нагрузка на систему микроскопическая, когда сообщений нет. Фаза записи сообщений в базу мне всё равно нужна по условиям задачи, так что единственное что надо - смотреть в таблицу очереди входящих сообщений, а это небольшая нагрузка.

Отсылка сообщений у меня на перл переложена, но по-хорошему надо на яве писать. Вообще у меня устойчивое ощущение, что в более-менее сложных проектах перлу не место.

PM MAIL   Вверх
infarch
Дата 12.3.2010, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Новый проект я бы на перле не начинал. Но и имеющийся переписывать тоже не тянет smile Так и страдаем.
Но вот скажите мне, как вы перлом отвечаете на зарос который приняла джава? Хоть пару строк приведите в пример, пожалуйста.
Ведь теоретически, если томкат принял запрос, то он на него должен и отвечать. У вас идет запись в базу, а что потом? пока перл тот запрос обработает, уже может другой придти.
PM MAIL   Вверх
mvsgt
Дата 12.3.2010, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: нет
Всего: 1



Моя система - часть международной системы, там на каждое полученное сообщение можно ответить "Success" или "Fail" (упрощённо), настоящий ответ отправляется в отдельном сообщении. Обработка запросов делается долго, поэтому ответ можно давать через какое-то время. Поэтому перл и не участвует в диалоге клиент->SOAP->сервер, а только сервер->SOAP->клиент. Обе стороны поддерживают SOAP сервера. 
PM MAIL   Вверх
infarch
Дата 12.3.2010, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



Становится понятнее smile Ну чтоже, буду экспериментировать, спасибо за содействие.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.