Cos'è il servizio Web?
Il servizio Web è un mezzo standardizzato per propagare la comunicazione tra le applicazioni client e server sul World Wide Web. Un servizio Web è un modulo software progettato per eseguire un determinato insieme di attività.
- I servizi Web nel cloud computing possono essere cercati sulla rete e possono anche essere richiamati di conseguenza.
- Quando viene richiamato, il servizio Web sarebbe in grado di fornire la funzionalità al client, che richiama quel servizio Web.
In questo tutorial sul servizio Web, imparerai le basi dei servizi Web:
- Come funzionano i servizi web?
- Perché hai bisogno di un servizio Web?
- Tipo di servizio Web
- Vantaggi dei servizi Web
- Architettura del servizio Web
- Caratteristiche del servizio web
- Servizi web SOAP.
- Servizi web RESTful.
- Ogni documento SOAP deve avere un elemento radice noto come elemento
. L'elemento radice è il primo elemento in un documento XML. - La "busta" è a sua volta divisa in 2 parti. Il primo è l'intestazione e il prossimo è il corpo.
- L'intestazione contiene i dati di instradamento che sono fondamentalmente le informazioni che dicono al documento XML a quale client deve essere inviato.
- Il corpo conterrà il messaggio effettivo.
Come funzionano i servizi web?

Il diagramma sopra mostra una visione molto semplicistica di come funzionerebbe effettivamente un servizio web. Il client invoca una serie di chiamate al servizio Web tramite richieste a un server che ospiterà il servizio Web effettivo.
Queste richieste vengono effettuate tramite le cosiddette chiamate di procedura remota. Le chiamate di procedura remota (RPC) sono chiamate effettuate a metodi ospitati dal servizio Web pertinente.
Ad esempio, Amazon fornisce un servizio web che fornisce i prezzi per i prodotti venduti online tramite amazon.com. Il front-end o il livello di presentazione può essere in .Net o Java, ma entrambi i linguaggi di programmazione avrebbero la capacità di comunicare con il servizio web.
Il componente principale di un progetto di servizio web sono i dati che vengono trasferiti tra il client e il server, e questo è XML. XML (Extensible markup language) è una controparte dell'HTML e di facile comprensione, il linguaggio intermedio compreso da molti linguaggi di programmazione.
Quindi, quando le applicazioni parlano tra loro, parlano effettivamente in XML. Ciò fornisce una piattaforma comune per l'applicazione sviluppata in vari linguaggi di programmazione per dialogare tra loro.
I servizi Web utilizzano qualcosa noto come SOAP (Simple Object Access Protocol) per inviare i dati XML tra le applicazioni. I dati vengono inviati tramite HTTP normale. I dati inviati dal servizio web all'applicazione sono chiamati messaggio SOAP. Il messaggio SOAP non è altro che un documento XML. Poiché il documento è scritto in XML, l'applicazione client che chiama il servizio Web può essere scritta in qualsiasi linguaggio di programmazione.
Perché hai bisogno di un servizio Web?
Le applicazioni aziendali moderne utilizzano una varietà di piattaforme di programmazione per sviluppare applicazioni basate sul web. Alcune applicazioni possono essere sviluppate in Java, altre in .Net, mentre altre in Angular JS, Node.js, ecc.
Il più delle volte, queste applicazioni eterogenee richiedono una sorta di comunicazione tra di loro. Poiché vengono creati utilizzando diversi linguaggi di sviluppo, diventa davvero difficile garantire una comunicazione accurata tra le applicazioni.
È qui che entrano in gioco i servizi Web. I servizi Web forniscono una piattaforma comune che consente a più applicazioni costruite su vari linguaggi di programmazione di avere la capacità di comunicare tra loro.
Tipo di servizio Web
Esistono principalmente due tipi di servizi web.
Affinché un servizio Web sia completamente funzionale, ci sono alcuni componenti che devono essere presenti. Questi componenti devono essere presenti indipendentemente dal linguaggio di sviluppo utilizzato per programmare il servizio web.
Diamo un'occhiata a questi componenti in modo più dettagliato.
SOAP (Simple Object Access Protocol)
SOAP è noto come protocollo di messaggistica indipendente dal trasporto. SOAP si basa sul trasferimento di dati XML come messaggi SOAP. Ogni messaggio ha qualcosa che è noto come documento XML. Solo la struttura del documento XML segue uno schema specifico, ma non il contenuto. La parte migliore dei servizi Web e SOAP è che sono tutti inviati tramite HTTP, che è il protocollo web standard.
Ecco in cosa consiste un messaggio SOAP
Lo schema seguente mostra un semplice esempio di comunicazione tramite SOAP.

