Web Services
difficile
Il web service è, sopratutto in ambito enterprise, il sistema preferito per fare interoperare più applicazioni tra di loro. Utilizzando questo sistema le applicazioni possono essere su diversi pc e possono essere realizzate con diverse tecnologie.
La libreria standard di python supporta generosamente questo tipo di tecnologia attraverso un package dedicato al protocollo XMLRPC e molti framework e application server supportano nativamente questo protocollo (ad esempio Zope).
Talvolta, specialmente per colloquiare con il mondo Java o .Net, è preferibile utilizzare il protocollo SOAP (certamente meglio supportato/conosciuto in queste realtà).
Vedremo nelle prossime pagine come utilizzare gli strumenti che ci consentono di interfacciare la nostra applicazione attraverso il protocollo SOAP.
Come prima cosa dovremo però descrivere WSGI: il sistema che consente di esporre una applicazione Python attraverso un web server. In seguito vedremo come realizzare una semplice interfaccia web con WSGI e infine come sfruttare WSGI per il nostro web service.
Ma, andiamo per ordine, cos'è un web service?
Web service
Come spiegato su wikipedia un web service è un interfaccia software che permette di richiamare una funzione o di utilizzare un oggetto che può risiedere su un altro pc e può essere scritto con un altro linguaggio.
Il sistema si basa sullo scambio via rete di messaggi tra le due applicazioni: l'applicazione chiamante è il client e l'applicazione che offre il servizio è il server.
Il protocollo utilizzato è http che è lo stesso utilizzato per le pagine web (da qui il termine web service). Tramite http viene fatta una richiesta al web server (dove viene "esposto" il servizio) con gli argomenti passati in un file xml. Dopo l'elaborazione, il web server risponderà con un altro xml contenente il risultato.
Il protocollo soap prevede anche l'esposizione di un file WSDL (Web Services Description Language) che serve a descrivere l'interfaccia pubblica dell'oggetto e permettendone, lato client, l'introspezione.
Le librerie per la gestione dei web services (come ad esempio SOAPLIB) svolgono queste attività dietro le quinte, in modo trasparente.