| Il modello Client-Server
Il modello client-server e' un modello di iterazione tra processi, dove vengono suddivisi in client, che richiedono servizi e server, che offrono servizi.
Il processo client e' tipicamente dedicato ad interagire con l'utente finale; esso svolge un ruolo attivo, in quanto genera in maniera autonoma richieste di servizi.
Invece, il processo server svolge un ruolo reattivo, poiche' compie una computazione esclusivamente a seguito di una richiesta proveniente da qualunque client.
Questo modello software e' dunque formato da due moduli integrati ma distinti, che generalmente resiedono su macchine differenti; ma questo modello puo' anche funzionare su un'unica macchina che funge sia da client che da server, eseguendo ogni tipo di compito.
Il sistema e' formato da due tipi di moduli:il client e il server, che di solito sono eseguiti su macchine collegate tra loro in rete.
Il server, svolge le operazioni necessarie per eseguire un servizio, come gestire banche dati, o l'aggiornamento di dati.
Il client richiede, per eseguire queste operazioni un terminale con capacita' elaborative minime (ad esempio un pc o uno smartphone).
Inoltre, il client gestisce la porzione di interfaccia utente dell'applicazione, verifica i dati inseriti ed invia al server le richieste dell'utente.
Esso gestisce poi le risorse locali (periferiche e cpu).
In sintesi, il client e' quella parte dell'applicazione che l'utente vede e con la quale si interfaccia.
In un ambiente client-server, sul computer client e' in esecuzione un software applicativo (programma client).
Il programma client abilita l'utente a spedire una richiesta di informazione al server; e formatta la richiesta in modo che il server possa capirle.
Esso, formatta la risposta del server cosicche' l'utente possa leggerla.
Come controparte troviamo il programma server, il quale riceve una richiesta dal client e la sviluppa; quindi risponde spendendo l'informazione richiesta.
Un server quindi e' qualasiasi applicazione che si occupa di ascoltare ed eventualmente esaudire le richieste del client
Tutte questi processi avvengono in maniera trasparente, rispetto ad entrambi i processi.
Perche' client e server possano interagire al meglio, occorre che usino entrambi un linguaggio comune.
In rete, vengono utilizzati numerosi protocolli specifici delle applicazioni, uno per ogni servizio.
La differenza principale tra il server e una comune applicazione e' che il primo deve gestire allo stesso tempo piu' richieste, anche migliaia ogni minuto.
Il client invece esegue una richiesta per volta.
Esempi di protocolli sono: l'FTP (File Transfert Protocol), utilizzato per scambiare file tra gli host; l'HTTP (Hyper Text Transfert Protocol) su cui si basa il WWW ( Wolrd Wide Web).
Tutti questi protocolli si appoggiano sui protocolli TCP/IP e sul DNS( Dynamic Name System) che permettono di scambiare richieste e messaggi attraverso la rete.
Il modello client server si distingue dagli altri per quattro ragioni:
1) Il Server puo' gestire diversi client contemporaneamente;
2)Il Client deve spesso autenticarsi per accedere al server;
3)Il Client prende l'iniziativa di ogni comunicazione tramite una richiesta al Server;
4) Il Server salva permanentemente le informazioni inviati del Client.
|