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.
Indice dei contenuti
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.
REST
Acronimo di REpresentational State Transfer, prevede alla base di un web service, una porzione di programma capace di interpretare gli URL specifici che giungono al server. Specifici perché cambia il modo di concepire gli URL stessi e le risorse/script per come li conosciamo nel PHP standard, dove già conosciamo GET e POST (e PUT e DELTE)e il passaggio di parametri.
Da-> http://www.pippo.it/articolo.php?id=1234
A -> http://www.pippo.it/articolo/id/1234
SOAP
Acronimo di Simple Object Access Protocol, è una tecnologia per applicazioni enterprise. Non è una vera implementazione software ma un protocollo che istruisce sul come realizzare gli applicativi. In soldoni, la struttura risulta complessa ma allo stesso tempo robusta e sicura, fortemente incentrata sullo scambio di dati ed informazioni tra le componenti dell’applicativo con l’uso di XML con specifica sintassi orientata a SOAP.
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
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)
Un po’ in disuso magari rispetto alle precedenti tecnologie, ma meritano la menzione.
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
Ultima modifica 29 Gennaio 2022