Economisiți calorii - JAXenter
Există acum peste 70 de seturi de instrumente pentru realizarea serviciilor web. Desigur, fracțiunea Perl are, de asemenea, multe de oferit. Următorul articol descrie implementarea serviciilor web cu modulul Perl SOAP: Lite. Potrivit dezvoltatorului Paul Kulchenko, Lite-ul din nume indică faptul că numai un număr mic de calorii sunt consumate atunci când îl utilizați.

În legătură cu SOAP și serviciile web, mai ales numai Java și .NET sunt menționate ca medii de dezvoltare. În timp ce pentru unii oameni lumea .NET este exclusă din motive de credință, dezvoltarea cu Java este destul de complexă. Pachetele din gama MB de trei cifre trebuie încărcate și apoi configurate. Autorul articolului Serviciu de comandă (Revista XML 01.2002) afirmă în concluzia sa că cea mai mare parte a efortului constă în asigurarea și configurarea mediului [1].
Înapoi la SOAP: Lite. Caracteristicile sale includ suport pentru SOAP 1.1 și SOAP 1.2, diverse protocoale de transport (FTP, HTTP, IO, Jabber, SMTP, POP3, TCP și MQSeries) și, pe lângă SOAP, XML-RPC ca protocol. O listă cu toate caracteristicile poate fi găsită pe site-ul web asociat [2]. Există mai multe pentru Windows .dll-Fișiere și o serie de exemple pentru COM, .NET, VB, C # etc. Software-ul poate fi descărcat de pe pagina principală sau din CPAN [3]. Instalarea sub Unix are loc după modelul CPAN:
În plus față de un Perl instalat (disponibil sub [7] sau [8]), sunt necesare module XML: Parser, MIME: Base64 și URI, care poate fi instalat după aceeași schemă. Un număr de alte module sunt necesare în funcție de protocolul de transport utilizat; acestea sunt interogate în timpul instalării și instalării. Documentația SOAP: Lite include un ghid de pornire rapidă, o carte de bucate și paginile manuale [2]. Distribuția include, de asemenea, o serie de exemple de programe pentru implementări client și server care pot fi utilizate ca punct de plecare pentru propriile aplicații.
Următoarele exemple sunt limitate la HTTP ca protocol de transport. Să începem cu un client simplu din programele eșantion (client.pl). Programele sunt incluse în distribuție sau pot fi descărcate de pe guide.soaplite.com Metoda uri conține spațiul de nume al serviciului, metoda proxy adresa. În acest caz, cu hibye.cgi un script CGI numit:
Pe partea de server, SOAP: Lite acceptă mai multe variante. Pe de o parte ca server independent, pe de altă parte integrarea în Apache prin CGI, FastCGI sau mod_perl. Cu mod_perl un interpret Perl este integrat în Apache, ceea ce duce la o creștere semnificativă a performanței în comparație cu CGI. Clientul nostru utilizează scriptul CGI la adresa sa hibye.cgi, deci să vedem mai întâi implementarea ca un script CGI (vezi Listarea 1).
În linia 1 este indicată calea interpretului, în funcție de instalația Perl locală, aceasta trebuie adaptată. Linia 2 încarcă modulul SOAP: Transport: HTTP, aceasta corespunde importului în Java. În interior este o clasă numită SOAP: Transport: HTTP: CGI definit, în linia 5 se determină ce module Perl pot fi utilizate ca servicii web. SAPUN: Lite astfel, toate modulele existente în calea de căutare Perl pot fi utilizate ca servicii web într-o manieră complet transparentă. Liniile 8-14 definesc cele două funcții într-un spațiu de nume separat (demo) Salut și pa. Asta a fost atunci. Pornirea clientului oferă rezultatul: Salut Lume.
Sintaxa selectată aici diferă de forma obișnuită. În loc să creați un obiect cu un apel constructor și apoi să-i apelați metodele unul după altul, fiecare metodă a clasei poate fi apelată aici și alte apeluri de metode pot fi legate împreună (cu operatorul ->). Valoarea returnată este întotdeauna obiectul creat cu prima metodă. Pentru iubitorii de Perl, sursa SOAP: Lite oferă câteva exemple pe tema generării de cod.
Pentru a îmbunătăți performanța, vom rula serverul în continuare nu ca un program CGI, ci de la Apache însăși cu ajutorul interpretului Perl mod_perl. Acest lucru evită începerea unui nou proces și compilarea programului pentru fiecare cerere. Condiția prealabilă pentru aceasta este că Apache are mod_perl a fost compilat. Software-ul și documentația necesare pentru instalare pot fi găsite la perl.apache.org. Multe distribuții Linux conțin deja un Apache corespunzător. Apoi sunt necesari patru pași pentru instalarea serviciilor noastre web: Mai întâi trebuie să scrieți un handler Apache. Acest lucru nu este deosebit de dificil, după cum arată următorul cod sursă:
Iată toate funcțiile modulelor demo și My: SOAP: ZIP apelabil în timp ce ieșiți din modul My: SOAP: XY doar funcția func1 este realizabil.
Pasul 2 este configurația Apache, pentru aceasta httpd.conf-Fișier încă de ajustat:
Serializatoarele și deserializatoarele pot fi suprascrise de propriile clase. Tot ce aveți nevoie este o subclasă de deserializator/serializator și specificat la crearea obiectului server (sau a clientului, dacă se folosește acolo un serializator separat):
Documentația descrie un număr de clienți pentru accesarea serviciilor existente care au fost create cu alte seturi de instrumente. Ajustările necesare vor fi afișate folosind exemplul unui serviciu .NET. Serviciile din cadrul .NET așteaptă parametrii numiți pe de o parte. Modul în care acestea sunt generate a fost deja descris. .NET necesită, de asemenea, câmpul antet SOAPAction în forma spațiul de nume al serviciului, urmată de o bară, urmată de numele metodei. Cu toate acestea, SOAP: Lite separă spațiul de nume și numele metodei cu un #. Reglarea necesară este destul de simplă (vezi Listarea 2). Metoda on_action se transferă un bloc de cod Perl în care se fac ajustările necesare. Cu instrucțiunea sub se creează un subrutin anonim care este utilizat cu funcția sprintf a formatat parametrii transferați. Alte servere pot necesita aici alte formate. Acesta este un exemplu excelent de adaptabilitate a SOAP: Lite prin proprietățile limbajului Perl.
Mai multe informații despre subiectul interoperabilității pot fi găsite în [5], rezultate pe SOAP: Lite în [6].
Alternativ, wsdl-Înregistrați cu service => 'fișier: /your/local/path/StockQuoteService.wsdl' specificat dacă acesta este pe sistemul de fișiere local.
Documentația arată că tipurile de date complexe nu funcționează încă. Cu programul furnizat stubmaker.pl pot fi generate butuci. Acest lucru nu creează altceva decât un modul Perl cu numele corespunzător, care ca și alte module cu utilizare poate fi folosit. Chemarea lui
SOAP: Lite este un set de instrumente foarte cuprinzător pentru dezvoltarea de clienți și servere pentru servicii web. Utilizarea de module puternice de la CPAN, cum ar fi HTTP: Cookie sau LWP: UserAgent iar arhitectura modulară, împreună cu proprietățile Perl, cum ar fi subrutine anonime, duc la un sistem foarte flexibil și puternic. Documentația descrie o serie de alte caracteristici ale SOAP: Lite, cum ar fi accesul prin SSL, autentificare, cookie-uri etc. Alte cazuri de utilizare sunt descrise în Cartea de bucate, cum ar fi inserarea propriului câmp antet, accesul la plic și, desigur, utilizarea XML RPC în loc de SOAP. Versiunea actuală numărul 0.58 nu ar trebui să se ferească de utilizarea acestuia: Codul este foarte stabil, iar autorii Perl sunt, în general, foarte reticenți în publicarea unei versiuni 1 *.