Producer – Consumer System Di Carlo Matteo 195111 CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.

Slides:



Advertisements
Presentazioni simili
Progetto Mini di Sistemi Distribuiti – AA 2007/08 Secure Group Communication with GDH.1 Alessandro Licata Caruso Matr:
Advertisements

Modello di replicazione attivo e di supporto alla tolleranza ai guasti in ambito MOM Autore: Claudio Fusconi Matricola: Esame: Reti di calcolatori.
Aprile 2004Reti di Calcolatori LS – Servizio di Annunci Distribuito1 Reti di Calcolatori LS REALIZZAZIONE DI UN SERVIZIO DI ANNUNCI DISTRIBUITO Studente:
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Un sistema software per la vendita di prodotti on-line Università degli studi di Bologna Facoltà di ingegneria Reti di calcolatori L-S Studente: Rinaldi.
Qualità di servizio in ambiente wireless Progetto per il corso di Reti di Calcolatori L-S Prof. Antonio CorradiValentina Maraldi.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro
A Reliable Message Oriented Middleware based on Publish and Subscribe paradigm Mirko Matoffi a.a. 2003/2004.
BlueMar k Sistema di Proximity Marketing con QoS ed availability Progetto per il Corso di Reti di Calcolatori LS Nicola Bonoli - 27 Giugno 2007.
Supporto allassistenza da remoto Sacchetti MauroMatr Prof. Antonio Corradi Progetto di Reti di Calcolatori LS.
Replicazione delle risorse: UN CASO DI STUDIO
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
Supporto in RMI per la collaborazione in rete Autore:Vincenzo Coco Matricola: Corso di Reti di Calcolatori LS 2006/2007 Docente: Antonio Corradi.
JARS JavaActiveReplicationSupport Anno Accademico Bellocchi Marco Maria.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
High-Available Service Manager Diego Costantini Università degli studi di Bologna Corso di Laurea Specialistica.
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
Architettura e protocolli di distribuzione dello stato in videogiochi Multiplayer distribuiti Michele Pace Esame di Reti di Calcolatori LS Aa
Meteo Service Corso di Reti di Calcolatori LS Casarini Stefano matr
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Esame di Reti di Calcolatori LS Andruccioli Daniele
Reti di Calcolatori LS Professor Antonio Corradi Ingegner Dario Bottazzi Presentazione di Francesco Fiori.
Fanelli Mario Montanari Marco Salbaroli Francesco
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Reti di calcolatori LS Enrico Pirazzini SSB un middleware basato su JMS per l'invocazione di servizi remoti.
Music Everywhere BlueTooth project – MasterProxy Albertin Marco.
Dal click alla pagina web... Centro di Calcolo Corso Internet 22 Novembre 1996 Stefano Bistarelli Università di Chieti-Pescara “G. D’Annunzio” Dipartimento.
Progetto RE.VE.N.GE. (REliable and VErsatile News delivery support for aGEncies) Reti di Calcolatori L-S Anno Accademico 2005/2006 Nardini Elena
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Progetto di: Daniele De Angelis Corso di: Reti di Calcolatori LS Un sistema fault tolerance per protocollo Diffie-Hellman.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
Sistemi di elaborazione dell’informazione Modulo 3 - Protocolli applicativi Unità didattica 1 - Domain Name System Ernesto Damiani Lezione 2 – Caratteristiche.
Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:
Sistema di replicazione master-multislave con server di backup per un servizio di chat di Marco Andolfo matr
Infrastruttura per la gestione distribuita di un sistema di prenotazione Progetto di: Fabio Fabbri Matricola
PROTOTIPO DI UN GIOCO DI STRATEGIA IN RETE Alberto Buccella Università degli studi di Bologna Facoltà di Ingegneria Corso di Ingegneria Informatica.
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Search Engine Distribuito e Replicato Corso di Reti di Calcolatori LS Andrea Boari –
Chat-quiz Reti di Calcolatori L-S AA. 2003/2004 Rossella Rubino.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori LS – AA Presentazione di Davide Sansovini Professore: Antonio Corradi.
Sistema di Replicazione di Risorse Distribuite Ring-Based Reti di Calcolatori LS Alessio Bonfietti.
Servizio di newsgroup con replicazione dei server Studente: Letizia Cheng Cheng Sun Matricola: Reti di Calcolatori LS – Prof. A. Corradi A.A. 2003/2004.
Sistema distribuito per il controllo remoto di Software SCADA HMI Presentazione di Paolo di Francia Reti di Calcolatori LS a.a
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
MUSE 2 WIFI MUSic Everywhere with WIFI presentazione di Pierangeli Diego Membri del gruppo: Bambini Stefano Bergamini Andrea Pierangeli Diego AA 2006/2007.
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
R.E.V.E.N.G.E. RELIABLE AND VERSATILE NEWS DELIVERY SUPPORT FOR AGENCIES Corso di Reti di Calcolatori LS – AA Professore: Antonio Corradi Referente.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Proxy-based infrastructure for LBS availability Bucco Nicola matr
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
Corso di Reti di Calcolatori LS Progetto di un server FTP in grado di coordinarsi con altri mirror per garantire QoS di Marco Buccione.
Muse2: MUSic Everywhere with WI-FI Progetto realizzato da: Bambini Stefano Bergamini Andrea Pierangeli Diego Bologna C.d.L.S. Ingegneria Informatica.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Proxy based infrastructure for LBS availability Reti di Calcolatori LS Serena Agresti.
Bacheca: Supporto alla creazione e diffusione di annunci basato su CORBA Corso di Reti di Calcolatori LS Prof. Antonio Corradi Progetto di Elisa Addimanda.
Proxy Based Infrastructure for LBS tailoring Paolo Lutterotti matr Reti di Calcolatori LS, A.A. 2005/06.
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
1 High Available Instant Messaging Service Fabio Bombardi
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Mobile Agent and Enterprise Architecture Integration Il Gestore di Librerie e Servizi Lambertini Riccardo.
JDICS Java Dynamic Infrastructure for C/S systems Laura Galli matr Reti di calcolatori LS, Prof. A.Corradi A.A
Mots, programmazione collaborativa di Ettore Ferranti.
Business Process Management Orchestrazione di Web Service basata su standard BPEL per la realizzazione di un servizio di tour operator Università degli.
Transcript della presentazione:

Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005

