![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Возникла необходимость написать веб сервис на Перл. И желательно это сделать так, чтобы wsdl файл создавался автоматически (а может еще какие файлы нужны?). С таким делом я раньше не сталкивался, так что прошу совета у тех кто знает что к чему. Интересует все: какие модули лучше использовать с точки зрения поддержки последних спецификаций soap, как создавать wsdl файл и так далее. Главное - результат должен получиться полностью работоспособный, чтобы клент с помощью visual studio и c# мог без проблем это использовать, даже не заметив никакой разницы (... надеюсь что это возможно).
Буду очень благодарен за подсказки. |
|||
|
||||
| dron000 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Смотри на HTTP::Request , LWP::UserAgent; XML::Simple , ну а дальше от объема передаваемых и обрабатываемых данных и специфики того что именно нужно.
|
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
У меня основная проблема - автоматическое создание wsdl файла на основе имеющихся классов. Если это решу, то дальше проще пойдет. Хотя есть и другой момент - совершенно неохота вручную парсать входной xml и формировать выходной. Я понимаю что перл это не java+axis и не c#. Но вот никак не могу поверить что такого еще никто не писал
|
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: нет Всего: 1 |
Я бы не делал web-сервисы на перле вообще. Java, C++, C#. Проблемы будут в совместимости это раз, два - стандарты SOAP 1.1 ещё как-то реализованы (и то не полностью), а SOAP 1.2 вообще фрагментарно. На CPAN есть два или три приличных модуля, посмотрите их описание (поиск по SOAP и WSDL). И валидация схем, вроде , вообще отсутствует.
|
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Куда деваться, клиент хотят перл Была еще одна идея - превратить имеющийся джава веб сервис в фронт-енд для функций перл. Как считаете, выйдет из этого нечто путное? |
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: нет Всего: 1 |
теоретически выйдет, практически я бы отказался от перла. С вебсервисами он может внезапно наткнуться на непреодолимые препятствия.
У меня всё проще - сообщения ява получает и пишет в базу, а перл их разбирает потом и сам через SOAP отправляет ответные сообщения. Но это не всегда то что нужно, у меня это очень хорошо подходило под общую архитектуру. |
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
А как это перл у вас отвечает на сообщения которые приняла джава? Можно маленький пример?
|
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: нет Всего: 1 |
Java разбирает сообщения и пишет в базу, перл читает сообщения из базы. Получается хорошая система - надёжная java+tomcat, которые не падают, и сомнительный перл, который можно отлаживать и править без потери входящих сообщений.
JAVA часть такая простая, что быстро отлаживается и о ней забываем. А обработчик на перле удобно отлаживать, так как входные данные для него - таблицы в базе, которые можно заполнять как угодно. |
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Тоесть получается так - джава пишет в базу, перл это дело отслеживает, обрабатывает и пишет в базу респонс, а джава его отдает назад. Так? А не очень тормозит? Может можно как-нибудь через память наладить взаимодействие?..
|
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: нет Всего: 1 |
я смотрел - нагрузка на систему микроскопическая, когда сообщений нет. Фаза записи сообщений в базу мне всё равно нужна по условиям задачи, так что единственное что надо - смотреть в таблицу очереди входящих сообщений, а это небольшая нагрузка.
Отсылка сообщений у меня на перл переложена, но по-хорошему надо на яве писать. Вообще у меня устойчивое ощущение, что в более-менее сложных проектах перлу не место. |
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Новый проект я бы на перле не начинал. Но и имеющийся переписывать тоже не тянет
Но вот скажите мне, как вы перлом отвечаете на зарос который приняла джава? Хоть пару строк приведите в пример, пожалуйста. Ведь теоретически, если томкат принял запрос, то он на него должен и отвечать. У вас идет запись в базу, а что потом? пока перл тот запрос обработает, уже может другой придти. |
|||
|
||||
| mvsgt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 27.3.2009 Репутация: нет Всего: 1 |
Моя система - часть международной системы, там на каждое полученное сообщение можно ответить "Success" или "Fail" (упрощённо), настоящий ответ отправляется в отдельном сообщении. Обработка запросов делается долго, поэтому ответ можно давать через какое-то время. Поэтому перл и не участвует в диалоге клиент->SOAP->сервер, а только сервер->SOAP->клиент. Обе стороны поддерживают SOAP сервера.
|
|||
|
||||
| infarch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 13.3.2009 Репутация: нет Всего: 1 |
Становится понятнее
|
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |