INDIETRO SU AVANTI

Applicazioni a ruoli asimmetrici: master-slave o client-server

In questo modello il ruolo dei due processi che sono in comunicazione tra loro e' asimmetrico, e questo significa che il codice del programma e' differente per ciascuno dei ruoli.

I ruoli sono stati chiamati in passato master e slave e successivamente client e server. Qualche volta si tende ora a riutilizzare i termini vecchi per non confondere l'accezione tecnica di questi vocaboli con quella organizzativa e aziendale.

Operazioni del Server

Il server e' il processo che parte per primo e tipicamente esegue i seguenti passi:

  1. apre un canale di comunicazione ed informa il sistema operativo locale della sua disponibilita' ad accettare richieste su quel canale, identificate con indirizzi noti
  2. attende richieste da parte di clients ascoltando o monitorando tali indirizzi noti
  3. all'arrivo di una richiesta da parte di un client, le presta servizio, ovvero interagisce con il client secondo un ben definito protocollo
  4. ritorna ad attendere richieste

Vi sono due possibili metodi di gestione delle richieste del client, che definiscono due tipi diversi di server:

I processi server sono in ciclo infinito e non terminano mai, a meno che vengano terminati volontariamente da un altro processo o dal sistema operativo.

Operazioni del Client

Il processo client esegue una serie diversa di operazioni:

  1. apre un canale di comunicazione collegato ad un indirizzo noto di uno host remoto
  2. manda nel canale verso il server delle specifiche richieste e riceve i corrispettivi responsi, secondo un protocollo stabilito
  3. al concludersi delle operazioni chiude il canale di comunicazione e termina l'esecuzione

    L'apertura del canale di comunicazione da parte del server viene denominata una apertura passiva, da parte del client una apertura attiva.