Modello semantico del sistema – « store and forward » Producer Consumer I consumatori sono scelti arbitrariamente… Queue

Obiettivi e ipotesi di progetto Modello di replicazione passiva con copie calde Modello di replicazione passiva con copie calde permetta ad ogni cliente di usufruire dei servizi, permetta ad ogni cliente di usufruire dei servizi, permetta ad applicazioni diverse, in generale di linguaggi differenti, di fruire il sistema, permetta ad applicazioni diverse, in generale di linguaggi differenti, di fruire il sistema, sia tollerante ai guasti, sia tollerante ai guasti, operazioni tipiche per la gestione di cluster per alta disponibilità operazioni tipiche per la gestione di cluster per alta disponibilità monitoraggio dei servizi, monitoraggio dei servizi, migrazione del servizio, migrazione del servizio, controllo dello stato dei nodi; controllo dello stato dei nodi; garantisca qualità del servizio, garantisca qualità del servizio, garantisca qualche forma di sicurezza. garantisca qualche forma di sicurezza. Ipotesi di guasto singolo Ipotesi di guasto singolo

Client-Proxy-Server Client Application Client Portion Server Application Server Portion Client/Proxy Interface Proxy Application Proxy Portion Proxy Interface Public Interface Request Result Relazione client/proxy: Relazione client/proxy: Stessa applicazione Stessa applicazione Proxy come modulo del SO Proxy come modulo del SO Proxy come server nella rete locale Proxy come server nella rete locale Public interface: Public interface: in generale questa interfaccia potrebbe anche non essere pubblica; nel caso specifico si fa riferimento a proxy che utilizzano interfaccia definite da protocolli di uso comune come per esempio http. in generale questa interfaccia potrebbe anche non essere pubblica; nel caso specifico si fa riferimento a proxy che utilizzano interfaccia definite da protocolli di uso comune come per esempio http.

