Cos’è un web-service?

Pubblicità

In informatica un Web Service (servizio web), secondo la definizione data dal World Wide Web Consortium (W3C), è un sistema software progettato per supportare l’interoperabilità tra diversi elaboratori su una rete; tale caratteristica si ottiene associando all’applicazione un’interfaccia software (descritta in un formato automaticamente elaborabile quale, ad es., il WSDL o Web Services Description Language) che espone all’esterno il servizio utilizzando la quale altri sistemi possono interagire con l’applicazione stessa attivando le operazioni descritte nell’interfaccia (servizi o richieste di procedure remote) tramite appositi “messaggi” di richiesta.

web service nella pratica

Ad esempio nei nostri siti potremmo usare web-service per mostrare widget del meteo, delle quotazioni in borsa, delle ultime notizie aggiornate direttamente da un sito esterno. In altri casi i web service di servizi quali Oauth permettono ad esempio di abilitare il login dei siti attraverso Facebook o Twitter.

In senso estensivo, come accennato, anche il formato di diffusione contenuti RSS potrebbe essere considerato un web-service visto che si basano su un URL “senza memoria”

Tecnologie per realizzare web service: SOAP

Ci sono due principali approcci alla creazione di web service: il primo si basa su SOAP (Simple Object Access Protocol, il metodo classico), l’altro si basa su RESTful API (Representational State Transfer, più moderno).

I primi webservice si basavano su SOAP, che coinvolge la pubblicazione da parte del server di alcuni metodi che possono essere richiamati dall’esterno: ad esempio il server di una banca potrebbe mettere a disposizione un’ipotetica funzione del tipo:

chiediSaldo(cliente, password)

dove è richiesta una password per accedere al servizio, cliente è la variabile che identifica il cliente della banca e la risposta di chiediSaldo è generalmente in formato XML. Ovviamente i veri servizi di home banking funzionano in modo molto più complicato di così, anche per ovvi motivi di integrità dei dati e sicurezza, spesso coinvolgendo chiamate a servizi OTP. Ad ogni modo, l’esempio serve a far capire come funziona SOAP, che trasmette poi le informazioni in appositi pacchetti di dati.

Un messaggio SOAP possiede tipicamente una struttura suddivisa in Header e Body, in cui l’header contiene le informazioni che possono servire al destinatario del messaggio, mentre il body contiene le informazioni materiali da inviare. Nella pratica i web service coincidono con la seguente struttura, richiamabile al giorno d’oggi anche mediante apposite chiamate remote mediante Javascript e chiamate remote, con il vantaggio di non dover scomodare la logica server-side di PHP a mano sul nostro server.

Le risposte SOAP sono inviate e restitute in formato XML, che poi viene gestito mediante appositi parser o “interpreti” del contenuto. Le complicazioni di questo approccio, del resto, sono legate abbastanza spesso a questo tipo di formato, cosa che viene brillantemente risolta dall’approccio RESTful.

Tecnologie per realizzare web service: RESTful

I servizi web RESTful (acronimo per REpresentational State Transfer) si basano su un’architettura che sfrutta HTTP(S) come protocollo di comunicazione, e permettono di esporre funzioni di alto livello, ottenere risposte velocemente e così via.

Questi servizi si basano sul formato JSON, che è un formato dati strutturato più semplice e snello di XML.

Vedi anche, a tal proposito: guida base ai servizi RESTful

Differenza tra SOAP e RESTful

La differenza più sostanziale risiede nel modo in cui le tecnologie in questione vengono richiamate, e sui servizi che ognuno di essi mette a disposizione dello sviluppatore:

  • Un Web Service basato su SOAP espone una serie di metodi ovvero di funzioni da remoto stabilendo una sessione tra client e server, su protocollo HTTP(S), che un client può richiamare, seguendo un vero e proprio protocollo di azione; esso garantisce che non siano consentiti abusi o operazioni che potrebbero mettere in discussione la sicurezza dell’architettura.
  • Un Web Service basato su RESTful espone invece direttamente specifici URL per specifiche funzioni, che sono considerati stateless, cioè non coinvolgono le sessioni e sono, per questo motivo, in genere più snelli e veloci da gestire.
1 voto
Pubblicato in FAQ