Спестете калории - JAXenter

Сега има над 70 набора от инструменти за реализиране на уеб услуги. Разбира се, фракцията Perl също има какво да предложи. Следващата статия описва внедряването на уеб услуги с модула Perl SOAP: Lite. Според разработчика Пол Кулченко, Lite в името показва, че само малък брой калории се консумират при използването му.

калории

Във връзка със SOAP и уеб услуги, като среда за разработка се споменават предимно само Java и .NET. Докато за някои хора .NET светът е изключен поради съображения за вяра, разработката с Java е доста сложна. Пакетите в трицифрения MB обхват трябва да бъдат заредени и след това конфигурирани. Авторът на статията Услуга за поръчки (Списание XML 01.2002) заявява в заключението си, че по-голямата част от усилията са в осигуряването и конфигурирането на околната среда.

Обратно към 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 зарежда модула САПУН: Транспорт: HTTP, това съответства на импортирането в Java. Вътре е наречен клас САПУН: Транспорт: 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. Това не е особено трудно, както показва следният изходен код:

Тук са всички функции на модулите демонстрация и Моят: SOAP: ZIP извиква се, докато сте извън модула Моят: САПУН: XY само функцията func1 е постижимо.

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

Сериализаторите и десериализаторите могат да бъдат заменени от техните собствени класове. Всичко, което трябва да се направи, е подклас от десериализатор/сериализатор и са посочени при създаване на обекта на сървъра (или клиента, ако там се използва отделен сериализатор):

Документацията описва редица клиенти за достъп до съществуващи услуги, които са създадени с други инструменти. Необходимите корекции трябва да бъдат показани на примера на .NET услуга. Услугите под .NET очакват поименни параметри от една страна. Начинът, по който се генерират, вече е описан. .NET също изисква полето на заглавката SOAPAction във формата пространство от имена на услугата, последвано от наклонена черта, последвано от името на метода. 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: бисквитка или LWP: UserAgent както и модулната архитектура заедно със свойствата на Perl като анонимни подпрограми водят до много гъвкава и мощна система. Документацията описва редица други функции на SOAP: Lite като достъп чрез SSL, удостоверяване, бисквитки и др. В Cookbook са описани допълнителни случаи на употреба, като вмъкване на собствено поле в заглавката, достъп до плика и разбира се използването на XML RPC вместо SOAP. Текущата версия номер 0.58 не трябва да се свени да я използва: Кодът е много стабилен и авторите на Perl обикновено не са склонни да издават 1-ва * версия.