Proxy Slave Master Client Proxy Slave Modello generale del sistema Come conosce i server? Nei parametri di configurazione del proxy ci deve essere almeno l’indirizzo del master

SenderLiveManager ServiceManager ReceiverLiveManager Sender Receiver StateManagerAddressManager RecoveryManager HotStandByManager Architettura Server – parte 1

Architettura server – parte 2 : oggetto remoto a cui il proxy rivolge le sue richieste; ServiceManager : oggetto remoto a cui il proxy rivolge le sue richieste; Caso Master  sempre attivo; Caso Master  sempre attivo; Caso slave  pronto per essere attivato se primo slave, altrimenti comunque aggiornato; Caso slave  pronto per essere attivato se primo slave, altrimenti comunque aggiornato; : memorizza gli indirizzi della catena; AddressManager : memorizza gli indirizzi della catena; responsabile dell’ingresso nella catena da parte di uno slave ; responsabile dell’ingresso nella catena da parte di uno slave ; fornisce a tutti gli altri manager le informazioni necessarie per la comunicazione con i server pari; fornisce a tutti gli altri manager le informazioni necessarie per la comunicazione con i server pari; StateManager : mantiene aggiornato lo stato della copia slave collegata al server; StateManager : mantiene aggiornato lo stato della copia slave collegata al server; devono essere inviati aggiornamenti man mano che arrivano richieste da parte dei clienti; devono essere inviati aggiornamenti man mano che arrivano richieste da parte dei clienti; Heartbeat: Heartbeat: SenderLiveManager: manda messaggi a cadenze regolari di tempo al suo master del tipo “are you alive?”; SenderLiveManager: manda messaggi a cadenze regolari di tempo al suo master del tipo “are you alive?”; ReceiverLiveManager: arrivato il messaggio di “are you alive?”, da parte del suo slave, risponde con un messaggio di “alive”; ReceiverLiveManager: arrivato il messaggio di “are you alive?”, da parte del suo slave, risponde con un messaggio di “alive”; RecoveryManager : responsabile del recovery di un guasto; RecoveryManager : responsabile del recovery di un guasto; Sender e Receiver : gestiscono i canali di comunicazione; Sender e Receiver : gestiscono i canali di comunicazione; HotStandByManager: coadiuvante di tutti i manager. HotStandByManager: coadiuvante di tutti i manager.

Code e Messaggi – parte 1 gestione delle code dei messaggi è delegata dal serviceManager (incarico di prendere le richieste dei proxy) al queueManager; gestione delle code dei messaggi è delegata dal serviceManager (incarico di prendere le richieste dei proxy) al queueManager; Code: serie di liste ordinate di messaggi, in cui ogni lista ha una propria priorità (utilizzata nello smistamento dei messaggi); Code: serie di liste ordinate di messaggi, in cui ogni lista ha una propria priorità (utilizzata nello smistamento dei messaggi); persistenti e non persistenti (in fase di sviluppo) persistenti e non persistenti (in fase di sviluppo) Il messaggio è un dato composto da: Il messaggio è un dato composto da: un sender: colui che invia il messaggio; un sender: colui che invia il messaggio; uno o più recipient: i destinatari del messaggio (possibilità di avere destinatari particolari); uno o più recipient: i destinatari del messaggio (possibilità di avere destinatari particolari); un contenuto: nella semantica java, possiamo definire il contenuto come un qualsiasi oggetto serializzabile. un contenuto: nella semantica java, possiamo definire il contenuto come un qualsiasi oggetto serializzabile.

Code e Messaggi – parte 2 Le operazioni che possono essere effettuate dal cliente sono: Le operazioni che possono essere effettuate dal cliente sono: aggiunta di una coda; aggiunta di una coda; rimozione di una coda; rimozione di una coda; produzione di un messaggio: deve essere specificato in quale coda dovrà essere inserito il messaggio e con quale priorità; produzione di un messaggio: deve essere specificato in quale coda dovrà essere inserito il messaggio e con quale priorità; consumo di un messaggio: viene prelevato e rimosso dalla coda specifica il messaggio più prioritario; consumo di un messaggio: viene prelevato e rimosso dalla coda specifica il messaggio più prioritario; ottenere una lista delle code presenti; ottenere una lista delle code presenti; chiedere se esiste una certa coda; chiedere se esiste una certa coda; chiedere se esistono messaggi in una certa coda. chiedere se esistono messaggi in una certa coda.

Protocolli di comunicazione La comunicazione avviene sempre a catena dal master fino all’ultimo slave; La comunicazione avviene sempre a catena dal master fino all’ultimo slave; Comunicazione tra manager: ogni manager gestisce una serie di variabili che sono visibili a tutti gli altri manager ma che non possono essere modificate da loro(manager delle code escluso); Comunicazione tra manager: ogni manager gestisce una serie di variabili che sono visibili a tutti gli altri manager ma che non possono essere modificate da loro(manager delle code escluso); Comunicazione tra client, proxy e master: varie possibilità Comunicazione tra client, proxy e master: varie possibilità Client-proxy: comunicazione locale, remota; Client-proxy: comunicazione locale, remota; Proxy-server: comunicazione remota. Proxy-server: comunicazione remota.

Comunicazione a catena Master Slave Message

Comunicazione di ingresso slave Master SlaveNew Slave 3. connection 1. Entry: hostname, port 2. New Address Chain 2. New Address Chain, queues

Master Slave Client Proxy Client Aggiornamento stato Request: produce Message Aggiornamento stato

Master Slave 1. Are you alive? 2. Alive Se entro un certo tempo non mi risponde: MORTE MASTER Se entro un certo tempo non mi chiede nulla: MORTE LAST SLAVE Comunicazione di vita: heartbeat

Master Slave 1.Morte master 2. Divento il nuovo master 3. Mando la nuova Address chain New Address chain Crash o caduta del master

Master Slave 1. Morte slave 3. New Address chain 2. Recovery, new Address chain Slave 4. New Address chain Crash o caduta di uno slave

Master Slave 1.Morte ultimo slave 2. Divento il nuovo ultimo slave 3. Mando la nuova Address chain al master 3. Recovery, New Address chain 4. New Address chain Crash o caduta dell’ultimo slave

Master Slave 2 Slave 3Slave 1 1.Problemi con una certa coda… 2.Mando conteiner queue 2. Send Conteiner queue 2. Conteiner queue + my queue 2. Conteiner queue + my queue Conteiner queue 3. Send Winner Queue Winner Queue Errori interni

Prototipo Ambiente di sviluppo: java; Ambiente di sviluppo: java; Manager: classi java e solo alcuni di loro sono thread; Manager: classi java e solo alcuni di loro sono thread; Comunicazione tra i server: socket stream; Comunicazione tra i server: socket stream; Per ogni canale di comunicazione: thread receiver + switcher per la distribuzione del messaggio ai manager(interfaccia IListener); Per ogni canale di comunicazione: thread receiver + switcher per la distribuzione del messaggio ai manager(interfaccia IListener); Il proxy comunica con il master attraverso java RMI; Il proxy comunica con il master attraverso java RMI; Oggetti presenti nell’rmiregistry: serviceManager e il Chain Oggetti presenti nell’rmiregistry: serviceManager e il Chain serviceManeger: servizio delle code; serviceManeger: servizio delle code; Chain: permette al proxy di avere informazioni su tutta la catena dei server; Chain: permette al proxy di avere informazioni su tutta la catena dei server; Il proxy è stato implementato come un classe appartenente all’applicazione client; Il proxy è stato implementato come un classe appartenente all’applicazione client; Configurazione server e proxy: file xml (esempio) Configurazione server e proxy: file xml (esempio)

Conclusioni e sviluppi futuri Obiettivi rispettati Obiettivi rispettati QoS nella consegna dei messaggi e interazione tra server QoS nella consegna dei messaggi e interazione tra server Tolleranza ai guasti Tolleranza ai guasti Cluster per alta disponibilità Cluster per alta disponibilità Sviluppi futuri Sviluppi futuri Sicurezza: Sicurezza: utenti con diritti utenti con diritti Comunicazioni sicure Comunicazioni sicure DNS DNS Politiche di filtro dei messaggi Politiche di filtro dei messaggi