Che cos’è un web service?

Argomenti:
Pubblicato il: 24-05-2020 10:01 , Ultimo aggiornamento: 21-05-2021 18:44

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).

SMSHosting Usa il codice PROMO per uno sconto sul primo acquisto: PRT96919

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.
2.53/5 (34)

Che te ne pare?

Grazie per aver letto Che cos’è un web service? di Salvatore Capolupo su Trovalost.it
Che cos’è un web service? (Guide, Assistenza Tecnica)

Articoli più letti su questi argomenti:

Seguici su Telegram: @trovalost