REST (REpresentational State Transfer): fondamenti
Pubblicato da Andrea Gumina su 9 Giugno 2008
Roy Thomas Fielding sintetizza in questa presentazione il contenuto della sua tesi di dottorato “Architectural Styles and the Design of Network-based Software Architectures” (con cui, nel 2000, introduceva REST).
La presentazione definisce i concetti architettura software (astrazione degli elementi di run-time di un sistema, durante una delle sue fasi operative) e stile (insieme di vincoli che inducono le qualità e i compromessi di un’architettura) e indica quali vincoli caratterizzano lo stile di architettura denominato REST:
-
mancanza di stato (ha qualità di migliorare la scalabilità, l’affidabilità e la visibilità – circoscrivendo la richiesta – ma ha come compromessi il degrado delle prestazioni – a causa del maggior numero di dati da presentare – e il legame più stretto tra client e server)
-
client-server (separa le competenze e migliora la scalabilità)
-
caching (migliora l’efficienza e la scalabilità ma riduce l’affidabilità – i dati in cache potrebbero non essere aggiornati)
-
interfaccia uniforme (migliora la visibilità, semplifica e disaccoppia ma riduce l’efficienza – a causa della generalizzazione)
-
gerarchia a livelli (introduce l’incapsulamento e l’intermediazione, semplifica i client ma aumenta la latenza)
-
codice on-demand (download ed esecuzione di applet e script: semplifica i client, aumenta le possibilità di estensione ma riduce la visibilità)
Spiega poi in dettaglio il vincolo di “interfaccia uniforme”:
-
tutte le risorse sono identificate da URI
-
i metodi hanno semantica indipendente dalle risorse
-
i messaggi scambiati (rappresentazione delle risorse) sono auto-descrittivi
-
le rappresentazioni indicano lo stato della risorsa, gli eventuali link presenti le transizioni possibili
Elenca infine i benefici di REST:
-
scalabilità
-
semplicità
-
minimo accoppiamento
Vale la pena – lo sto facendo – leggersi la tesi (pubblicata anche come pdf).
—-><—-
Hai trovato questo post interessante? Sottoscrivi il feed completo e partecipa alla discussione
