





Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
dispense reti e sistemi appunti di informatica argomento Client server
Tipologia: Dispense
1 / 9
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






Prof. Filippo Lanubile
Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza nei server Interazione client/server orientata alla connessione e senza connessione Collaudo di applicazioni di rete Prof. Filippo Lanubile
Applicazione di rete (distribuita) Fornisce/realizza un servizio per un utente finale Composta da più programmi in esecuzione (processi) su host diversi Client: processo che inizia la comunicazione Server: processo che aspetta di essere contattato Applicazione Internet La comunicazione tra processi è basata sui servizi di rete e trasporto di Internet Può essere basata su protocolli di livello applicazione protocolli pubblici o privati servizi via socket API Può essere invece basata su invocazione di servizi remoti RPC: chiamata di procedura remota Varianti RPC: Java RMI, .Net Remoting, Web services SOAP Applicazione conforme a standard Internet Protocolli pubblici descritti da Request for Comments (RFC) e gestiti dall’Internet Engineering Task Force (IETF) Esempi: FTP (file transfer), SMTP (email), HTTP (web), IRC (chat)
Prof. Filippo Lanubile
client server
Prof. Filippo Lanubile
Client
Server
Prof. Filippo Lanubile
open-read-write-close file descriptor = (pathname, flag) processo TCP/UDP socket host processo TCP/UDP socket host Internet controllato dal sistema operativo Controllato dal programmatore dell’applicazione Prof. Filippo Lanubile
TCP - orientato alla connessione
UDP - privo di connessione
Prof. Filippo Lanubile
Un sistema operativo multi-tasking può ospitare più di un server Ogni server offre un servizio specifico ai client che lo richiedono I server sono processi indipendenti e possono gestire le richieste dei client simultaneamente Prof. Filippo Lanubile Indirizzamento dei processi
Mittente: (IP address, port number) Destinatario: (IP address, port number)
Prof. Filippo Lanubile
Problema: La risposta a una richiesta di un client può richiedere molto tempo Altri client devono aspettare il completamento delle richieste precedenti Soluzione Server concorrente che permette di gestire contemporaneamente le richieste di client multipli indirizzate a una socket di benvenuto Il server crea dinamicamente un nuovo thread (copia del processo) per ogni richiesta accettata e gli assegna una socket di connessione Il thread concorrente (con il suo flusso di controllo autonomo operante su memoria condivisa) soddisfa la richiesta del client attraverso la socket di connessione Il server si rende subito disponibile e attende le successive richieste dirette sempre alla socket di benvenuto Prof. Filippo Lanubile
(ind. IP server, n.ro di porta server, ind. IP client , n.ro di porta client)
Prof. Filippo Lanubile Interazione client/server senza connessione
bind() recvfrom() sendto() close() process request socket() sendto() recvfrom() close() data(request) data(reply) Prof. Filippo Lanubile Interazione client/server orientata alla connessione
socket() bind() accept() send() close() process request socket() send() recv() close() data(request) data(reply) connect() listen() recv() connection establishment