il modello cliente/servente e l’interfaccia socket per l’implementazione di applicazioni

Post on 01-Jan-2016

26 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

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

Il modello cliente/servente

e

l’interfaccia Socket

per l’implementazione di applicazioni

Prof. Alfio Lombardo

Processo A Processo BProcesso BMessaggioProcesso A

Messaggio

IL PROBLEMA DEL RENDEZ-VOUS

Processo A Processo B

Processo A Processo BProcesso BMessaggioProcesso A

Messaggio

IL PROBLEMA DEL RENDEZ-VOUS

CLIENTE SERVENTESERVENTECLIENTERichiesta

Risposta

MODELLO CLIENTE - SERVENTE

CLIENTE

Remote

Login

ServerINTERNET

Cliente

Cliente

Cliente

La gestione della concorrenza nel server

CLIENTE 2

CLIENTE 1

SERVENTESERVENTEMASTER

CLIENTE 1

Connessione 2

SERVENTESLAVE 1

Richiesta

Risposta

Connessione 1

SERVENTERichiesta

Risposta

CLIENTE

I Scenario: Ack Write

LA GESTIONE DEI CRASH NEL SERVER

SERVENTERichiesta

Risposta

CLIENTE

I Scenario: Ack Write

No Transaction

SERVENTERichiesta

Risposta

CLIENTE

II Scenario Write Ack

SERVENTERichiestaCLIENTE

?Richiesta

Risposta

II Scenario Write Ack

Duplicate Transaction

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

POLITICHE DI GESTIONE DEI GUASTI NEL SERVER

At most once

At least once

AP1 AP2 AP3

Funzioni di sistema

Kernel del Sistema Operativo contenente il software TCP/UDP

L’interfaccia socket

Il concetto di Socket

Definizione:

Generalizzazione del meccanismo di

accesso ai file in Unix che fornisce un

punto di accesso per la comunicazione

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

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

Modalita’ c.o.: Cliente

Socket( )

Connect( )

Send( )

Recv( )

int connect(socket,destaddr,addrlength )

Cliente

Socket( )

Connect( )

Send( )

Recv( )

Servente

Socket( )

Bind( )

Listen( )

Accept( )

Fork( )

Close( ) Recv( )

Send( )

master slave

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.

Macrolezione 05

(ipermediale)

Inter-Process Communication

Esercizio consigliato:

IPC

top related