Randy J. Ray e Pavel Kulchenko
Programming Web Services with Perl

O'Reilly - 2002 - 39,95 USD
ISBN:0596002068

Recensioni di dree e David "Joestick" Salvi.
© 2003 Perl Mongers Italia. Tutti i diritti riservati.

Recensione di dree [Voto:5/5]

L'obiettivo di questo libro è quello di dare risposte e fornire pratici esempi su tutto ciò che c'è dietro all'insieme di tecnologie che stanno dietro al nome di "web service" (servizi web). Si tratta dunque di un volume che con un preciso percorso, darà significato a sigle quali RPC, SOAP, WSDL, UDDI ecc, che sono essenza stessa dei web service.

Il pubblico a cui si rivolge questo libro è decisamente quello del programmatore Perl con conoscenze medio-alte. Si passa infatti subito al sodo e sono anche richieste conoscenze di programmazione Perl orientata agli oggetti.

Gli autori, Randy J. Ray e Pavel Kulchenko, sono programmatori Perl dai primi anni 90 e autori dei principali moduli utilizzati nel libro: RPC::XML di Ray e SOAP::Lite, XMLRPC::Lite e UDDI::Lite di Kulchenko.

La struttura del libro è la seguente: dopo un paio di capitoli dedicati alla genesi dei Web Service e su HTML e XML (molto brevi, sufficienti per focalizzare velocemente sulle strutture su cui i web service si fondano), troviamo due capitoli dedicati a XML-RPC. Nel primo si ha un'introduzione ai concetti su cui si basa la tecnologia XML-RPC (con brevi esempi senza utilizzo di moduli particolari) mentre nel secondo si parla di programmazione XML-RPC attraverso i moduli dedicati allo scopo: RPC::XMLSimple, XMLRPC::Lite e RPC::XML. La parte dedicata a SOAP è più consistente, vista la maggiore complessità dell'argomento, e ad essa vengono dedicati quattro capitoli: introduzione, programmazione di client SOAP con i moduli SOAP (trattata forse un po' troppo velocemente) e SOAP::Lite (a fondo), programmazione di server SOAP su protocollo HTTP e infine SOAP su protocolli non HTTP (con SOAP::Transport).

I restanti quattro capitoli sono dedicati rispettivamente a WSDL (linguaggio per poter descrivere ad un client l'interfaccia che il server gli mette a disposizione), UDDI (specificazioni medianti le quali è} possibile per un web service cercare e trovare altri web service con i quali interagire), REST (principi che definiscono lo stile di un'architettura, stili di comportamento per disegnare nuove tipologie di web service) e infine gli argomenti più avanzati (transazioni, sicurezza, ecc).

Da notare che quasi 1/3 del libro è dedicato alle appendici: le programming reference di XML-RPC Toolkit (RPC::XMLSimple, XMLRPC::Lite, RPC::XML) e di SOAP::Lite, i sorgenti completi degli esempi presentati nei capitoli precedenti ed infine la bibliografia e l'indice analitico.

Pro: la competenza degli autori si fa sentire. E' palpabile la qualità e la puntualità del codice e della scelta sul cosa è necessario dire e non dire.

Contro: a prescindere dalla difficoltà degli argomenti trattati, a volte l'inglese utilizzato non è dei più semplici per il lettore non anglofono che possieda una conoscenza prettamente scolastica della lingua.

Un difetto che personalmente trovo in quasi tutti i libri O'Reilly è il fatto che manchino sempre quel centinaio di pagine che farebbero del libro, IL libro per eccellenza su quell'argomento, un riferimento che si completa da solo. Ciò non toglie che il libro meriti, a mio parere, il massimo dei voti.


Recensione di David "Joestick" Salvi [Voto:4/5]

I servizi web nascono dall'esigenza di rendere disponibili e fruibili le informazioni eterogenee che si trovano su Internet. Questo libro presenta un semplice ma potente package Perl, SOAP::Lite che permette di creare rapidamente servizi web in grado di scambiare e manipolare informazioni.

I primi capitoli del libro delineano una rapida ma esauriente panoramica sull'XML e sul SOAP; questi capitoli sono prettamente informativi ma servono ad introdurre il vero "cuore" del libro, quello che analizza le capacità e le potenzialità del SOAP::Lite. Dopo il primo capitolo che delinea l'evoluzione dei servizi web passiamo a quello successivo che che presenta la relazione esistente tra protocollo HTTP e l'XML per la creazione di servizi basati su XML-RPC.

Il primo protocollo per servizi web diventa il protagonista dei due capitoli seguenti in cui sono presentati e sviluppati le tecniche fondamentali per la creazione di client e server basati su XML-RPC.

Il protocollo XML-RPC si limita alla sola codifica delle chiamate procedurali mentre il SOAP si spinge oltre fornendo un header che consente di definire politiche di sicurezza e di routing. L'introduzione del SOAP aiuta ad ottenere una maggiore libertà rispetto al solo impiego dell'HTTP. Il prezzo da pagare per questi benefici è una maggiore complessità;dopo una presentazione iniziale del SOAP nel quinto capitolo, il capitolo 6, 7 e 8 discutono come sviluppare client e server SOAP in PERL usando SOAP::Lite.

Partendo da un esempio iniziale Pavel introduce lo "stile" di programmazione che permea il package di cui è autore: semplicità e funzionalità. Creare un client e/o un server SOAP richiede poche righe di codice. In questa parte del libro sono presentati anche i protocollo di trasporto supportati dal package: HTTP, TCP/IP, Jabber, MAIL.

L'interfaccia WSDL è la protagonista del nono capitolo e con essa ci avviciniamo ad una prima automatizzazione nella descrizione dei servizi web SOAP che prepara il terreno per il successivo capitolo: un'introduzione al concetto di UDDI, grazie al quale possiamo caricare le interfacce dei servizi runtime piuttosto che averle cablate nei programmi stessi. Il penultimo capitolo fornisce un altro punto di vista, maggiormente accademico, del panorama dello sviluppo di servizi web ossia la filosofia REST (rappresentational state transfer). I concetti avanzati nello sviluppo dei servizi web sono lasciati al dodicesimo e ultimo capitolo. Dopo una panoramica preliminare passiamo ai capitoli in cui è sviscerato anche il potenziale di customizzazione del package che consente di definere un proprio protocollo di trasporto, per esempio basato sulla cifratura dei dati trasmessi.

Nella parte finale del libro è raccolto il codice completo degli esempi esposti. Alla fine di questa lettura è evidente che lo strumento messo a disposizione da Pavel è molto potente e flessibile. Il libro non è certamente un cookbook del SOAP::Lite (forse per quello dovremmo attendere un tomo ad hoc) ma rimane un'ottima presentazione del package.