Caratteristiche e differenza tra REST e SOAP in informatica

Caratteristiche e differenza tra REST e SOAP in informatica

REST vs SOAP

In questo articolo REST vs SOAP si analizzano le differenze che le due tipologie di servizi hanno, per poter identificare meglio i vantaggi e svantaggi delle due metodologie.

Caratteristiche e differenza tra REST e SOAP in informatica

Un servizio web basato sulla metodologia REST, ha come punto di forza l’utilizzo di un interfaccia che è diffusamente conosciuta: URI. Qualsiasi client e server che supporta invocazioni HTTP, può facilmente invocare un servizio REST.

In un servizio SOAP le richieste vengono descritte da un linguaggio chiamato WSDL, quindi questo comporta che per poter usare al meglio un servizio SOAP, si abbia la competenza di saper leggere un file XML che descrive tutte le informazioni necessarie per invocare le operazioni.
Avere una rigida descrizione del servizio, è una caratteristica che in alcuni scenari può essere un vantaggio, come ad esempio la comunicazione di scambio nei grandi Data Center dove le informazioni, per motivi di sicurezza devono essere tipizzate.

Un servizio SOAP, indirizza le richieste sempre verso un unico indirizzo chiamato “endpoint” e all’interno del messaggio vengono definite le operazioni che vengono parsate dall’application server ed invocate insieme ai dati sempre dichiarati all’interno del messaggio.

Tutte le richieste vengono effetuate sempre con il metodo POST e questo porta ad un maggior traffico verso l’end-point in quanto in tutte le richieste viene sempre inviato un documento XML.
Nei servizi REST le richieste, come detto precendentemente, vengono indirizzate verso URI differenti che si mappano sulle risorse. Il consumo di banda che porta un servizio REST è ridotto al minimo, infatti viene inviato insieme alla richiesta un documento XML o altre informazioni oltre all’URI solo quando bisogna creare o aggiornare lo stato di una risorsa.

La composizione dei messaggi di un servizio SOAP, sono complessi e includono informazioni che non possono essere salvate poichè non riusabili, questo non permette l’utilizzo di proxy e ne compromette la scalabilità. L’aspetto più interessante tra le due tipologie di servizi riguarda la sicurezza. Di fatto, nella comunicazione di un servizio REST, gli apparati di scurezza come il firewall sono in grado di discernerne l’intento per ciascun messaggio, analizzando il comando HTTP utilizzato nella richiesta. Ad esempio, una richiesta GET può sempre essere considerata sicura, in quanto non può, per definizione, modificare nessun dato.

Dall’altra parte, una tipica richiesta SOAP, utilizza il metodo POST per comunicare con un servizio e gli apparati senza un’analisi completa dei messaggi, controllandone il contenuto, non si è in grado di predire se è una richiesta che può modificare le informazioni e quindi attuare gli opportuni meccanismi di controllo.
Per la parte di autenticazione e autorizzazione, SOAP utilizza una sua metodologia di autenticazione inserita nella specifica del protocollo di comunicazione demandando tutto in fase di progettazione del servizio.

La metodologia REST, invece, si basa sul fatto che i Web server supportano già questo tipo di operazioni tramite l’uso di standard come lo scambio di certificati e comuni sistemi di gestione dell’identità (come ad esempio un LDAP server).
Questo disaccoppiamento a volte può aiutare lo sviluppatore del servizio a demandare la problematica dell’autenticazione ad applicazioni esterne che sono facilmente integrabili con l’applicazione RESTful. Altre caratteristiche che differenziano i due tipi di servizio, sono la complessità che si incontra nella costruzione delle applicazioni lato client e lato server. Effettuare chiamate HTTP ad un servizio è molto semplice e non richiede l’utilizzo di librerie complesse per creare e leggere pacchetti di messaggi come avviene in un servizio SOAP.

Dal lato server, la complessità si incontra nell’esposizione delle API del servizio, in quanto la gestione del messaggio di una richiesta SOAP, avviene mediante librerie del server, mentre in un servizio REST bisogna gestire la serializzazione del file XML in uscita dalle richieste. Un punto critico è l’esposizione del servizio all’utente che dovrà utilizzarlo, infatti nel SOAP viene messa a disposizione il WSDL, che permette di serializzare in un formato standard le API del servizio. Nei servizi REST viene, ad oggi, utilizzata una pagina in HTML human-readable e quindi è impossibile automatizzare la creazione di richieste da parte di un calcolatore fornendo solo la sua descrizione.

Caratteristiche e differenza tra REST e SOAP
REST vs SOAP

Queste differenze fanno intuire che un servizio RESTful non permette, la sostituzione di un servizio creato su SOAP, ma ne è un’alternativa,ogni tipologia ha vantaggi e svantaggi nella sua applicazione. L’uso di REST o di SOAP è sicuramente determinato dal contesto in cui si vuole utilizzarlo.

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 *