Un programma ha architettura client server
quando è diviso in due parti, ciascuna dedicata ad una parte del compito
da svolgere, e le due parti interagiscono fra loro durante il funzionamento.
Una delle caratteristiche principali delle applicazioni client-server
è che le due parti possono essere eseguite su due computer diversi connessi
da una rete.
L’architettura si dice
client-server perchè l’interazione e la suddivisione dei
compiti fra le due parti possono essere normalmente
immaginate come un’entità che fornisce un servizio
(server) e una o più entità che vengono servite
(client), esattamente come potrebbe avvenire ad uno
sportello di ufficio postale nel rapporto fra impiegato
(server) e utenti (client).
Un tipico esempio
informatico di architettura client-server può essere
rappresentato da un sistema di gestione di una base di
dati in cui il server è rappresentato da un processo che
riceve comandi per l’introduzione o l’aggiornamento dei
dati, ed i clienti dalle “interfaccie” di
utente, ovvero programmi grafici con finestre ed altri
dispositivi per facilitare la lettura e l’introduzione
dei dati. I vantaggi di tale architettura sono
molteplici:
- Ciascuna delle due
parti può essere specializzata per il proprio
compito. Nell’esempio sopra il server sarà
ottimizzato per l’accesso veloce ai dischi dove
sono memorizati i dati, mentre i clienti saranno
specializzati per gestire ambienti grafici
opportuni, verificare la correttezza dei dati,
etc..
- Una volta fissato
il “protocollo” ovvero la serie di
comandi a cui il server può rispondere, il
software del cliente può essere realizzato
indipendentemente da quello del server, o anche
potranno essere realizzati clienti differenti per
diversi scopi (ad esempio con maschere in lingue
differenti, etc.) senza modificare il server.
- L’implementazione
del server può cambiare senza che debba cambiare
anche quella dei clienti.