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 medesima rete oppure in un contesto distribuito.

Storia

[modifica | modifica wikitesto]

Il consorzio OASIS (Organization for the Advancement of Structured Information Standards) ed il W3C sono i principali responsabili dell'architettura e della standardizzazione dei Web service; per migliorare l'interoperabilità tra le diverse implementazioni dei Web service l'organizzazione WS-I sta inoltre sviluppando una serie di "profili" per meglio definire gli standard coinvolti.

Descrizione

[modifica | modifica wikitesto]

Tale caratteristica si ottiene associando all'applicazione un'interfaccia software (descritta in un formato automaticamente elaborabile quale, ad es., il Web Services Description Language) che espone all'esterno il servizio/i associato/i e 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: tali messaggi di richiesta sono inclusi in una "busta" (la più famosa è SOAP), formattati secondo lo standard XML, incapsulati e trasportati tramite i protocolli del Web (solitamente HTTP), da cui appunto il nome Web service. Di fatto dunque il web service consiste in una chiamata ad un servizio molto simile a una funzione, subroutine o metodo scritta in maniera inusuale rispetto alla norma e con i suddetti metodi di chiamata, utili in termini di interoperabilità in un'architettura tipica complessa di tipo modulare.

Proprio grazie all'utilizzo di standard basati su XML, tramite un'architettura basata sui Web Service (chiamata, con terminologia inglese, Service oriented Architecture - SOA) applicazioni software scritte in diversi linguaggi di programmazione e implementate su diverse piattaforme hardware possono quindi essere utilizzate, tramite le interfacce che queste "espongono" pubblicamente e mediante l'utilizzo delle funzioni che sono in grado di effettuare (i "servizi" che mettono a disposizione) per lo scambio di informazioni e l'effettuazione di operazioni complesse (quali, ad esempio, la realizzazione di processi di business che coinvolgono più aree di una medesima azienda) sia su reti aziendali come anche su Internet: la possibilità dell'interoperabilità fra diversi linguaggi di programmazione (ad esempio, tra Java e Python) e diversi sistemi operativi (come Windows e Linux) è resa possibile dall'uso di standard "aperti".

Caratteristiche

[modifica | modifica wikitesto]

Alcuni dei vantaggi che è possibile ottenere con l'utilizzo dei Web service sono i seguenti:

Di contro, vi sono i seguenti aspetti da considerare:

Ragioni dell'utilizzo

[modifica | modifica wikitesto]

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 a 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 rispetto all'architettura dei Web service.

Pila protocollare

[modifica | modifica wikitesto]
Esempio di utilizzo dei protocolli per i 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:

Ulteriori protocolli standard utilizzati sono:

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàLCCN (ENsh2003001435 · BNE (ESXX552378 (data) · J9U (ENHE987007537450005171