Економте калорії - JAXenter

Зараз існує понад 70 наборів інструментів для реалізації веб-сервісів. Звичайно, фракція Perl також може багато запропонувати. Наступна стаття описує реалізацію веб-служб за допомогою модуля Perl SOAP: Lite. За словами розробника Пола Кульченка, назва Lite свідчить про те, що при його вживанні споживається лише невелика кількість калорій.

jaxenter

У зв’язку з SOAP та веб-службами в основному лише середовища розробки згадуються лише Java та .NET. Хоча для деяких людей світ .NET виключений з міркувань віри, розробка за допомогою Java є досить складною. Пакети з тризначного діапазону MB повинні бути завантажені, а потім налаштовані. Автор статті Служба замовлення (Журнал XML 01.2002) у своєму висновку зазначає, що більша частина зусиль полягає у забезпеченні та конфігурації навколишнього середовища [1].

Повернутися до SOAP: Lite. Його функції включають підтримку SOAP 1.1 та SOAP 1.2, різні транспортні протоколи (FTP, HTTP, IO, Jabber, SMTP, POP3, TCP та MQSeries) та, крім SOAP, XML-RPC як протокол. Список усіх функцій можна знайти на пов'язаному веб-сайті [2]. Є кілька для Windows .dll-Файли та низка прикладів для COM, .NET, VB, C # тощо. Програмне забезпечення можна завантажити з домашньої сторінки або з CPAN [3]. Потім встановлення під Unix відбувається згідно з шаблоном CPAN:

На додаток до встановленої Perl (доступна в [7] або [8]), потрібні модулі XML: Парсер, MIME: Base64 і URI, який можна встановити за тією ж схемою. Ряд інших модулів потрібні залежно від використовуваного транспортного протоколу; вони запитуються під час встановлення та встановлення. Документація SOAP: Lite містить короткий посібник із початку роботи, кулінарну книгу та інструкції [2]. Сфера поширення також включає ряд зразків програм для реалізації клієнта та сервера, які можуть бути використані як відправна точка для ваших власних програм.

Наступні приклади обмежені HTTP як транспортний протокол. Почнемо з простого клієнта із зразків програм (client.pl). Програми включені в дистрибутив або їх можна завантажити з guide.soaplite.com Метод урі містить простір імен служби, метод проксі адреса. У цьому випадку с hibye.cgi сценарій CGI, який називається:

На стороні сервера SOAP: Lite підтримує кілька варіантів. З одного боку, як автономний сервер, з іншого боку, інтеграція в Apache через CGI, FastCGI або mod_perl. С mod_perl інтерпретатор Perl інтегрований в Apache, що призводить до значного збільшення продуктивності порівняно з CGI. Наш клієнт використовує скрипт CGI у свою адресу hibye.cgi, так що давайте спочатку розглянемо реалізацію як сценарій CGI (див. лістинг 1).

У рядку 1 вказано шлях інтерпретатора, залежно від локальної установки Perl, це потрібно адаптувати. Рядок 2 завантажує модуль SOAP: Transport: HTTP, це відповідає імпорту в Java. Всередині є клас під назвою SOAP: Транспорт: HTTP: CGI визначено, у рядку 5 визначається, які модулі Perl можна використовувати як веб-сервіси. МИЛО: Lite Це дозволяє всі існуючі модулі на шляху пошуку Perl використовувати як веб-службу абсолютно прозоро. Рядки 8-14 визначають дві функції в окремому просторі імен (демо) Привіт і до побачення. Тоді це було. Запуск клієнта забезпечує результат: Привіт Світ.

Вибраний тут синтаксис відрізняється від звичайної форми. Замість того, щоб створювати об'єкт за допомогою виклику конструктора, а потім викликати його методи один за одним, тут можна викликати кожен метод класу, а подальші виклики методів можна пов'язати разом (з оператором ->). Повертається значення - це завжди об’єкт, створений першим методом. Для любителів Perl джерело SOAP: Lite пропонує кілька прикладів на тему генерації коду.

Для покращення продуктивності ми будемо запускати сервер не як програму CGI, а від самого Apache за допомогою інтерпретатора Perl mod_perl. Це дозволяє уникнути запуску нового процесу та складання програми для кожного запиту. Передумовою цього є те, що має Apache mod_perl було складено. Програмне забезпечення та документацію, необхідні для встановлення, можна знайти на perl.apache.org. Багато дистрибутивів Linux вже містять відповідний Apache. Потім для встановлення наших веб-служб необхідні чотири кроки: Спочатку потрібно написати обробник Apache. Це не представляє особливої ​​складності, як показує наступний вихідний код:

Ось усі функції модулів демо і My: SOAP: ZIP викликається під час перебування поза модулем Мій: МИЛО: XY просто функція func1 досяжно.

Крок 2 - це конфігурація Apache, для цього httpd.conf-Файл ще потрібно відкоригувати:

Серіалізатори та десериалізатори можуть бути замінені їх власними класами. Все, що потрібно зробити, - це підклас десериалізатор/серіалізатор і вказуються при створенні об'єкта сервера (або клієнта, якщо там використовується окремий серіалізатор):

Документація описує низку клієнтів для доступу до існуючих служб, створених за допомогою інших наборів інструментів. Необхідні настройки слід показати на прикладі служби .NET. Служби в .NET, з одного боку, очікують іменованих параметрів. Як вони генеруються, вже було описано. .NET також вимагає поле заголовка МИЛО Дія у формі простір імен служби, слідом за косою рискою, за якою йде назва методу. Однак SOAP: Lite відокремлює простір імен та назву методу #. Необхідне коригування досить просте (див. Лістинг 2). Метод on_action передається блок коду Perl, в якому зроблені необхідні налаштування. З інструкцією sub створюється анонімна підпрограма, яка використовується з функцією спринтф відформатували передані параметри. Інші сервери можуть вимагати інших форматів тут. Це прекрасний приклад адаптованості SOAP: Lite через властивості мови Perl.

Більше інформації про тему взаємодії можна знайти в [5], результати на SOAP: Lite у [6].

Крім того, wsdl-Файл за допомогою service => 'файл: /your/local/path/StockQuoteService.wsdl' вказано, якщо це в локальній файловій системі.

У документації зазначається, що складні типи даних ще не працюють. З доданою програмою stubmaker.pl заглушки можна генерувати. Це створює не що інше, як модуль Perl з відповідною назвою, як і інші модулі з використання може бути використаний. Поклик

SOAP: Lite - це дуже повний набір інструментів для розробки клієнтів та серверів для веб-служб. Використання потужних модулів від CPAN, таких як HTTP: Cookie або LWP: UserAgent а модульна архітектура разом із властивостями Perl, такими як анонімні підпрограми, дають дуже гнучку та потужну систему. Документація описує ряд інших функцій SOAP: Lite, таких як доступ через SSL, автентифікацію, файли cookie тощо. У кулінарній книзі описуються інші випадки використання, такі як вставлення власного поля заголовка, доступ до конверта і, звичайно, використання XML RPC замість SOAP. Поточна версія 0,58 не повинна уникати її використання: код дуже стабільний, і автори Perl, як правило, дуже неохоче видають 1-у * версію.