Che cosa sono e come funzionano i Web Services in informatica

Che cosa sono e come funzionano i Web Services in informatica

I Web Services sono un nuovo tipo di applicazioni web che cooperano fra loro, indipendentemente dalla piattaforma sulla quale si trovano, attraverso lo scambio di messaggi. Ognuna di queste applicazioni viene chiamato Web Service (Servizio Web), o più semplicemente servizio, del quale il Web Services Architecture Working Group (del W3C) dà la seguente definizione. Un Web Service è un’applicazione software identificata da un Uniform Resource Identifier (URI), le cui interfacce pubbliche e collegamenti sono definiti e descritti come documenti eXtensible Markup Language (XML), nello specifico WSDL. La sua definizione può essere ricercata da altri agenti software situati su una rete, i quali possono interagire direttamente con il Web Service, con le modalità specificate nella sua definizione, utilizzando messaggi basati su XML (SOAP), scambiati attraverso protocolli Internet (tipicamente HTTP).

Che cosa sono e come funzionano i Web Services in informatica

Gli standard utilizzati dai Web Services, alcuni citati nella definizione, si basano tutti su XML, e sono:

  • XML Schema (eXtensible Markup Language Schema), è un linguaggio di descrizione del contenuto di un file XML. Il suo scopo è definire qual è la costruzione legale di un documento XML, in particolare, gli elementi permessi, quali tipi di dati sono ad essi associati e la loro relazione gerarchica, permettendone la validazione, ovvero la verifica che i suoi elementi siano in accordo con la descrizione in linguaggio XML Schema.
  • SOAP (Simple Object Access Protocol), è un protocollo di trasmissione di messaggi tra componenti software in formato XML. SOAP mette a disposizione un meccanismo semplice, ma allo stesso tempo solido, che permette ad una applicazione di mandare un messaggio XML ad un’altra applicazione. SOAP è un protocollo di alto livello ed è completamente indipendente dal protocollo di trasmissione sottostante, che può essere indifferentemente HTTP (Hypertext Transfer Protocol), JMS (Java Message Service), SMTP (Simple Mail Transfer Protocol), MIME (Multipurpose Internet Message Encapsulation) o altri. Tra questi il più usato è HTTP.
  • WSDL (Web Services Description Language), è un linguaggio formale basato XML, utilizzato per descrivere, in modo completo, un web service. Più precisamente un documento WSDL fornisce informazioni riguardanti l’interfaccia del Web Service in termini di:
    1. servizi offerti dal Web Service
    2. URL ad essi associato
    3. modi per l’invocazione
    4. argomenti accettati in ingresso e modalità con cui debbono essere passati
    5. formato dei risultati restituiti
    6. formato dei messaggi

In altre parole si può dire che un file WSDL fornisce la descrizione relativa ad un Web Service in termini di:

    1. cosa fa
    2. come comunica
    3. dove si trova

Attraverso tale file si può quindi conoscere tutti i dettagli per poter invocare correttamente un servizio.

  • UDDI (Universal Description, Discovery and Integration), è un registry (ovvero una base dati ordinata ed indicizzata), basato su XML e che utilizza SOAP per le comunicazioni da e verso l’esterno. UDDI è indipendente dalla piattaforma hardware e definisce un meccanismo comune per pubblicare e trovare informazioni sui Web Services, in base alle loro descrizioni WSDL. Ciò che UDDI mette a disposizione è un registro nel quale si possa accedere, attraverso specifiche funzioni, per:
    1. pubblicare servizi che un’azienda rende disponibili
    2. cercare aziende che mettono a disposizione un certo tipo di servizio
    3. avere informazioni “Human Readable”, cioè comprensibili all’utente, circa indirizzi, contatti o altro relativi ad una azienda
    4. avere informazioni tecniche “Machine Readable”, cioè interpretabili ed utilizzabili dalla macchina, relative ad un servizio in modo tale da potersi connettere

