Web Service

I Web Service sono, come indica la parola stessa, dei servizi offerti via web. Più specificatamente possiamo definirlo come un sistema software in grado di mettersi al servizio di un’applicazione comunicando su di una medesima rete tramite messaggi codificati in un formato XML.

Il protocollo di base per i Web Service è HTTP. Questo protocollo si occupa di mettere in comunicazione il servizio web con l’applicazione o le applicazioni che si collegano ad esso per usufruire delle funzioni che mette a disposizione. Le informazioni su tali funzioni sono inoltre immediatamente reperibili in quanto un Web Service offre un’interfaccia software assieme alla descrizione delle sua caratteristiche. Oltre ad HTTP i servizi web utilizzano molti altri standard web, tra cui XMLSchema, WSDL, UDDI, SOAP. È importante sottolineare il fatto che tutti gli standard utilizzati dai Web Service si basano su XML che, essendo un linguaggio universalmente riproducibile indipendentemente dalla piattaforma tecnologica prescelta, fa sì che i Web Service possano essere utilizzati correttamente tra piattaforme diverse (Linux, Windows, Mac) e differenti linguaggi di programmazione (Java, Python, ecc). Gli standard e i protocolli che permettono lo scambio di informazioni sono infatti definiti “aperti”, permettendo in tal modo l’interoperabilità attraverso le reti, come Internet, fra diverse applicazioni software e su diverse piattaforme hardware. Il lato innovativo che caratterizza i Web Service rispetto alle precedenti tecnologie, risiede proprio in questo aspetto, in quanto un Web Service permette ora l’interazione diretta tra applicazioni, non necessitando più, come avviene nella semplice navigazione sul web, dell’intervento umano.

Ma ora vediamo le principali tecnologie su cui si basano. Esse sono:

  • SOAP (Simple Object Access Protocol)
  • WSDL (Web Service Description Language)
  • UDDI (Universal Discovery Description Integration)


  • SOAP è un protocollo che contiene un insieme di regole per lo scambio di informazioni. Tale scambio avviene, come già indicato, tramite messaggistica in formato XML.
  • WSDL è un linguaggio formale in formato XML, utilizzato per la descrizione dei Web Service. Un documento WSDL fornisce tutte le informazioni utili su un Web Service e sul suo utilizzo.
  • UDDI è una specifica per la realizzazione di registri distribuiti, basati sul web, di Web Service. In pratica si tratta di un servizio di directory disponibile sul web che effettua una classificazione dei servizi web, consentendone la ricerca e la registrazione agli interessati. È stato progettato per messaggistica in SOAP e per fornire il collegamento ai documenti WSDL, che descrivono i vincoli protocollari ed i formati dei messaggi necessari per l'interazione con i Web Service indicati nella propria directory.

Pila protocollare dei Web Service

 
Esempio di utilizzo dei protocolli per i Web Service

La pila protocollare dei Web Service è l'insieme dei protocolli di rete utilizzati per definire, localizzare, realizzare e far interagire tra di loro i Web Service; è principalmente composta di quattro aree:

  • Trasporto del servizio: responsabile per il trasporto dei messaggi tra le applicazioni in rete, include protocolli quali HTTP, SMTP, FTP, XMPP ed il recente Blocks Extensible Exchange Protocol (BEEP).
  • XML Messaging: tutti i dati scambiati sono formattati mediante "tag" XML in modo che gli stessi possano essere utilizzati ad entrambi i capi della connessioni; il messaggio può essere codificato conformemente allo standard SOAP, come anche utilizzare JAX-RPC, XML-RPC o REST.
  • Descrizione del servizio: l'interfaccia pubblica di un Web Service viene descritta tramite WSDL (Web Services Description Language) un linguaggio basato su XML usato per la creazione di "documenti" descrittivi delle modalità di interfacciamento ed utilizzo del Web Service.
  • Elencazione dei servizi: la centralizzazione della descrizione e della localizzazione dei Web Service in un "registro" comune permette la ricerca ed il reperimento in maniera veloce dei Web Service disponibili in rete; a tale scopo viene attualmente utilizzato il protocollo UDDI.

Ulteriori protocolli standard utilizzati sono:

  • WS-Security: il protocollo Web Services Security protocol è stato adottato come standard OASIS; tale standard permette l'autenticazione degli utenti e la confidenzialità dei messaggi scambiati con l'interfaccia del Web Service
  • WS-Reliability: si tratta di specifiche basate su SOAP ed accettate come standard OASIS che soddisfano la richiesta di messaggi "affidabili" (reliable), richiesta critica per alcune delle applicazioni che utilizzano i Web Service (come, ad esempio, transazioni monetarie o applicazioni di E-commerce).

Vantaggi dei Web Service

  • permettono l'interoperabilità tra diverse applicazioni software su diverse piattaforme hardware
  • utilizzano standard e protocolli "open"; i protocolli ed il formato dei dati è, ove possibile, in formato testuale, cosa che li rende di più facile comprensione ed utilizzo da parte degli sviluppatori
  • mediante l'uso di HTTP per il trasporto dei messaggi i Web Service non necessitano, normalmente, che vengano effettuate modifiche alle regole di sicurezza utilizzate come filtro sui firewall
  • possono essere facilmente utilizzati, in combinazione l'uno con l'altro (indipendentemente da chi li fornisce e da dove vengono resi disponibili) per formare servizi "integrati" e complessi.
  • consentono il riutilizzo di infrastrutture ed applicazioni già sviluppate e sono (relativamente) indipendenti da eventuali modifiche delle stesse

Svantaggi dei Web Service

  • attualmente non esistono standard consolidati per applicazioni critiche quali, ad esempio, le transazioni distribuite
  • le performance legate all'utilizzo dei Web Service possono essere minori di quelle riscontrabili utilizzando approcci alternativi di distributed computing quali Java RMI, CORBA, o DCOM
  • L'uso dell'HTTP permette ai Web Service di evitare le misure di sicurezza dei firewall (le cui regole sono stabilite spesso proprio per evitare le comunicazioni fra programmi "esterni" ed "interni" al firewall).

Perché creare un Web Service

La ragione principale per la creazione e l'utilizzo di Web Service è il "disaccoppiamento" che l'interfaccia standard esposta dal Web Service rende possibile fra il sistema utente ed il Web Service stesso: modifiche ad una o all'altra delle applicazioni possono essere attuate in maniera "trasparente" all'interfaccia tra i due sistemi; tale flessibilità consente la creazione di sistemi software complessi costituiti da componenti svincolati l'uno dall'altro e consente una forte riusabilità di codice ed applicazioni già sviluppate.

I Web service hanno inoltre guadagnato consensi visto che, come protocollo di trasporto, possono utilizzare HTTP "over" TCP sulla porta 80; tale porta è, normalmente, una delle poche (se non l'unica) lasciata "aperta" dai sistemi firewall al traffico di entrata ed uscita dall'esterno verso i sistemi aziendali e ciò in quanto su tale porta transita il traffico HTTP dei web browser: ciò consente l'utilizzo dei Web Service senza modifiche sulle configurazioni di sicurezza dell'azienda (un aspetto che se da un lato è positivo solleva preoccupazioni concernenti la sicurezza).

Un'ultima ragione che ha favorito l'adozione ed il proliferare dei Web Service è la mancanza, prima dello sviluppo di SOAP, di interfacce realmente funzionali per l'utilizzo di funzionalità distribuite in rete: EDI, RPC, ed altri tipi di API (Application Programming Interface) erano e rimangono meno conosciute e di facile utilizzo che non l'architettura dei Web Service.

Voci correlate

Collegamenti esterni