Oltre il sistema client-server: multi-tier, cache ed efficenza sempre maggiore


Il modello client server ha dominato per anni sul mercato dei siti e dei servizi web, ed è ancora oggi uno dei modelli più sfruttati dal punto di vista tecnologico. Ogni servizio di hosting sfrutta, di fatto, questo sistema detto client-server, che fa della semplicità il suo punto di forza, seppur con qualche necessaria specifica da fare nel momento in cui se ne parla in modo approfondito.

Che cos’è il modello client-server

Questo modello è alla base del funzionamento di quasi tutti i servizi internet, e si basa su una schematizzazione molto semplice: al centro dello schema troviamo un server, cioè una macchina connessa ad internet che eroga dei servizi su richiesta (ad esempio la generazione di pagine HTML per un sito o di una risposta JSON o XML nel caso di web service). Le richieste, poi, vengono formulate da vari client sottostanti, che effettuano le richieste in momenti diversi ed in modo indipendente gli uni dagli altri: sta al server gestire il carico di lavoro ed evitare così di andare down.

Lo schema riportato qui sopra esplica quanto detto a parole: i quattro computer portatili qui raffigurati sono i client che fanno le richieste via browser, mentre il server centrale risponde alle varie richieste (request) HTTPS. Andando a vedere ancora più nel dettaglio, il modello client server si basa su un modello a “domanda e risposta” ovvero request e response. Di fatto, il client invia delle richieste o request (esempio: fammi vedere google.it), mentre il server riceve la chiamata, la elabora e restituisce (response) una risposta nel formato adeguato (HTML, XML, JSON a seconda dei casi).

 

Di Lubaochuan – Opera propria, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=34946450

Evoluzione del modello client-server

Il modello di fondo rimane valido ma, di suo, rischia di essere semplicistico rispetto alla realtà tecnologica in gioco: ad esempio, tanto per cominciare, il client server non considera la possibilità che il server possa essere multi-tier, ovvero multistrato. Gli “strati” servono ad ottimizzare la gestione delle chiamate, e a gestire più chiamate contemporaneamente senza “ingolfarsi”, il che si tradurrebbe ad esempio in un sito lento o addirittura down. Questa è una prima specifica che è implicita nei server più moderni, e che si traduce in un’efficenza superiore a quella che poteva essere fornita dai server di 5 o 10 anni fa. In secondo luogo, va considerato l’uso di HTTPS, che ormai supporta protocolli come HTTP/2 in grado di parallelizzare le connessioni su quasi ogni browser moderno, e togliendo, di fatto, la necessità di fare uso del minify dei file CSS e JS più pesanti.

Va anche considerato, da un punto di vista architetturale, che i server centralizzati ormai non esistono quasi più: a meno che non si parli di un servizio di hosting dedicato, infatti, in genere i server sono hosting condivisi, VPS, server in cloud che vivono di specificità molto più complesse di quanto suggerisca quel semplice schema visto all’inizio. I server possiedono infatti una cache per ottimizzare i tempi di risposta, ottimizzano e velocizzano gli accessi al database, fanno uso di tecnologie SSD e via dicendo.

Quando si parla di client-server, quindi, andrebbe tenuto conto di tutte queste cose per capire dove è arrivata la tecnologia fino ad oggi e come, di fatto, possa evolvere nel prossimo futuro.

SMS Marketing? Inviare SMS promozionali a basso costo Scopri SMSHosting – Oppure usa il codice PROMO: PRT96919