Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto...

24
Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto per il corso di Reti di Calcolatori LS Prof. Antonio Corradi A.A. 2006/2007 Università degli Studi di Bologna Facoltà di Ingegneria Laurea Specialistica in Ingegneria Informatica Vincenzo Borelli 0000195621

Transcript of Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto...

Page 1: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Supporto per ApplicazioniDistribuite basato su

Spazi di Tuplecon Qualità di Servizio

Progetto per il corso di

Reti di Calcolatori LS

Prof. Antonio Corradi

A.A. 2006/2007

Università degli Studi di Bologna

Facoltà di Ingegneria

Laurea Specialistica in Ingegneria Informatica

Vincenzo Borelli0000195621

Page 2: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

ObiettiviObiettivi

Realizzazione di un supporto per applicazioni distribuitebasato sul modello dello Spazio di Tuple Memoria condivisa (spazio di tuple) per la coordinazione tra

le entità di un’applicazione distribuita

Meccanismi di interazione e di comunicazione trasparential programmatore

Gestione automatica e trasparente della strutturadistribuita dell’applicazione (ingresso/uscita di nodi) e dieventuali fallimenti

Molti vantaggi dovuti al suo utilizzo, tra cui Possibilità per i progettisti di concentrarsi sugli aspetti

applicativi di più alto livello

Riduzione dei tempi e dei costi dello sviluppo delleapplicazioni distribuite

Page 3: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Caratteristiche principaliCaratteristiche principali Semplicità di utilizzo

Ristretto insieme di operazioni per l’accesso ai serviziofferti dal supporto

Modularità Responsabilità precise per ogni parte del supporto

Facilita la fase di collaudo e l’aggiunta di nuovefunzionalità

Scalabilità e dinamicità Applicazioni formate da un elevato numero di nodi

Frequenza elevata di ingressi/uscite nel sistema

Configurabilità Possibilità di adattare le modalità di funzionamento del

supporto in base alle esigenze dell’applicazione

Page 4: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

QualitQualitàà di Servizio di ServizioInsieme di parametri che caratterizzano il singolospazio di tuple

Spazi di tuple multipli Separazione tra differenti spazi di tuple

Spazi di tuple tipizzati Restrizione a determinati tipi di tuple e anti-tuple

Replicazione Per far fronte ad eventuali fallimenti di nodi

Correttezza Per avere un comportamento deterministico per le

operazioni di inserimento e estrazione/lettura

Page 5: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Architettura del supportoArchitettura del supporto

Architettura peer-to-peerfortemente decentralizzata Vantaggi

Responsabilità identiche per tutte le entità

Maggiore scalabilità

Bilanciamento di carico Svantaggi

Protocolli più complessi

Overhead dovuto alla comunicazione

Page 6: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Organizzazione dei nodiOrganizzazione dei nodi Identificatore univoco per ogni nodo

I nodi sono ordinati in un anello logico in base al

loro identificatore (hash di indirizzo IP + porta)

Lo spazio di tuple è partizionato tra i diversi nodi:

ognuno è responsabile delle tuple che hanno unidentificatore compreso tra il proprio (incluso) e

quello del predecessore (escluso)

Page 7: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Struttura del supportoStruttura del supporto

Page 8: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Interfaccia del supportoInterfaccia del supporto Punto di accesso dell’applicazione al supporto

Metodi per l’avvio (start) e la terminazione (stop)

Fornisce gli spazi di tuple, con la Qualità di Serviziodesiderata, su cui poter fare le operazioni di inserimento eestrazione/lettura (getTupleSpace)

Il costruttore prevede l’indicazione di un file in cui sonocontenuti i parametri per la configurazione Indirizzo e porta del nodo corrente

Indirizzo e porta del nodo di boot

Parametri relativi ai pool di thread presenti nei moduli

Configurazione del sistema di logging

Poche e semplici operazioni per poter utilizzare il supporto

Page 9: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Operazioni sullo Spazio di TupleOperazioni sullo Spazio di Tuple

void Out(ITuple t) - Metodo non bloccante perl’inserimento di una tupla

ITuple In(IAntiTuple t) - Metodo bloccante perl’estrazione di una tupla

ITuple In(IAntiTuple t, int timeout) - Metodobloccante con timeout per l’estrazione

void In(IAntiTuple t, ICallback b) - Metodo nonbloccante per l’estrazione di una tupla che vienegestita dall’oggetto callback

Per la lettura operazioni Read identiche alle In

Page 10: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Overlay NetworkOverlay Network

Responsabilità di organizzare il routing a livelloapplicativo, fornendo le informazioni sulpredecessore e sul successore di un nodo

Utilizzata per effettuare la ricerca delle risorse apartire da un identificatore (con complessitàdell’ordine di O(logN))

Segnala ai moduli che si registrano i cambiamentinell’anello tramite eventi

Utilizzo del protocollo Chord (e della suaimplementazione open source OpenChord)

Page 11: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di coerenza (1)Protocollo di coerenza (1)

Page 12: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di coerenza (2)Protocollo di coerenza (2)

Page 13: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di coerenza (3)Protocollo di coerenza (3)

Page 14: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di coerenza (4)Protocollo di coerenza (4)

Page 15: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di replicazioneProtocollo di replicazione

Page 16: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di inserimento (1)Protocollo di inserimento (1)

Page 17: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di inserimento (2)Protocollo di inserimento (2)

Page 18: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di inserimento (3)Protocollo di inserimento (3)

Page 19: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di estrazione/lettura (1)Protocollo di estrazione/lettura (1)

Page 20: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di estrazione/lettura (2)Protocollo di estrazione/lettura (2)

Page 21: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Protocollo di estrazione/lettura (3)Protocollo di estrazione/lettura (3)

Page 22: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Collaudo del supportoCollaudo del supporto

Tipologie di test effettuati:

Collaudo dei singoli moduli

Simulazione in ambiente locale Interazione tra i singoli moduli

Correttezza dei protocolli

Simulazione in ambiente distribuito Fallimento di un nodo e protocollo di replicazione

Page 23: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Sviluppi futuriSviluppi futuri

Nuovi parametri per la Qualità di Servizio Tempo di vita delle tuple

Priorità

Protezione

Algoritmi di matching più sofisticati Basati su pattern

Estrazione/lettura contemporanea di più tuple

Accounting e sicurezza Controllo degli accessi

Comunicazione cifrata

Page 24: Supporto per Applicazioni Distribuite basato su Spazi di Tuple con … · 2011-02-21 · Supporto per Applicazioni Distribuite basato su Spazi di Tuple con Qualità di Servizio Progetto

Fine