Šetrite kalórie - JAXenter
V súčasnosti existuje viac ako 70 súprav nástrojov na realizáciu webových služieb. Skupina Perl má samozrejme tiež čo ponúknuť. Nasledujúci článok popisuje implementáciu webových služieb s Perlovým modulom SOAP: Lite. Podľa vývojára Paula Kulchenka Lite v názve naznačuje, že pri jeho použití sa spotrebuje iba malé množstvo kalórií.

V súvislosti so SOAP a webovými službami sa ako vývojové prostredia spomínajú väčšinou iba Java a .NET. Zatiaľ čo pre niektorých ľudí je svet .NET z dôvodu viery vylúčený, vývoj pomocou Java je pomerne zložitý. Je potrebné načítať a potom nakonfigurovať balíčky v rozsahu troch číslic MB. Autor článku Objednať službu (Časopis XML 01.2002) vo svojom závere uvádza, že väčšina úsilia spočíva v zabezpečení a konfigurácii prostredia [1].
Späť na SOAP: Lite. Medzi jeho vlastnosti patrí podpora SOAP 1.1 a SOAP 1.2, rôzne transportné protokoly (FTP, HTTP, IO, Jabber, SMTP, POP3, TCP a MQSeries) a okrem SOAP aj XML-RPC ako protokol. Zoznam všetkých funkcií nájdete na príslušnej webovej stránke [2]. Pre Windows existuje niekoľko .dll-Súbory a množstvo príkladov pre COM, .NET, VB, C # atď. Softvér je možné stiahnuť z domovskej stránky alebo z CPAN [3]. Inštalácia pod Unixom potom prebieha podľa vzoru CPAN:
Okrem nainštalovaného Perlu (k dispozícii pod [7] alebo [8]) sú potrebné aj moduly XML: Parser, MIME: Base64 a URI, ktoré je možné inštalovať podľa rovnakej schémy. V závislosti od použitého transportného protokolu je potrebných množstvo ďalších modulov, ktoré sú počas inštalácie a inštalácie nainštalované. Dokumentácia SOAP: Lite obsahuje príručku pre rýchly štart, kuchársku knihu a príručky [2]. Do rozsahu distribúcie patrí aj veľa vzorových programov pre implementácie klientov a serverov, ktoré možno použiť ako východiskový bod pre vaše vlastné aplikácie.
Nasledujúce príklady sú obmedzené na HTTP ako transportný protokol. Začnime s jednoduchým klientom zo vzorových programov (client.pl). Programy sú súčasťou distribúcie alebo si ich môžete stiahnuť z webovej stránky guide.soaplite.com uri obsahuje menný priestor služby, metódu splnomocnenec adresa. V tomto prípade s ahoj.cgi skript CGI s názvom:
Na strane servera podporuje SOAP: Lite niekoľko variantov. Na jednej strane ako samostatný server, na druhej strane integrácia do Apache cez CGI, FastCGI alebo mod_perl. S mod_perl do Apache je integrovaný tlmočník Perl, čo má za následok výrazné zvýšenie výkonu v porovnaní s CGI. Náš klient používa na svoju adresu skript CGI ahoj.cgi, Poďme sa teda najskôr pozrieť na implementáciu ako na skript CGI (pozri zoznam 1).
V riadku 1 je uvedená cesta tlmočníka, ktorú je potrebné prispôsobiť v závislosti od miestnej inštalácie Perlu. Riadok 2 načíta modul SOAP: Transport: HTTP, to zodpovedá importu v Jave. Vo vnútri je trieda tzv SOAP: Transport: HTTP: CGI definované, v riadku 5 sa určí, ktoré moduly Perlu je možné použiť ako webové služby. MYDLO: Lite To umožňuje, aby boli všetky existujúce moduly v rámci vyhľadávacej cesty Perlu úplne transparentne použité ako webová služba. Riadky 8 - 14 definujú tieto dve funkcie v samostatnom mennom priestore (ukážka) Ahoj a zbohom. To bolo potom. Spustenie klienta poskytuje výsledok: ahoj svet.
Tu vybraná syntax sa líši od obvyklej formy. Namiesto vytvárania objektu pomocou volania konštruktora a následného volania jeho metód postupne je možné volať každú metódu triedy a ďalšie volania metód je možné prepojiť dohromady (pomocou operátora ->). Návratová hodnota je vždy objekt vytvorený prvou metódou. Pre milovníkov Perlu ponúka zdroj SOAP: Lite niekoľko príkladov na tému generovania kódu.
Aby sme zlepšili výkon, server nebudeme ďalej spúšťať ako program CGI, ale ako samotný server Apache s pomocou tlmočníka Perl. mod_perl. Takto sa vyhnete spusteniu nového procesu a zostaveniu programu pre každú požiadavku. Predpokladom je, že to má Apache mod_perl bol zostavený. Softvér a dokumentáciu potrebnú na inštaláciu nájdete na stránke perl.apache.org. Mnoho distribúcií Linuxu už obsahuje zodpovedajúci Apache. Na inštaláciu našich webových služieb sú potom potrebné štyri kroky: Najprv musíte napísať obslužný program Apache. Nie je to nijako zvlášť náročné, ako ukazuje nasledujúci zdrojový kód:
Tu sú všetky funkcie modulov ukážka a My: SOAP: ZIP je možné zavolať, kým ste mimo modulu My: SOAP: XY len funkcia func1 je dosiahnuteľný.
Krok 2 je konfigurácia Apache, pre tento účel httpd.conf-Súbor je stále potrebné upraviť:
Serializátory a deserializátory je možné prepísať vlastnými triedami. Všetko, čo je potrebné urobiť, je podtrieda deserializátor/serializátor a sú určené pri vytváraní objektu servera (alebo klienta, ak sa tam používa samostatný serializátor):
Dokumentácia popisuje množstvo klientov, ktorí majú prístup k existujúcim službám, ktoré boli vytvorené pomocou iných súprav nástrojov. Potrebné úpravy sa majú ukázať na príklade služby .NET. Služby v rámci .NET očakávajú na jednej strane pomenované parametre. Ich generovanie už bolo popísané. .NET tiež vyžaduje pole hlavičky SOAPAction v tvare menný priestor služby, za ktorým nasleduje lomka a za ním nasleduje názov metódy. SOAP: Lite však oddeľuje priestor názvov a názov metódy znakom #. Potrebná úprava je celkom jednoduchá (pozri zoznam 2). Metóda on_action prenesie sa blok kódu Perl, v ktorom sa vykonajú potrebné úpravy. S inštrukciou sub je vytvorený anonymný podprogram, ktorý sa používa s funkciou šprint naformátoval prenesené parametre. Ostatné servery tu môžu vyžadovať iné formáty. Toto je vynikajúci príklad prispôsobiteľnosti protokolu SOAP: Lite prostredníctvom vlastností jazyka Perl.
Viac informácií na tému interoperability nájdete v [5], výsledky v SOAP: Lite v [6].
Prípadne wsdl-Založte s service => 'file: /your/local/path/StockQuoteService.wsdl' zadané, ak je to v lokálnom súborovom systéme.
Dokumentácia poukazuje na to, že zložité dátové typy zatiaľ nefungujú. S dodávaným programom stubmaker.pl môžu byť vygenerované pahýle. Toto nevytvára nič iné ako modul Perl s príslušným názvom, ktorý sa páči ostatným modulom s použitie môže byť použité. Výzva
SOAP: Lite je veľmi komplexná sada nástrojov na vývoj klientov a serverov pre webové služby. Využitie výkonných modulov z CPAN ako napr HTTP: Cookie alebo LWP: UserAgent a modulárna architektúra vedie spolu s vlastnosťami Perlu, ako sú anonymné podprogramy, k veľmi flexibilnému a výkonnému systému. Dokumentácia popisuje množstvo ďalších funkcií SOAP: Lite, ako je prístup cez SSL, autentifikácia, cookies, atď. Kuchárka popisuje ďalšie prípady použitia, ako je vloženie vlastného poľa hlavičky, prístup k obálke a samozrejme použitie XML RPC namiesto SOAP. Aktuálna verzia číslo 0.58 by sa nemala vyhýbať jeho použitiu: Kód je veľmi stabilný a autori Perlu sa všeobecne veľmi zdráhajú vydať 1. verziu.