Aggiornato il: 27-06-2022 06:00
In informatica viene chiamato Web Service (in italiano servizio web) un software progettato secondo specifiche caratteristiche ed utile, di fatto, a supportare l’interoperabilità mediante “chiamate dirette” (ad esempio chiamate HTTPS). Questo significa, nella pratica, che un web service potrebbe ad esempio estrarre singoli dati specifici su richiesta: indicazioni del meteo di oggi a Roma, ad esempio, oppure andamento in borsa di un titolo mediante passaggio di opportuni parametri di input ed un output standardizzato (tipicamente in formato XML o JSON).
Secondo la definizione data dal World Wide Web Consortium (W3C), un web service è un software specializzato che può anche essere richiamato da altri software, progettato per supportare l’interoperabilità tra diversi elaboratori su una rete. Tale caratteristica, a livello tecnico, 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
Cerchiamo di ribadire ancora meglio cosa intendiamo per web service: 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 più specialistici, i web service sono servizi come Oauth che permettono 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”
Esempi di 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.
Il formato TCP-IP per i web service
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.
Altre 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.

Ingegnere informatico per passione, consulente per necessità, docente di informatica; ho creato Trovalost.it e ho scritto quasi tutti i suoi contenuti. Credits immagini: pexels.com, pixabay.com, wikipedia.org, Midjourney, StarryAI, se non diversamente specificato. Questo sito non contiene necessariamente suggerimenti, pareri o endorsement da parte del proprietario del progetto e/o espressi a titolo personale. Per contatti clicca qui