Web services e tecnologia SOAP e REST

Argomento piuttosto complesso da affrontare in poche righe, che sia un articolo o una pagina di libro. Proviamo a capire cosa sono i web service e le tecnologie che consentono la loro realizzazione.

Web Services

Sui banchi di scuola siamo abituati a studiare applicazioni relativamente semplici che girano spesso unicamente sul nostro pc da lavoro. Interfaccia grafica, dati e intelligenza, tutta racchiusa in un solo eseguibile. Del resto siamo analogamente abituati a percepire come software solo quello che ha una interfaccia con cui un utente può interagire, cliccare, inserire dati ecc. I web services stravolgono questo concetto. Un web service non è detto risieda su un solo server, ma probabilmente ha componenti differenti dislocate su diversi server e non è neanche scontato che abbia un'interfaccia grafica attraverso la classica pagina HTML. Non è neanche detto che sia realizzato con un solo linguaggio di programmazione o una solo tecnologia: un web service per sua natura può dialogare con più elementi, script, software, web server per trovare una sintesi finale. Secondo il W3C è un sistema software progettato per supportare l'interoperabilità tra diversi elaboratori su una stessa rete oppure in un contesto distribuito.

Le tecnologie REST e SOAP

REST e SOAP sono due tecniche differenti per la trasmissione dati sul web. Entrambi definiscono come costruire del le API, application programming interfaces (APIs), che permettono ai dati di essere scambiati tra diverse applicazioni web.

 

Representational state transfer (REST) è prima di tutto un insieme di principi architetturali. Simple object access protocol (SOAP ) è un protocollo ufficiale gestito e promosso dal consorzio W3C, quello che realizza HTML e CSS per intenderci. In soldoni la differenza tra i due è che SOAP è un protocollo, un insieme di regole stringenti su come realizzare un web service mentre REST non lo è. Una API può essere realizzata tipicamente con uno dei due approcci a seconda della complessità e delle necessità del software. Vediamoli nel dettaglio.

 

Da-> http://www.pippo.it/articolo.php?id=1234

 

SOAP vs. REST

Molti sistemi di vecchio stampo aziendali continuano ad usare SOAP mentre REST sta entrando tra le preferenze di progettisti e programmatori per la rapidità di sviluppo negli scenari web. REST è, del resto, un set di linee guida che poi possono essere gestite e sviluppate in molte salse, con flessibilità e adattabilità ai singoli contesti piuttosto che le procedure con scambi di file XML di SOAP.
REST è, per tanto, leggero, pronto per le esigenze anche di domotica e IoT dove i dispositivi sono piccoli e con scarsa capacità di calcolo. SOAP di contro è robusto e sicuro di default, caratteristica desiderata dagli scopi professionali/aziendali.
Certo è più complesso da sviluppare e gestire. Molte tecnologie e web service rilasciano API REST, a cominciare da Spaggiari e Google Maps con tanti servizi collegati, Amazon.
 

Altre tecnologie 

Un po' in disuso magari rispetto alle precedenti tecnologie, ma meritano la menzione. 

RPC: Remote Procedure Call) si riferisce all'attivazione da parte di un programma o di una procedura attivata su un computer o dispositivo diverso da quello sul quale il programma viene eseguito. E' un modo molto trasparente di eseguire una funzionalità da remoto come se fosse invocata localmente (pensoamo alle chiamate di sistema fork già studiate ad esempio)

CORBA: è una versione del mondo RPC con uno strato detto middleware che integra le chiamate remote tra linguaggi diversi.

XML-RPC: è il precursore di SOAP

Web API

TO DO