17
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S.

MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Embed Size (px)

Citation preview

Page 1: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

MCSA

Mobile Code System Architecture

Infrastruttura a supporto della code mobility

Pierfrancesco Felicioni 171856Reti di Calcolatori L.S. 2005/2006

Page 2: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Definizioni

Mobile Code: software in grado di viaggiare su una rete eterogenea, attraversando domini di protezione e che può essere eseguito automaticamente all’arrivo a destinazione

Mobile Computation: computazione che inizia su qualche nodo lungo una rete, e che può continuare la sua esecuzione su qualche altro nodo

Page 3: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Vantaggi del Code Mobility

Macchina specializzata in attesa di task da

eseguireEfficienza

Invia uno o più task sul server sfruttando i

vantaggi di una macchina ad alte performance

Server

Client

Client2

Task

Task

Response

Response

Traffico di rete ridottoSpedisce direttamente un

processo sul server evitando ripetute iterazioni

Permette di aggiornare un server e riqualificarlo senza dover interrompere il servizio: reti intelligenti e

attive

Page 4: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Obbiettivi

Realizzare una architettura a supporto della code mobility che sia:

Tollerante ai guasti Replicazione

Trasparente verso il cliente

Affidabile Controllo correttezza delle risposte

Efficiente Load Sharing/Balancing

Page 5: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Analisi

Tolleranza ai guasti Implementazione del modello a copie attive

Trasparenza verso il cliente All’atto del collegamento In caso di guasto

Efficienza Ottenuta mediante un bilanciamento del carico di

lavoro, fra le entità che forniscono il servizio

Page 6: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Architettura

L’architettura che è stata implementata è la Client/Server

Per ovviare ai tipici problemi di una architettura centralizzata sono state introdotte forme di replicazione (copie attive).

Il client invia dei task da eseguire ad un gestore (master) che passa le richieste alle varie copie (slave)

Il gestore coordina gli slave e verifica la correttezza delle risposte, restituendo il risultato al client

In questo modo il client comunica con i servitori in modo implicito

Page 7: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Architettura del sistemaClient che richiede di registrarsi presso un

server

Si occupa di assegnare al client un gruppo che gestisca le sue richieste

Ogni gruppo di server è formato da un master e

zero o più slave

Il proxy conosce la composizione di ogni gruppo, poiché tutti i

server devono registrarsi presso di lui

Gli slave eseguono le stesse operazioni: copie

attive

Proxy

Master gruppo1 Master gruppo 2

Slave gruppo 1Slave gruppo1 Slave gruppo 2

Client

Gruppo 1 Gruppo 2

Page 8: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Fault Tolerance

E’ stato implementato il modello a copie attive. Il sistema gestisce i seguenti fault:Caduta del master

Mentre è idle Ogni master è controllato dagli stessi slave e dal

proxy Durante la gestione di una richiesta da parte del

client Il master dopo aver ricevuto un task (richiesta) la

inoltra sugli slave. Lo slave designato come nuovo master, invia la risposta al client in call back e aggiorna i riferimenti del client (trasparenza).

Page 9: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Fault Tolerance

ClientMaster

Slave A

I’m new master

Task

Task

Task

Slave B

Response

Proxy

Il proxy, entità che controlla i master è

caduto

Esempio di gestione dellafault tolerance nel caso peggiore

Page 10: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Fault Tolerance

Caduta di uno slave:Mentre è idle: il master controlla periodicamente

gli slave del proprio gruppo. In caso in cui uno slave cade il master provvede a

rimuoverlo dalla sua lista e a notificarlo agli altri componenti del gruppo

Prima di rispondere ad una richiesta inoltrata dal master:

Ogni task inviato dal client viene eseguito su tutti gli slave. Il master prima di inviare un responso, controlla che tutti gli slave abbiano risposto.

In caso contrario accerta che non ci sia qualche slave caduto, se si, lo deregistra e lo notifica al resto del gruppo

Page 11: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Fault Tolerance

Risposte incoerentiNel caso in cui le risposte restituite dagli slave,

siano incoerenti Viene scelta la risposta data dal maggior numero di

server facenti parte del gruppo

Nel caso in cui i responsi siano tutti diversi fra loro, viene restituita al client una condizione di errore

Page 12: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Efficienza

Proxy Load Sharing Decide quale gruppo assegnare ad un client, in

base a due parametri: Numero di richieste attualmente gestite Numero di client connessi

Questo tipo di bilanciamento (a priori) non è efficace. Supponiamo che in una fase successiva, i client connessi ad un gruppo inizino ad inviare un numero esorbitante di richieste, mentre nell’altro gruppo questa situazione non si verifichi. In questo caso il bilanciamento del carico non avrebbe esordito l’effetto voluto.

Page 13: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Efficienza

Master Load BalancingNel caso in cui il numero di richieste da

gestire superi una certa soglia, il master chiede al proxy di poterle smistare su un altro gruppo.

Se il proxy non riesce nell’intento, il master raggiunto il valore soglia rifiuta ulteriori registrazioni da parte di altri client.

Page 14: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Master Load Balancing

Client 1

Task

Master gruppo 1

Client 2

Master gruppo 2

Task

Client 3

Task

Proxy

Client 5

Client 4

Task

Client 6

Request Redirected

Redirect Request of Client1

Register Client1 and compute the active

request

Response

I’m your master

Unregistered Client1

Valore soglia pari a 3

Page 15: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Implementazione

Ogni task dovrà implementare la seguente interfaccia:

< ITas k e xte nds Se r i al i zabl e > >

O bje c t run( )S tr ing to S tr ing( )

Il metodo run viene invocato

all’arrivo di un nuovo Task

Il metodo toString permette di confrontare i vari risultati

Page 16: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Conclusioni

Il sistema che è stato realizzato, soddisfa i requisiti di cui si è parlato precedentemente: Affidabilità Trasparenza Efficienza Tolleranza ai guasti

Tuttavia….. Il sistema è basato su una struttura centralizzata

Il proxy è un entità centrale del sistema.

Page 17: MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni 171856 Reti di Calcolatori L.S. 2005/2006

Sviluppi futuri

Gestire la fault tolerance lato proxy Introdurre forme di sicurezza

Autenticazione del client

Supporto per la strong mobility Composizione automatica di gruppi di server

in modo da trovare un compromesso tra: Replicazione Load Balancing