Applicazioni Client Server

Download Report

Transcript Applicazioni Client Server

L’ambiente client-server
arcIPelago scrl.
Modello client-server
• E’ il modello “classico” nel mondo Internet
• Una serie di nodi offrono servizi (server),
altri li richiedono (client)
• Modello asimmetrico
• Non esistono vincoli sull’architettura di un
elaboratore, quindi ogni nodo può essere sia
un client che server (anche entrambi
contemporaneamente)
arcIPelago scrl.
Modello client-server
• Caratteristiche del server:
3 E’
in esecuzione “da sempre”
3 Rimane in esecuzione come server anche dopo
aver offerto il servizio
3 Può accettare richieste relative ad uno o più
servizi
3 La richiesta da parte del client contiene
informazioni su quale servizio viene richiesto
arcIPelago scrl.
Modello client-server
• Caratteristiche del server
3 si
presenta in rete con uno o più punti di
accesso (porte) permanenti, ciascuno
corrispondentead un preciso servizio
3 il servizio consiste in una fase di elaborazione e
(generalmente) nel successivo invio di una
risposta al client
arcIPelago scrl.
Modello client-server
• Caratteristiche del client
3 avanza
richieste verso un ben preciso server
3 usa per comunicare una porta temporanea che
svanisce al termine della interazione con il
server
3 Esegue le singole richieste come operazioni
isolate, ciascuna delle quali termina dopo aver
ricevuto la relativa risposta del server
arcIPelago scrl.
Server iterativi e concorrenti
• Server iterativo
3 quando
il servizio richiesto è tipicamente di
breve durata, il server è configurato per offrirlo
personalmente
• Server concorrente
3 quando
il servizio è lungo, il server attiva un
sottoprocesso che offre il servizio, mentre il
server torna in attesa
arcIPelago scrl.
Un semplice esempio
UDP Echo Server
• un echo server può essere utile in fase di
debugging di una connessione, o per
rilevare guasti sulla rete
• E’ una versione semplificata di ping
• usa consegna UDP datagram per inviare
messaggi da un client ad un server e
viceversa
arcIPelago scrl.
UDP echo server: lato server
• Il server si attiva e negozia con il S.O. il
permesso di usare una porta
• Ottenuto il permesso, entra in loop:
3 attende
un datagram in arrivo sulla porta
3 inverte indirizzo sorgente e destin. su datagram
3 spedisce datagram così modificato e torna al
passo iniziale
arcIPelago scrl.
UDP echo server: lato client
• Attivandosi, il client si alloca una qualsiasi
porta inutilizzata
• Invia un messaggio UDP all’echo server
• Attende come risposta un pacchetto
contenente gli stessi dati inviati
arcIPelago scrl.
Alcune considerazioni
• Dall’esempio osserviamo che:
3 il
server è attivo prima dell’inizio dell’interazione
3 il server invia la risposta e non si disattiva
3 il client invia una richiesta e attende una risposta,
terminando dopo aver usato il server un certo
numero di volte
3 un server aspetta le richieste ad una porta ben
nota; il client ne usa sempre una diversa, e casuale
arcIPelago scrl.
Sicurezza
• E’ un aspetto assai importante in un server:
3 La
costruzione di un server è particolarmente
complessa perchè deve rispondere a criteri di
sicurezza
3 Dovendo leggere file system, scrivere log e
accedere a dati protetti, il server ha bisogno di
privilegi
3 Di fatto, deve poi trasferire questi privilegi al
client: problemi di sicurezza
arcIPelago scrl.
Affidabilità
• Il server deve offrire un servizio affidabile
verso il client e verso l’host su cui esegue
3 deve
essere in grado di gestire richieste
improprie dai client, senza ‘piantarsi’
3 deve prevedere la riattivazione nel caso in cui
venga accidentalmente ‘chiuso’ da una richiesta
impropria
3 un suo eventuale malfunzionamento non deve
avere alcun impatto sugli altri processi locali
arcIPelago scrl.