Cosa sono i servizi Web? ArchiTettura, Tipi, Esempio
โก Riepilogo intelligente
I servizi web forniscono un mezzo standardizzato per la comunicazione tra applicazioni client e server sul World Wide Web. Questa risorsa illustra il funzionamento dei servizi web, le loro tipologie SOAP e RESTful, i componenti WSDL e UDDI, i ruoli architetturali e le caratteristiche principali.
Che cos'รจ il servizio Web?
servizio Web รจ un mezzo standardizzato per propagare la comunicazione tra le applicazioni client e server sul WWW (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 ricercati in rete e richiamati di conseguenza.
- Quando richiamato, il servizio web sarร in grado di fornire la funzionalitร al client, che invoca quel servizio web.
Come funzionano i servizi web?
Il diagramma sopra mostra una visione molto semplicistica di come funzionerebbe effettivamente un servizio web. Il client invocherebbe una serie di chiamate al servizio web tramite richieste a un server che ospiterebbe il servizio web vero e proprio.
Queste richieste vengono effettuate tramite quelle che sono note come chiamate di procedura remota. Le chiamate di procedura remota (RPC) sono chiamate effettuate a metodi ospitati dal servizio web pertinente.
Come esempio, Amazon fornisce un servizio web che fornisce prezzi per prodotti venduti online tramite amazon.com. Il front end o strato di presentazione puรฒ essere in .Net o Javama entrambi i linguaggi di programmazione avrebbero la capacitร di comunicare con il servizio web.
Il componente principale della progettazione di un servizio Web sono i dati che vengono trasferiti tra il client e il server, ovvero XML. XML (Extensible Markup Language) รจ l'equivalente dell'HTML e un linguaggio intermedio di facile comprensione, comprensibile a molti linguaggi di programmazione.
Quindi, quando le applicazioni comunicano tra loro, lo fanno in XML. Questo fornisce una piattaforma comune per la comunicazione tra applicazioni sviluppate in diversi linguaggi di programmazione.
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 messaggi 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 JavaAlcuni lavorano in .Net, altri in Angular JS, Node.js, ecc.
Nella maggior parte dei casi, queste applicazioni eterogenee necessitano di una qualche forma di comunicazione tra di loro. Poichรฉ sono sviluppate utilizzando linguaggi di programmazione diversi, diventa davvero difficile garantire una comunicazione efficace tra le applicazioni.
ร qui che entrano in gioco i servizi Web. I servizi Web forniscono una piattaforma comune che consente piรน applicazioni basate su vari elementi linguaggi di programmazione avere la capacitร di comunicare tra loro.
Tipi di servizi web
Esistono principalmente due tipi di servizi web:
- Servizi web SOAP.
- Servizi web RESTful.
Affinchรฉ un servizio web sia pienamente funzionante, รจ necessario che siano presenti alcuni componenti. Questi componenti devono essere presenti indipendentemente dal linguaggio di programmazione utilizzato per realizzare il servizio web. Analizziamoli piรน nel dettaglio.
SOAP (protocollo di accesso semplice agli oggetti)
SOAP รจ un protocollo di messaggistica indipendente dal trasporto. Si basa sul trasferimento di dati XML sotto forma di messaggi SOAP. Ogni messaggio contiene un documento XML. Solo la struttura del documento XML segue uno schema specifico, non il contenuto. Il vantaggio principale dei servizi web e di SOAP รจ che tutto viene trasmesso tramite HTTP, il protocollo web standard.
Ecco in cosa consiste un messaggio SOAP:
- Ogni documento SOAP deve avere un elemento radice noto come elemento. L'elemento root รจ il primo elemento in un documento XML.
- La โbustaโ รจ a sua volta divisa in 2 parti. Il primo รจ l'intestazione e il successivo รจ il corpo.
- L'intestazione contiene i dati di routing, ovvero le informazioni che indicano al documento XML a quale client deve essere inviato.
- Il corpo conterrร il messaggio vero e proprio.
Lo schema seguente mostra un semplice esempio di comunicazione tramite SOAP.
Discuteremo SOAP in dettaglio in questo lezione.
WSDL (Servizi Web DescriptLinguaggio ionico)
Un servizio web non puรฒ essere utilizzato se non รจ possibile trovarlo. Il client che richiama il servizio web deve 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. Questo viene fatto con l'aiuto del WSDL, noto come Web Services. DescriptLinguaggio WSDL. Il file WSDL รจ un file basato su XML che, in sostanza, indica all'applicazione client cosa fa il servizio web. Utilizzando il documento WSDL, l'applicazione client รจ 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.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
Gli aspetti importanti da notare sugli esempi di dichiarazioni WSDL dei servizi web sopra riportati sono i seguenti:
- โ Il parametro message nella definizione WSDL viene utilizzato per definire i diversi elementi dati per ogni operazione eseguita dal servizio web. Quindi, nell'esempio di servizi web sopra riportato, abbiamo 2 messaggi che possono essere scambiati tra il servizio web e l'applicazione client: uno รจ l'operazione "TutorialRequest" e l'altro รจ l'operazione "TutorialResponse". L'operazione TutorialRequest contiene un elemento chiamato "TutorialID" di tipo stringa. Analogamente, l'operazione TutorialResponse contiene un elemento chiamato "TutorialName" che รจ anch'esso di tipo stringa.
- โ Questa descrizione illustra l'operazione che puรฒ essere eseguita dal servizio web, che nel nostro caso si chiama Tutorial. Tale operazione puรฒ ricevere due messaggi: un messaggio di input e un messaggio di output.
- โ Questo elemento contiene il protocollo utilizzato. Nel nostro caso, definiamo l'utilizzo di HTTP (http://schemas.xmlsoap.org/soap/http). Specifichiamo inoltre altri dettagli per il corpo dell'operazione, come il namespace e se il messaggio deve essere codificato.
In questo articolo discuteremo in dettaglio il โWSDLโ. lezione.
universale Descriptioni, scoperta e integrazione (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.
Nell'argomento precedente abbiamo ora discusso del WSDL e di come contenga informazioni su ciรฒ che effettivamente fa 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.
Cosรฌ come un elenco telefonico contiene il nome, l'indirizzo e il numero di telefono di una determinata persona, allo stesso modo il registro UDDI conterrร le informazioni pertinenti per il servizio web, in modo che un'applicazione client sappia dove trovarla.
Vantaggi dei servizi Web
Sappiamo giร perchรฉ sono nati i servizi web: per fornire una piattaforma che consentisse a diverse applicazioni di comunicare tra loro. Ma vediamo ora l'elenco dei vantaggi dei servizi web e perchรฉ รจ importante utilizzarli.
- Esporre le funzionalitร aziendali sulla rete Un servizio web รจ un'unitร di codice gestito che fornisce una qualche 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 tramite Internet. Oggigiorno tutte le applicazioni si trovano su Internet, il che rende lo scopo dei servizi web ancora piรน utile. Ciรฒ significa che un servizio web puรฒ essere situato ovunque su Internet e fornire la funzionalitร necessaria a seconda delle esigenze.
- Interoperabilitร tra le applicazioni โ I servizi web consentono a diverse applicazioni di comunicare tra loro e di condividere dati e servizi. Tutti i tipi di applicazioni possono interagire tra loro. Quindi, invece di scrivere codice specifico comprensibile solo da determinate applicazioni, ora รจ possibile scrivere codice generico comprensibile a tutte le applicazioni.
- Un protocollo standardizzato comprensibile a tutti โ I servizi Web utilizzano un protocollo standardizzato del settore per la comunicazione. Tutti e quattro i livelli (Trasporto del servizio, Messaggistica XML, Servizio DescriptI livelli ion e Service Discovery utilizzano protocolli ben definiti nello stack di protocolli dei servizi web.
- Riduzione dei costi di comunicazione โ I servizi Web utilizzano il protocollo SOAP su HTTP, quindi puoi utilizzare la tua connessione Internet a basso costo esistente per implementare i servizi Web.
Servizi web Architectura
Ogni framework necessita di una sorta di architettura per garantire che l'intero framework funzioni come desiderato. Allo stesso modo, nei servizi web, l' Servizi web Architectura รจ costituito da tre ruoli distinti, come indicato di seguito:
- Provider โ Il fornitore crea il servizio web e lo rende disponibile alle applicazioni client che desiderano utilizzarlo.
- Richiedente โ Un richiedente non รจ altro che l'applicazione client che deve contattare un servizio web. L'applicazione client puรฒ essere un file .Net, Javao qualsiasi altra applicazione basata su un linguaggio che cerchi 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 illustra come interagiscono tra loro il fornitore del servizio, il richiedente del servizio e il registro dei servizi.
- Pubblica โ Un fornitore informa il broker (registro dei servizi) dell'esistenza del servizio web utilizzando l'interfaccia di pubblicazione del broker per rendere il servizio accessibile ai clienti.
- Trovate โ Il richiedente consulta il broker per individuare un servizio web pubblicato.
- legante โ Grazie alle informazioni ottenute dal broker (registro dei servizi) relative al servizio web, il richiedente รจ in grado di associare, o invocare, il servizio web.
Caratteristiche del servizio Web
I servizi Web presentano le seguenti caratteristiche comportamentali particolari:
- Sono basati su XML โ I servizi web utilizzano XML per rappresentare i dati a livello di rappresentazione e trasporto dati. L'utilizzo di XML elimina qualsiasi dipendenza da reti, sistemi operativi o piattaforme, poichรฉ XML รจ un linguaggio comune compreso da tutti.
- Debolmente accoppiato โ 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 loosely coupled tende a rendere i sistemi software piรน gestibili e consente un'integrazione piรน semplice tra sistemi diversi.
- Syncfunzionalitร asincrona o sincronizzata - Synchronicity si riferisce al legame 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 chiamate di procedura remota (RPC) โ 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 parametri di input e output che un servizio Web deve supportare.
- Supporta lo scambio di documenti โ Uno dei principali vantaggi 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, o possono essere complessi come rappresentare un intero libro.




