Вход/Регистрация
Язык программирования Perl
вернуться

Шохирев Михаил Васильевич

Шрифт:

Среди средств, имеющихся в Perl для работы с web-сервисами, библиотека SOAP::Lite выделяется удобством использования и полнотой реализации необходимых протоколов. На простом примере покажем, насколько легко создать web-службу с ее помощью. Для начала напишем класс, который будет выполняться на сервере и предоставлять свои методы в виде web-сервисов. Это самый обычный класс:

package Calculator; # класс, реализующий простой калькулятор

sub add { # сложить

my ($self, $a, $b) = @_;

return $a + $b;

}

sub subtract { # вычесть

my ($self, $a, $b) = @_;

return $a - $b;

}

sub multiply { # умножить

my ($self, $a, $b) = @_;

return $a * $b;

}

sub divide { # разделить

my ($self, $a, $b) = @_;

return $b == 0 ? 0 : $a / $b;

}

1;

Затем разместим на web-сервере CGI-программу, которая будет выполнять роль диспетчера: при обращении по ее адресу будет происходить вызов требуемой web-службы. Она состоит всего из нескольких строк:

use SOAP::Transport::HTTP; # использовать протокол HTTP

SOAP::Transport::HTTP::CGI # для обращения через CGI

# к web-сервисам из этого каталога:

– > dispatch_to('/_Learn/Perl/web-services')

– > handle;

Затем напишем клиента для обращения к web-службам с использованием возможности перенаправления запросов, реализованной в библиотеке SOAP::Lite:

# включаем автоматическое

use SOAP::Lite +autodispatch => # перенаправление запросов

uri => 'urn:Calculator', # к классу Calculator

# при обращении по указанному адресу

proxy => 'http://localhost/cgi-bin/web_soap.cgi';

my $a = 5; # первый и

my $b = 3; # второй проверочные операнды

# вызываем методы класса на сервере:

print add($a, $b) , "\n"; # результат: 8

print subtract($a, $b), "\n"; # результат: 2

print multiply($a, $b), "\n"; # результат: 15

print divide($a, $b) , "\n"; # результат: 1.66666666666667

Для проверки работы этой web-службе была написана другая клиентская программа на языке VBScript. Чтобы показать, как выглядят передаваемые данные, результат работы метода multiply(5, 3) был выведен в виде неформатированного SOAP-сообщения, которое приведено на рис. 18.4.

Рис. 18.4.Пример SOAP-сообщения при обращении к web-сервису

Подобным способом через web-сервисы можно организовать доступ к методам любых других прикладных классов. В последнее время популярность получила технология AJAX (асинхронный доступ из JavaScript с помощью XML). Она может использоваться для доступа к web-службам из программ на JavaScript, превращая браузер в клиента прикладных классов, написанных на языке Perl. Пример обращения к разработанному нами web-сервису из JavaScript показан на рис. 18.5.

Рис. 18.5.Браузер как клиент web-сервисов

Программные средства, рассмотренные в этой лекции, охватывают только небольшую часть возможностей Perl для работы с ресурсами WWW. Web-программирование принесло языку Perl успех и большую популярность. Но Perl готов к переменам, которые неизбежно принесет нам будущее: ведь он создавался как расширяемый и адаптируемый язык. И он постоянно продолжает развиваться силами сообщества Perl-программистов, к числу которых теперь можете причислить себя и вы. Успехов вам в разработке программ на Perl и в дальнейшем изучении этого прекрасного языка программирования!

Литература

1. Barry P, Programming the Network with Perl, John Wiley & Sons, 2002

2. Bentley J, Programming Pearls, 2nd edition, Addison-Wesley, 2000

3. Blank-Edelman D.N, Perl for System Administration: Managing multiplatform environments with Perl, O'Reilly, 2000

4. Burke S.M, Perl & LWP, 1st edition, O'Reilly, 2002

5. Callender J, Perl for Web Site Management, O'Reilly, 2001

6. Christiansen T., Torkington N, The Perl Cookbook: Tips and Tricks for Perl Programmers, 2nd edition, O'Reilly, 2003

  • Читать дальше
  • 1
  • ...
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: