La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il modello cliente/servente per l’implementazione di applicazioni

Presentazioni simili


Presentazione sul tema: "Il modello cliente/servente per l’implementazione di applicazioni"— Transcript della presentazione:

1 Il modello cliente/servente per l’implementazione di applicazioni
l’interfaccia Socket per l’implementazione di applicazioni Prof. Alfio Lombardo

2 IL PROBLEMA DEL RENDEZ-VOUS
Processo A Processo A Processo A Processo B Processo B Processo B Messaggio Messaggio

3 IL PROBLEMA DEL RENDEZ-VOUS
Processo B Messaggio Processo A Processo A Processo B

4 MODELLO CLIENTE - SERVENTE
Richiesta Risposta

5 La gestione della concorrenza nel server
Cliente Remote Login Server INTERNET Cliente Cliente

6 Connessione 2 Connessione 1 Richiesta Risposta CLIENTE 2 SERVENTE
MASTER SERVENTE Connessione 2 CLIENTE 1 CLIENTE 1 Connessione 1 SERVENTE SLAVE 1 Richiesta Risposta

7 I Scenario: Ack Write LA GESTIONE DEI CRASH NEL SERVER Richiesta
SERVENTE CLIENTE Richiesta Risposta

8 I Scenario: Ack Write No Transaction Richiesta Risposta CLIENTE
SERVENTE CLIENTE Richiesta Risposta

9 II Scenario Write Ack SERVENTE CLIENTE Richiesta Risposta

10 ? II Scenario Write Ack Duplicate Transaction Richiesta Richiesta
CLIENTE SERVENTE Richiesta Richiesta ? Risposta

11 Ripristino dei guasti nel Server
Strategia del Servente Strategia del Cliente Ack Write Write Ack Ritrasmetti in S0 AF(W) AWF F(AW) F(WA) WAF WF(A) Ritrasmetti in S1 NO OK DUP DUP OK NO Ritrasmetti in S0 Ritrasmetti OK DUP Non Ritrasmetti NO S1 = stato di attesa della conferma

12 POLITICHE DI GESTIONE DEI GUASTI NEL SERVER
At most once At least once

13 Kernel del Sistema Operativo contenente il
L’interfaccia socket AP1 AP2 AP3 Funzioni di sistema Kernel del Sistema Operativo contenente il software TCP/UDP

14 Il concetto di Socket Definizione: Generalizzazione del meccanismo di
accesso ai file in Unix che fornisce un punto di accesso per la comunicazione

15 Un socket identifica localmente il canale
Il “canale” di comunicazione tra due Applicativi è rappresentato da: Client port Addr, IP Client Addr, IP Server Addr, Server port Addr Appl. process Appl. process Un socket identifica localmente il canale tra due Applicativi

16 Modalita’ c.o.: Servente
socket = socket(family, type, protocol) family ::= {PF_INET, PF_APPLETALK, PF_PUP, ...} type::= {SOCK_STREAM, SOCK_DGRAM, …..} Socket( ) bind (socket,localaddr,addrlen) Bind( ) Listen( ) listen(socket,qlength) Accept( ) newsocket accept(socket,addr,addrlen) Fork( ) fork( ) master slave close(socket) Close( ) recv(sock,*buf,length,flags) Recv( ) send(sock,*buf, length,flags) Send( )

17 Modalita’ c.o.: Cliente Socket( )
int connect(socket,destaddr,addrlength ) Connect( ) Send( ) Recv( )

18 Servente Cliente Socket( ) Bind( ) Listen( ) Accept( ) Fork( )
Close( ) Recv( ) Send( ) Cliente Socket( ) Connect( ) Send( ) Recv( ) slave master

19 Modalita’ c.l. Servente Cliente Socket( ) Socket( ) Bind( ) Bind( )
RecvFrom( ) int recvfrom(sock,*buf, length, flags,sourceaddr,addrlength ) RecvFrom( ) SendTo( ) RecvFrom( ) int sendto(sock,*buf, length, flags,destaddr,addrlength ) SendTo( )

20 Inter-Process Communication
Esercizio consigliato: IPC Macrolezione 05 (ipermediale) Inter-Process Communication


Scaricare ppt "Il modello cliente/servente per l’implementazione di applicazioni"

Presentazioni simili


Annunci Google