In cosa consiste esattamente il modello client e server alla base delle reti informatiche per anni? E perché ancora oggi ha un senso in determinati contesti?

Le parole client e server sono venute dopo, ma la struttura teorica del modello si può far risalire alla fine degli anni 60. Era il tempo dell’agenzia governativa Arpa e del progetto di una “rete intergalattica di computer”, che anni dopo sarebbe diventata Internet.

Joseph Carl Robnett Licklider, uno dei padri di Internet e direttore in Arpa, aveva una sola missione: trasformare il computer da elaboratore solitario in un nodo di una rete collaborativa capace di distribuire il calcolo su più elaboratori. E, già che c’eravamo, attraverso la stessa rete si poteva pensare di trasferire qualsiasi informazione, ovvero Internet.

Così, i primi termini utilizzati nei protocolli di definizione furono server-host e user-host. Questa architettura prevedeva il “remote job entry”, in cui un elaboratore invia una richiesta di “lavoro” a un mainframe, ne attende lo svolgimento e ne riceve i risultati del calcolo.

Inizialmente, quindi, il modello era riferito a una architettura hardware. Una rete di computer (host) connessi tra loro e a un elaboratore centrale (server). Negli anni del boom del software, l’architettura si è traslata al contesto applicativo, introducendo i concetti di client e server come li conosciamo oggi.

Non a caso, visto il contesto in cui si è sviluppato il concetto, l’esempio tipico di un’architettura client/server è il trasferimento di file e informazioni tra due computer. Attraverso i protocolli http e https si inviano le pagine web da un server a un dispositivo (e viceversa). Ancora, il trasferimento via Ftp è un modello client server, così come il Telnet, per il controllo dei computer da remoto (condivi il tuo desktop che ti risolvo il problema).

Le differenze tra client e server

Client e server, dunque, sono i due “luoghi” in cui uno o più programmi sono in esecuzione. Al contrario del modello server-host e user-host, il modello non richiede caratteristiche differenti per gli elaboratori utilizzati. La differenza tra questi due luoghi, quindi, non riguarda l’hardware coinvolto, ma esclusivamente l’attività che viene richiesta.

Un server è in grado di gestire contemporaneamente una o più risorse, mentre i client richiedono un accesso per volta ai server. Teoricamente, un processo server può diventare client e viceversa.

La principale differenza tra server e client è che il primo mette a disposizione un servizio (applicativo) utilizzabile contemporaneamente da uno o più client. Diventando, così, il fornitore del servizio mentre il client è l’entità che lo utilizza.

Evidentemente, il modello non potrebbe esistere senza un’architettura di rete. Il processo server è ospitato su un computer host, in ascolto su una determinata porta in attesa di connessioni da parte dei client. L’interazione non è a rischio perché il server viene individuato univocamente dal suo Ip in rete, e il servizio richiesto dalla specifica porta utilizzata. L’accoppiata IP-PORTA si definisce socket.

LEGGI ANCHE: COSA E’ UNA RETE INFORMATICA E QUALI SONO I VARI TIPI

Cos’è client

A questo punto, le differenze sono abbastanza evidenti. Praticamente, un client può essere un qualsiasi dispositivo digitale connesso a una rete informatica: un computer desktop o portatile, uno smartphone, un tablet, un dispositivo IoT.

Il dispositivo ha generalmente un Ip dinamico, il server non ha bisogno di identificarlo, a lui basta sapere il processo da svolgere, e non comunica con gli altri dispositivi.

Cos’è server

Un server è ospitato in un computer, spesso con caratteristiche da…. server, appunto. La sua architettura è pensata per processare velocemente le istanze richieste dai client. Deve essere ottimizzato per dialogare al meglio in una rete informatica – I/O ottimizzati – e deve disporre di una memoria (buffer) ad accesso veloce e capiente.

In fondo, dal punto di vista dell’hardware, oggi non ci sono troppe differenze tra un dispositivo che funge da server e uno che funge da client. Allo stesso tempo, un dispositivo client potrebbe non essere attrezzato per fare il server.

Come funziona il modello client/server

Vediamo ora lo schema di funzionamento di un modello client/server:

  • Il client manda una richiesta al server;
  • Il server (perennemente in attesa) riceve la richiesta;
  • Esegue il servizio richiesto, e ne può eseguire diversi nello stesso momento;
  • Manda una risposta ed eventualmente dei dati al client;
  • Il client riceve la risposta e gli eventuali dati.

Queste attività avvengono in maniera trasparente per entrambi i processi. Inoltre, il meccanismo di comunicazione è utilizzato sia se entrambi sono in esecuzione sullo stesso calcolatore – è possibile – sia su calcolatori diversi.

Le modalità di comunicazione possono essere di due tipi. Nella comunicazione Unicast il server dialoga con un solo client per volta, accettando una richiesta di connessione per volta. La comunicazione Multicast, invece, prevede che al server possano essere connessi e comunicare più client contemporaneamente.

La trasmissione in streaming dei broadcaster è un tipico esempio di comunicazione Multicast.

Dagli esempi fatti si evince che l’architettura client server non è per niente caduta in disuso, anzi. I vantaggi di questo modello riguardano la possibilità di avere risorse centralizzate, come un database unico. Certamente, si ha la garanzia di una migliore sicurezza poiché si può risalire puntualmente ai percorsi di rete e le porte aperte del server sono note. Infine, la scalabilità del modello è immediata e l’amministrazione dell’architettura è semplificata poiché (la maggior parte del) carico di lavoro è concentrato sul server.

Client e Server: cosa sono e quali le differenze tra i due ultima modifica: 2022-03-11T15:16:18+01:00 da Valerio Mariani

LEAVE A REPLY

Please enter your comment!
Please enter your name here