Чтение онлайн

на главную - закладки

Жанры

Язык программирования 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

7. Conway D, Object Oriented Perl, Manning Publications,1999

8. Descartes A., Bunce T, Programming the Perl DBI: Database programming with Perl, O'Reilly, 2000

9. Dominus M.J, Higher-Order Perl, 1st edition, Barnes & Noble, 2005

10. Friedl J.E. F, Mastering Regular Expressions: Powerful Techniques for Perl and Other Tools, O'Reilly, 1997

11. Guelich S., Gundavaram Sh., Birznieks G, CGI Programming with Perl, 2nd еdition, O'Reilly, 2000

12. Holzner S, Perl Black Book, 2nd еdition, Paraglyph Press, 2001

13. Lidie S, Perl/Tk Pocket Reference, O'Reilly, 1998

14. Maher T, Minimal Perl For UNIX/Linux People, Manning Publications, 2006

15. Medinets D, Perl 5 by Example, Que, 1996

16. Menaker Y., Saltzman M., Oberg R.J, Programming Perl in the .NET Environment, 1st edition, Addison Wesley, 2002

17. Orwant J., Hietaniemi J., Macdonald J, Mastering Algorithms with Perl, O'Reilly, 1999

18. Randal A., Sugalski D., Totsch L, Perl 6 and Parrot Essentials, 2nd edition, O'Reilly, 2004

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

Кодекс Охотника. Книга IV

Винокуров Юрий
4. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга IV

An ordinary sex life

Астердис
Любовные романы:
современные любовные романы
love action
5.00
рейтинг книги
An ordinary sex life

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Защитник

Кораблев Родион
11. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Защитник

Неестественный отбор.Трилогия

Грант Эдгар
Неестественный отбор
Детективы:
триллеры
6.40
рейтинг книги
Неестественный отбор.Трилогия

Метаморфозы Катрин

Ром Полина
Фантастика:
фэнтези
8.26
рейтинг книги
Метаморфозы Катрин

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

В теле пацана 4

Павлов Игорь Васильевич
4. Великое плато Вита
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
В теле пацана 4

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

Неожиданный наследник

Яманов Александр
1. Царь Иоанн Кровавый
Приключения:
исторические приключения
5.00
рейтинг книги
Неожиданный наследник

Курсант: назад в СССР 2

Дамиров Рафаэль
2. Курсант
Фантастика:
попаданцы
альтернативная история
6.33
рейтинг книги
Курсант: назад в СССР 2

Сердце Дракона. Двадцатый том. Часть 2

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Двадцатый том. Часть 2

Треск штанов

Ланцов Михаил Алексеевич
6. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Треск штанов