Web service

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

IninformaticaunWeb service(servizio web), secondo la definizione data dalWorld Wide Web Consortium(W3C), è un sistemasoftwareprogettato per supportare l'interoperabilitàtra diversielaboratorisu una medesimareteoppure in un contestodistribuito.

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'organizzazioneWS-Ista inoltre sviluppando una serie di "profili" per meglio definire gli standard coinvolti.

Tale caratteristica si ottiene associando all'applicazione un'interfacciasoftware (descritta in un formato automaticamente elaborabile quale, ad es., ilWeb Services Description Language) che espone all'esterno il servizio/i associato/i e utilizzando la quale altrisistemipossono interagire con l'applicazione stessa attivando le operazioni descritte nell'interfaccia (serviziorichieste di procedure remote) tramite appositi "messaggi" di richiesta: tali messaggi di richiesta sono inclusi in una "busta" (la più famosa èSOAP), formattati secondo lo standardXML,incapsulatie trasportati tramite iprotocollidelWeb(solitamenteHTTP), da cui appunto il nomeWeb service.Di fatto dunque ilweb serviceconsiste in una chiamata ad un servizio molto simile a unafunzione,subroutine ometodoscritta in maniera inusuale rispetto alla norma e con i suddetti metodi di chiamata, utili in termini di interoperabilità in un'architettura tipica complessa di tipomodulare.

Proprio grazie all'utilizzo di standard basati su XML, tramite un'architettura basata suiWebService (chiamata, con terminologiainglese,Service oriented Architecture- SOA) applicazioni software scritte in diversilinguaggi di programmazionee implementate su diversepiattaformehardwarepossono 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 diprocessi di businessche coinvolgono più aree di una medesima azienda) sia su reti aziendali come anche suInternet:la possibilità dell'interoperabilitàfra diversi linguaggi di programmazione (ad esempio, traJavaePython) e diversisistemi operativi(comeWindowseLinux) è resa possibile dall'uso distandard "aperti".

Caratteristiche

[modifica|modifica wikitesto]

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

  • 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 diHTTPper il trasporto dei messaggi, i Web service normalmente non necessitano di modifiche alle regole di sicurezza utilizzate come filtro suifirewall;
  • 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;
  • nascondono all'utente la complessità architetturale delframework,offrendo in un'eventuale interfaccia (front end) il risultato dell'esecuzione del servizio (ad esempio i valori di determinati campi di una tabella in un'app).

Di contro, vi sono i seguenti aspetti da considerare:

  • attualmente non esistono standard consolidati per applicazioni critiche quali, ad esempio, letransazioni distribuite;
  • leperformancelegate all'utilizzo dei Web service possono essere minori di quelle riscontrabili utilizzando approcci alternativi didistributed computingqualiJava RMI,CORBA,oDCOM:
  • L'uso dell'HTTPpermette 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).

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"TCPsullaporta80; 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 deiweb 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 deiprotocolli di reteutilizzati 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 qualiHTTP,SMTP,FTP,XMPPed il recenteBlocks 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 delle connessioni; il messaggio può essere codificato conformemente allo standardSOAP,come anche utilizzareJAX-RPC,XML-RPCoREST.
  • Descrizione del servizio:l'interfaccia pubblica di un Web service viene descritta tramiteWSDL(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 protocolloUDDI.

Ulteriori protocollistandardutilizzati sono:

  • WS-Security:il protocolloWeb Services Security protocolè stato adottato come standard OASIS; tale standard permette l'autenticazionedegli 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 diE-commerce).

Collegamenti esterni

[modifica|modifica wikitesto]
Controllo di autoritàLCCN(EN)sh2003001435·BNE(ES)XX552378(data)·J9U(EN,HE)987007537450005171