Il modello client-server
Il modello client-server è il paradigma fondamentale delle applicazioni di rete. In questo schema un processo — il client — invia richieste, mentre un altro processo — il server — resta in ascolto e risponde fornendo servizi o risorse.
Client e server non sono macchine fisiche, ma processi in esecuzione. Lo stesso computer può eseguire contemporaneamente un browser (client) e un server web locale. La distinzione è logica, non hardware.
Ruolo del client
Ruolo del server
Un server HTTP resta in ascolto sulla porta 80 (o 443 per HTTPS). Quando digiti un URL nel browser, il browser (client) apre una connessione TCP verso quell’indirizzo e porta, invia una richiesta HTTP e attende la risposta con il contenuto della pagina.
Evoluzione delle architetture applicative
Le architetture software si sono evolute nel tempo per rispondere a esigenze crescenti di scalabilità, manutenibilità e sicurezza.
Tutto — interfaccia, logica e dati — risiede sullo stesso sistema. Semplice ma poco scalabile. Oggi poco diffusa.
Client e server distinti. Il client gestisce presentazione e logica, il server i dati. Tipica dei primi sistemi di rete.
Separazione in livelli: presentazione, logica applicativa, dati. Migliora gestione, sicurezza e scalabilità.
Microservizi e API REST
Nelle applicazioni moderne Web e cloud si utilizzano architetture multilayer basate su microservizi. Invece di costruire un unico programma monolitico, l’applicazione è suddivisa in servizi piccoli, indipendenti e specializzati.
Ogni microservizio:
- svolge una funzione specifica (es. autenticazione, pagamenti, catalogo prodotti);
- comunica con gli altri tramite API REST;
- può agire da client o server a seconda del contesto;
- può essere sviluppato, aggiornato e scalato in modo indipendente.
Cos’è un’API REST?
Un’API REST (Representational State Transfer) è uno stile architetturale per la progettazione di servizi web che permette a diverse applicazioni di comunicare tra loro su rete, seguendo un insieme di regole per rendere le interazioni semplici, scalabili e standardizzate.
Monolitica vs Microservizi — confronto
- Il modello client-server descrive processi, non macchine fisiche
- Il client è attivo (inizia la comunicazione), il server è passivo (ascolta e risponde)
- Le architetture multi-tier separano presentazione, logica e dati, migliorando sicurezza e manutenibilità
- I microservizi comunicano tramite API REST: stateless, con metodi HTTP e dati in JSON