Discuteremo SOAP in dettaglio in questo tutorial.
WSDL (linguaggio di descrizione dei servizi Web)
Non è possibile utilizzare un servizio Web se non è possibile trovarlo . Il client che richiama il servizio web dovrebbe sapere dove risiede effettivamente il servizio web.
In secondo luogo, l'applicazione client deve sapere cosa fa effettivamente il servizio Web, in modo da poter richiamare il servizio Web corretto. Questa operazione viene eseguita con l'aiuto del WSDL, noto come linguaggio di descrizione dei servizi Web. Il file WSDL è di nuovo un file basato su XML che fondamentalmente dice all'applicazione client cosa fa il servizio web. Utilizzando il documento WSDL, l'applicazione client sarebbe in grado di capire dove si trova il servizio Web e come può essere utilizzato.
Esempio di servizio Web
Di seguito viene fornito un esempio di servizi Web di un file WSDL.
Gli aspetti importanti da notare sugli esempi di dichiarazione WSDL sopra dei servizi Web sono i seguenti:
- Il parametro message nella definizione WSDL viene utilizzato per definire i diversi elementi di dati per ciascuna operazione eseguita dal servizio web. Quindi negli esempi di servizi web sopra, abbiamo 2 messaggi che possono essere scambiati tra il servizio web e l'applicazione client, uno è "TutorialRequest" e l'altro è l'operazione "TutorialResponse". Il TutorialRequest contiene un elemento chiamato "TutorialID" che è di tipo stringa. Allo stesso modo, l'operazione TutorialResponse contiene un elemento chiamato "TutorialName" che è anche una stringa di tipo. -
- Descrive effettivamente l'operazione che può essere eseguita dal servizio web, che nel nostro caso si chiama Tutorial. Questa operazione può richiedere 2 messaggi; uno è un messaggio di input e l'altro è il messaggio di output. - Questo elemento contiene il protocollo utilizzato. Quindi nel nostro caso, lo stiamo definendo per utilizzare http ( http://schemas.xmlsoap.org/soap/http ). Specifichiamo anche altri dettagli per il corpo dell'operazione, come lo spazio dei nomi e se il messaggio deve essere codificato.
Discuteremo "WDSL" in dettaglio in questo tutorial.
Universal Description, Discovery, and Integration (UDDI)
UDDI è uno standard per descrivere, pubblicare e scoprire i servizi Web forniti da un particolare fornitore di servizi. Fornisce una specifica che aiuta a ospitare le informazioni sui servizi web.
Ora abbiamo discusso nell'argomento precedente su WSDL e su come contiene informazioni su ciò che fa effettivamente il servizio Web. Ma come può un'applicazione client individuare un file WSDL per comprendere le varie operazioni offerte da un servizio web? Quindi UDDI è la risposta a questa domanda e fornisce un repository su cui possono essere ospitati i file WSDL. Quindi l'applicazione client avrà accesso completo all'UDDI, che funge da database contenente tutti i file WSDL.
Proprio come un elenco telefonico ha il nome, l'indirizzo e il numero di telefono di una determinata persona, allo stesso modo il registro UDDI avrà le informazioni rilevanti per il servizio web . In modo che un'applicazione client sappia dove può essere trovata.
Vantaggi dei servizi Web
Capiamo già perché i servizi web siano nati in primo luogo, ovvero fornire una piattaforma che potesse consentire a diverse applicazioni di dialogare tra loro.
Ma diamo un'occhiata all'elenco dei vantaggi dei servizi web per il motivo per cui è importante utilizzare i servizi web.
-
Esposizione della funzionalità aziendale sulla rete : un servizio Web è un'unità di codice gestito che fornisce una sorta di funzionalità alle applicazioni client o agli utenti finali. Questa funzionalità può essere richiamata tramite il protocollo HTTP, il che significa che può essere richiamata anche su Internet. Al giorno d'oggi tutte le applicazioni sono su Internet, il che rende più utile lo scopo dei servizi Web. Ciò significa che il servizio Web può essere ovunque su Internet e fornire le funzionalità necessarie come richiesto.
-
Interoperabilità tra applicazioni : i servizi Web consentono a varie applicazioni di dialogare tra loro e condividere dati e servizi tra di loro. Tutti i tipi di applicazioni possono dialogare tra loro. Quindi, invece di scrivere codice specifico che può essere compreso solo da applicazioni specifiche, ora puoi scrivere codice generico che può essere compreso da tutte le applicazioni
-
Un protocollo standardizzato comprensibile a tutti : i servizi Web utilizzano un protocollo industriale standardizzato per la comunicazione. Tutti e quattro i livelli (trasporto del servizio, messaggistica XML, descrizione del servizio e livelli di individuazione del servizio) utilizzano protocolli ben definiti nello stack di protocolli dei servizi Web.
-
Riduzione dei costi di comunicazione : i servizi Web utilizzano SOAP su protocollo HTTP, quindi è possibile utilizzare Internet a basso costo esistente per implementare i servizi Web.
Architettura dei servizi Web
Ogni framework necessita di una sorta di architettura per assicurarsi che l'intero framework funzioni come desiderato, allo stesso modo, nei servizi web. L' architettura dei servizi Web è composta da tre ruoli distinti, come indicato di seguito:
- Provider : il provider crea il servizio Web e lo rende disponibile all'applicazione client che desidera utilizzarlo.
- Richiedente : un richiedente non è altro che l'applicazione client che deve contattare un servizio Web. L'applicazione client può essere un'applicazione .Net, Java o qualsiasi altra applicazione basata su un linguaggio che cerca qualche tipo di funzionalità tramite un servizio web.
- Broker - Il broker non è altro che l'applicazione che fornisce l'accesso all'UDDI. L'UDDI, come discusso nell'argomento precedente, consente all'applicazione client di individuare il servizio web.
Il diagramma seguente mostra come interagiscono tra loro il fornitore del servizio, il richiedente del servizio e il registro del servizio.

- Pubblica : un provider informa il broker (registro del servizio) sull'esistenza del servizio Web utilizzando l'interfaccia di pubblicazione del broker per rendere il servizio accessibile ai client
- Trova : il richiedente consulta il broker per individuare un servizio Web pubblicato
- Bind : con le informazioni ottenute dal broker (registro del servizio) sul servizio Web, il richiedente è in grado di associare o richiamare il servizio Web.
Caratteristiche del servizio web
I servizi Web hanno le seguenti caratteristiche comportamentali speciali:
-
Sono basati su XML : i servizi Web utilizzano XML per rappresentare i dati ai livelli di rappresentazione e trasporto dei dati. L'utilizzo di XML elimina qualsiasi tipo di dipendenza dalla rete, dal sistema operativo o dalla piattaforma poiché XML è il linguaggio comune compreso da tutti.
-
Loosely Coupled - Loosely coupled significa che il client e il servizio web non sono vincolati l'uno all'altro, il che significa che anche se il servizio web cambia nel tempo, non dovrebbe cambiare il modo in cui il client chiama il servizio web. L'adozione di un'architettura debolmente accoppiata tende a rendere i sistemi software più gestibili e consente un'integrazione più semplice tra sistemi diversi.
-
Funzionalità sincrona o asincrona : la sincronizzazione si riferisce al collegamento del client all'esecuzione del servizio. Nelle operazioni sincrone, il client attenderà effettivamente che il servizio Web completi un'operazione. Un esempio di ciò è probabilmente uno scenario in cui viene eseguita un'operazione di lettura e scrittura del database. Se i dati vengono letti da un database e successivamente scritti in un altro, le operazioni devono essere eseguite in modo sequenziale. Le operazioni asincrone consentono a un client di richiamare un servizio e quindi eseguire altre funzioni in parallelo. Questa è una delle tecniche comuni e probabilmente la più preferita per garantire che altri servizi non vengano interrotti quando viene eseguita una particolare operazione.
-
Capacità di supportare RPC (Remote Procedure Calls) : i servizi Web consentono ai client di richiamare procedure, funzioni e metodi su oggetti remoti utilizzando un protocollo basato su XML. Le procedure remote espongono i parametri di input e output che un servizio Web deve supportare.
-
Supporta lo scambio di documenti - Uno dei vantaggi principali di XML è il suo modo generico di rappresentare non solo dati ma anche documenti complessi. Questi documenti possono essere semplici come rappresentare un indirizzo corrente, oppure possono essere complessi come rappresentare un intero libro.