SOAP: il protocollo di rete spiegato

La comunicazione in reti come Internet è possibile solo seguendo una serie di regole fisse. Per evitare che i vari computer e altri dispositivi abilitati alla rete affondino nel caos, ciascuno di questi aderisce a un protocollo di rete. SOAP è, oltre a REST, uno dei più importanti protocolli su Internet.

Che cos’è SOAP?

La comunicazione su Internet si basa su protocolli quali HTTP, HTTPS, FTP o, a un altro livello, TCP. SOAP è soprattutto importante per i Web service. Si tratta di un’interfaccia attraverso la quale un dispositivo può utilizzare il servizio di un server. I motori di ricerca, gli acquisti online e molti altri servizi su Internet funzionano attraverso tali servizi web e SOAP è uno dei protocolli che lo rendono possibile.

Fatto

In origine, il nome SOAP veniva usato come acronimo di “Simple Object Access Protocol”. Dato che questo nome non si adatta realmente al protocollo (che non è né semplice né orientato esclusivamente agli oggetti), SOAP viene ora usato come nome vero e proprio.

SOAP è in uso dagli anni ’90 per consentire la comunicazione tra un client, ad esempio il browser Internet, e i servizi di un server. Affinché essa funzioni, il client deve inviare le richieste all’API. L’aspetto di queste richieste è regolato dal framework SOAP. Questo insieme di regole consente di archiviare i dati specifici di un’applicazione, il che rappresenta un grande vantaggio di SOAP, perché consente ai Web service di mettere a disposizione diverse applicazioni. SOAP definisce solo le regole di base in modo che le applicazioni non abbiano tutte la stessa sintassi per essere utilizzate come Web service.

N.B.

Lo sviluppatore di software Dave Wiener ha creato SOAP in collaborazione con un team Microsoft per creare un protocollo performante per Internet. Grande importanza è stata attribuita al fatto che SOAP sia compatibile con gli standard W3C, il che rende SOAP raccomandato da W3C stesso.

Web service basati su SOAP – le aree di applicazione del protocollo

SOAP entra in gioco quando un sistema deve accedere a un altro sistema in modo ordinato e limitato. Invece di dare al client richiedente l’accesso completo al server, un protocollo come SOAP permette di limitarne l’accesso alle funzioni necessarie. L’architettura di SOAP consente inoltre la cooperazione tra sistemi molto diversi: il protocollo fornisce un quadro di riferimento nel quale è possibile integrare l’applicazione specifica.

Molti Web service sono basati su SOAP come, ad esempio, Amazon ed eBay, che lavorano (parzialmente) con questo protocollo di rete.

La struttura di SOAP: funzionalità del protocollo

SOAP si basa sul set di informazioni XML. Questo, anch’esso una raccomandazione del W3C, è una raccolta di unità informative necessarie per garantire la formazione corretta (cioè una struttura raccomandata) di un documento XML. SOAP lo assimila nella struttura dei suoi messaggi, rendendola, in linea di principio, praticamente identica a quella di un documento XML.

Nella maggior parte dei casi, SOAP è integrato anche nell’HTTP. Il trasporto funziona quindi utilizzando il popolare protocollo che viene integrato nella sua struttura. Nella pratica, un messaggio HTTP con una richiesta SOAP si presenta in questo modo:

POST /example HTTP/1.1
Host: example.org
Content-Type: text/xml; charset=utf-8
…
<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
SOAP-ENV:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
...
    <SOAP-ENV:Header>
        ...
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
        ...
    </SOAP-ENV:Body>
</SOAP_ENV:Envelope>

In questo esempio, la richiesta inizia con un’intestazione HTTP. Segue la cosiddetta SOAP Envelope, che include il contenuto effettivo del messaggio, proprio come la busta di una lettera. Gli elementi di base di SOAP sono quindi l’Header e il Body.

  • Header: l’Header della richiesta SOAP è facoltativo e contiene metadati, come la crittografia utilizzata.
  • Body: il Body, ovvero il corpo del messaggio, contiene i dati effettivi.

I termini usati nel Body non hanno nulla a che fare con SOAP in sé, ma sono completamente dipendenti dall’applicazione.

Il protocollo viene spesso utilizzato in combinazione con il Web Services Description Language (WSDL), ovvero un linguaggio descrittivo specifico dei servizi web, che a sua volta è indipendente dalla piattaforma. Un client può utilizzare questo linguaggio per determinare i servizi che un Web service offre. Dal file WSDL, il client stabilisce quali opzioni ha per effettuare una richiesta SOAP. WSDL e SOAP insieme consentono così a due sistemi diversi di comunicare tra loro senza adattamenti preliminari.

SOAP vs REST

SOAP e REST (che, in realtà, è un’architettura e non un protocollo) vengono entrambi utilizzati per i Web service, ma affrontano il compito in modo diverso. Mentre SOAP è un po’ più datato, REST (o RESTful Webservices) ha recuperato enormemente e attualmente fornisce circa il 70% dei servizi web su Internet.

Entrambi offrono vantaggi diversi: REST, ad esempio, è considerato relativamente semplice, non funziona solo con XML ed è più veloce e leggero rispetto a SOAP. La libertà offerta da REST in relazione all’XML (spesso viene utilizzato JSON) è garantita da SOAP nella selezione del protocollo. L’HTTP è senz’altro la scelta più comune, ma in teoria SOAP funziona anche in combinazione con FTP, SMTP o altri protocolli.

SOAP ha inoltre un grande vantaggio in termini di sicurezza: l’estensione WS-Security (specifica per gli aspetti di sicurezza relativi ai Web service) è integrata nel protocollo di rete. Anche la gestione degli errori è migliore in SOAP, perché integra direttamente una funzione per la ripetizione delle richieste.

In sintesi

Sia SOAP che REST presentano vantaggi e svantaggi; non si può dire che una soluzione sia generalmente migliore dell’altra. Per via della sua semplicità, tuttavia, la maggior parte degli sviluppatori utilizza REST. In definitiva, la scelta dipende dal linguaggio di programmazione utilizzato e dal contesto in cui si desidera usare il protocollo.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top