Il modello cliente/servente e l’interfaccia Socket per l’implementazione di applicazioni

20
Il modello cliente/servente e l’interfaccia Socket r l’implementazione di applicazion Prof. Alfio Lombardo

description

Il modello cliente/servente e l’interfaccia Socket per l’implementazione di applicazioni. Prof. Alfio Lombardo. Processo A. Processo A. Processo A. Processo B. Processo B. Processo B. Messaggio. Messaggio. IL PROBLEMA DEL RENDEZ-VOUS. Messaggio. Processo A. Processo B. Messaggio. - PowerPoint PPT Presentation

Transcript of Il modello cliente/servente e l’interfaccia Socket per l’implementazione di applicazioni

Page 1: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Il modello cliente/servente

e

l’interfaccia Socket

per l’implementazione di applicazioni

Prof. Alfio Lombardo

Page 2: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Processo A Processo BProcesso BMessaggioProcesso A

Messaggio

IL PROBLEMA DEL RENDEZ-VOUS

Processo A Processo B

Page 3: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Processo A Processo BProcesso BMessaggioProcesso A

Messaggio

IL PROBLEMA DEL RENDEZ-VOUS

Page 4: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

CLIENTE SERVENTESERVENTECLIENTERichiesta

Risposta

MODELLO CLIENTE - SERVENTE

CLIENTE

Page 5: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Remote

Login

ServerINTERNET

Cliente

Cliente

Cliente

La gestione della concorrenza nel server

Page 6: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

CLIENTE 2

CLIENTE 1

SERVENTESERVENTEMASTER

CLIENTE 1

Connessione 2

SERVENTESLAVE 1

Richiesta

Risposta

Connessione 1

Page 7: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

SERVENTERichiesta

Risposta

CLIENTE

I Scenario: Ack Write

LA GESTIONE DEI CRASH NEL SERVER

Page 8: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

SERVENTERichiesta

Risposta

CLIENTE

I Scenario: Ack Write

No Transaction

Page 9: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

SERVENTERichiesta

Risposta

CLIENTE

II Scenario Write Ack

Page 10: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

SERVENTERichiestaCLIENTE

?Richiesta

Risposta

II Scenario Write Ack

Duplicate Transaction

Page 11: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Ritrasmetti in S0

AF(W) AWF F(AW)

Ripristino dei guasti nel Server

Strategia del Cliente

Ritrasmetti OKOKOK DUPDUPDUP

Non Ritrasmetti OK NONO NO OK OK

Ritrasmetti in S1 NO OK OK DUPOK OKWF(A)F(WA) WAF

Strategia del ServenteAck Write Write Ack

DUP OKNO DUPRitrasmetti in S0 OK NO

S1 = stato di attesa della conferma

Page 12: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

POLITICHE DI GESTIONE DEI GUASTI NEL SERVER

At most once

At least once

Page 13: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

AP1 AP2 AP3

Funzioni di sistema

Kernel del Sistema Operativo contenente il software TCP/UDP

L’interfaccia socket

Page 14: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Il concetto di Socket

Definizione:

Generalizzazione del meccanismo di

accesso ai file in Unix che fornisce un

punto di accesso per la comunicazione

Page 15: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Appl.process

Appl.process

Il “canale” di comunicazione tra due Applicativi è rappresentato da:Client port Addr, IP Client Addr, IP Server Addr, Server port Addr

Un socket identifica localmente il canaletra due Applicativi

Page 16: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Modalita’ c.o.: Servente

Socket( )

Bind( )

Listen( )

Accept( )

Fork( )

Recv( )

listen(socket,qlength)

bind (socket,localaddr,addrlen)

Send( )

newsocket accept(socket,addr,addrlen)

fork( )

Close( )close(socket) recv(sock,*buf,length,flags)

send(sock,*buf, length,flags)

socket = socket(family, type, protocol)

family ::=

{PF_INET,

PF_APPLETALK,

PF_PUP, ...}

type::=

{SOCK_STREAM,

SOCK_DGRAM,

…..}

master slave

Page 17: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Modalita’ c.o.: Cliente

Socket( )

Connect( )

Send( )

Recv( )

int connect(socket,destaddr,addrlength )

Page 18: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Cliente

Socket( )

Connect( )

Send( )

Recv( )

Servente

Socket( )

Bind( )

Listen( )

Accept( )

Fork( )

Close( ) Recv( )

Send( )

master slave

Page 19: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

SendTo( )

Bind( )

Socket( )

Servente

SendTo( )

RecvFrom( )

Bind( )

Socket( )

Cliente

RecvFrom( )RecvFrom( )int recvfrom(sock,*buf, length,

flags,sourceaddr,addrlength )

int sendto(sock,*buf, length,flags,destaddr,addrlength )

Modalita’ c.l.

Page 20: Il modello cliente/servente e  l’interfaccia Socket  per l’implementazione di applicazioni

Macrolezione 05

(ipermediale)

Inter-Process Communication

Esercizio consigliato:

IPC