Architettura REST, le origini
Chiacchierando tra colleghi mi sono accorto che chi viene dal mondo SOAP e si avvicina ai servizi RESTful commette spesso l’errore di pensare che la principale differenza tra i due approcci sia solo la notazione utilizzata per lo scambio dei dati, XML per i servizi SOAP e JSON per quelli RESTful. Per avere un’idea più corretta sui concetti alla base di questi servizi è necessario fare un salto nel passato e seguire la nascita del Web per come lo conosciamo adesso.
Tutto è iniziato quanto un fisico inglese, Tim Berners-Lee, durante la sua attività al CERN di Ginevra, realizzò un sistema per la condivisione delle informazioni con le comunità scientifiche di tutto il mondo. Tim si occupò di definire i protocolli HTTP e HTML, sviluppo inoltre il primo server e client Web. Era il 20 dicembre 1990 quando fu messa online la sua prima pagina Web, la prima nel mondo.
Superato l’iniziale scetticismo, l’interesse suscitato da questa iniziativa portò negli anni successivi al proliferare dei siti Web, soprattutto negli ambienti accademici e scientifici. All’inizio l’evoluzione del Web avveniva mediante un processo informale: una mailing list utilizzata da tutti gli sviluppatori Web del mondo per discutere e concordate le migliorie da applicare ai protocolli.
Ma il business non tardò a fiutare la valenza del Web e nel 1994 lo stesso Tim Berners-Lee capì che era necessario fare un salto di qualità. Egli fondò quindi il W3C , una organizzazione non governativa con lo scopo di dare più consistenza al processo di evoluzione del Web e renderlo più appetibile agli investimenti privati. Non più una serie di protocolli in continua evoluzione, da inseguire su una mailing list, ma una rete di precisi standard da adottare.
A far parte di questo processo di standardizzazione venne invitato un informatico californiano, Roy Thomas Fielding, che si occupò di URL, HTML e successivamente divenne il revisore capo dell’HTTP. In quegli anni Roy si divideva tra le attività di standardizzazione del Web ed il mondo accademico, per via dei suoi studi come dottorando.
Gli anni passavano e Roy, come racconta lui stesso in un’intervista, non riusciva ad individuare quale potesse essere l’argomento da utilizzare per la sua tesi di dottorato. Incoraggiato da diverse parti, Roy decise di descrivere, in termini formali, il modello di architettura complessiva del Web che aveva elaborato negli anni. Roy infatti aveva formulato un proprio modello di funzionamento del Web che utilizzava nelle sue attività di definizione degli standard per valutare gli impatti che una particolare modifica ad uno standard avrebbe potuto avere sull’intero ecosistema del Web.
Ne venne fuori nel 2000 la definizione di un modello architetturale, definito REST, ovvero Representational State Transfer, con l’auspicio dell’autore che potesse guidare le future evoluzioni del Web. In estrema sintesi questo modello descrive principi e vincoli di una architettura nella quale le applicazioni Web posseggono un proprio stato e lo trasferiscono, sotto forma di una sua rappresentazione, attraverso l’utilizzo di protocolli standard.
Il modello REST, grazie alla sua maturità nonché alla sua formulazione astratta, ovvero non legata a specifiche implementazioni, guida tuttora l’evoluzione del Web e ha ispirato, più di recente, la nascita di un nuovo approccio alla realizzazione dei servizi Web, i cosiddetti servizi RESTful, di cui parlerò nel prossimo post.