Un registro UDDI è costituito, in realtà, da un database distribuito, cioè da molti registri distribuiti sulla rete, ognuno dei quali si trova sul server di una azienda che contribuisce allo sviluppo di questo archivio pubblico, e connessi fra loro. Il sistema mantiene una centralizzazione virtuale, cioè l’informazione che viene registrata su uno dei nodi (registri) del sistema viene propagata e resa disponibile su tutti gli altri tramite una loro sincronizzazione. Questo, oltre che ad alleggerire il carico di lavoro che un singolo nodo deve sopportare, contribuisce alla protezione del sistema contro possibili situazioni di failure del database, grazie alla ridondanza dei dati.
Attraverso l’utilizzo di questi ed altri standard i Web Services rendono possibile la comunicazione e la cooperazione, attraverso il web, di più applicazioni (servizi) che mettono a disposizione alcune funzionalità e, allo stesso tempo, utilizzano quelle rese disponibili da altre. Si può cioè ricercare e invocare servizi che possono essere composti per formare un’applicazione per l’utente finale, per abilitare transazioni di business o per creare nuovi Web Services.

Web services e la tecnologia XML

Di queste tecnologie, XML ha dato un contributo molto importante alla nascita dei Web Services. Linguaggio a marcatori, tag, creato e gestito dal World Wide Web Consortium (W3C) e derivato dallo Standard Generalization Markup Language (SGML)10, l’XML è utilizzato per la memorizzazione di informazione in maniera strutturata.
XML è un formato indipendente dalle varie piattaforme; ciò è dovuto, oltre che all’essere universalmente riconosciuto come standard, anche al fatto che tale tecnologia si basa sul formato testo e quindi un documento XML può essere letto chiaramente su qualsiasi sistema operativo. Questa indipendenza lo rende la soluzione ideale per lo scambio di informazioni attraverso il Web.
I vantaggi offerti dai Web Services sono:

  1. Indipendenza dalla piattaforma: i Web Services possono, infatti, comunicare fra loro anche se si trovano su piattaforme differenti
  2. Indipendenza dall’implementazione del servizio: l’interfaccia che un Web Service presenta sulla rete è indipendente dal software che implementa tale servizio. In futuro tale implementazione potrà essere sostituita o migliorata senza che l’interfaccia subisca modifiche e quindi senza che dall’esterno (da parte di altri utenti o servizi sulla rete) si noti il cambiamento
  3. Riuso dell’infrastruttura: per lo scambio di messaggi si utilizza SOAP che fa uso di HTTP, grazie al quale si ottiene anche il vantaggio di permettere ai messaggi SOAP di passare attraverso sistemi di filtraggio del traffico sulla rete, quali “Firewall”
  4. Riuso del software: è possibile riutilizzare software implementato precedentemente e renderlo disponibile attraverso la rete

Web services e SOA

Web Services e SOA cercano di fornire una soluzione al problema dell’interoperabilità e le fondamenta per lo sviluppo di applicazioni distribuite su larga scala. Molti dei principi di SOA si sposano quindi alla perfezione con le problematiche di integrazione e discendono direttamente dalla consapevolezza che, se il sistema che si sviluppa ha successo, in futuro occorrerà estenderlo/integrarlo, oppure dal fatto che si ritiene necessario conservare gli asset dell’organizzazione a fronte di una evoluzione tecnologica, in questo caso facendo esplicitamente integrazione.

Il concetto di Web Services implica quindi un modello di architettura ad oggetti distribuiti (oggetti intesi come applicazioni), che si trovano localizzati in punti diversi della rete e su piattaforme di tipo differente.
Il legame con l’architettura Service-Oriented Architecture (SOA) sta nel fatto che, sfruttando al meglio tutte le caratteristiche della tecnologia dei Web Services, il sistema che si ottiene implementa proprio un’architettura orientata ai servizi. Ad oggi i Web Services rappresentano la soluzione migliore per la realizzazione di una SOA su larga scala, ovvero su Internet.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *