JARS JavaActiveReplicationSupport Anno Accademico 2004-2005 Bellocchi Marco Maria.

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

Architetture dei sistemi distribuiti Prof
Progetto Mini di Sistemi Distribuiti – AA 2007/08 Secure Group Communication with GDH.1 Alessandro Licata Caruso Matr:
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
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:
Presentazione del progetto di: Reti di calcolatori L-S Matteo Corbelli.
Supporto per servizi di File Hosting Presentazione di progetto per lesame di Reti di Calcolatori LS Valerio Guagliumi
Delay Tolerant Networking Service per SAMOA. Il framework SAMOA SAMOA è un framework che consente di gestire e popolare la rete sociale e propagare a.
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.
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.
PERMESSO PERsistent MESSaging in ad hOc networks Corso di Reti di Calcolatori L-S AA Presentazione di Roberto Gamboni Progetto di Giuseppe Vitalone,
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
H A F S High Availability File System. Obiettivi Realizzare un servizio di File System che sia: Accessibile Fruibile in remoto e condiviso da tutti gli.
DEIS Università di Bologna
High-Available Service Manager Diego Costantini Università degli studi di Bologna Corso di Laurea Specialistica.
Progetto di Reti di Calcolatori LS a cura di Gesualdi Marco Miniello Giuseppe Vukovic Veljko.
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
Progetto di Reti di Calcolatori L-S Orchestrazione di servizi WEB
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
BROKER SERVER Progetto di Ingegneria del Web 2008 Alessio Bianchi Andrea Gambitta Giuseppe Siracusano.
Fanelli Mario Montanari Marco Salbaroli Francesco
File system distribuito transazionale con replicazione
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Progetto RE.VE.N.GE. CORBA REliable and Versatile News delivery support for aGEncies Realizzazione del Sistema di Consegna UNIVERSITA’ DEGLI STUDI DI BOLOGNA.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito Studente: Luca Monaco Anno Accademico
Music Everywhere BlueTooth project – MasterProxy Albertin Marco.
Producer – Consumer System Di Carlo Matteo CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS A.A. 2004/2005.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
Support for Emulation of Services and Applications in Mobile Environments with Bluetooth Gruppo: Davide Bonomo Salvatore Baglieri Referente: Ing. Dario.
Studio di una soluzione distribuita per la gestione di un centro sondaggi.
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
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
P2P Reliable Multicast Messenger Progetto e realizzazione di un software peer to peer per comunicazioni di gruppo.
Progetto di un sistema di comunicazione di gruppo con multicast causale Reti di Calcolatori L-S Marco Canaparo Matricola
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.
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
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.
Progetto RE.VE.N.GE. MQ REliable and VErsatile News delivery support for aGEncies Sistema di Distribuzione Reti di Calcolatori LS – Prof. Antonio Corradi.
Reti di Calcolatori LS - Fabio Poli 15 Giugno 2006 Sviluppo di un player di Campo Minato multigiocatore con supporto di Chat MultiCast.
Proxy based infrastructure for LBS availability Reti di Calcolatori LS Serena Agresti.
Alex Marchetti Infrastruttura di supporto per l’accesso a un disco remoto Presentazione del progetto di: Reti di calcolatori L-S.
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Layered Grid Architecture. Application Fabric “Controlling elements locally”: Access to, & control of, resources Connectivity “Talking to Grid elements”:
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.
Reti di Calcolatori L-S Professor Antonio Corradi A.A Sistema Publish-Subscribe per la Gestione degli Eventi della Provincia di Rimini Provincia.
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Transcript della presentazione:

JARS JavaActiveReplicationSupport Anno Accademico Bellocchi Marco Maria

Obiettivi Realizzazione di un supporto per sistemi distribuiti per lalta disponibilità Architettura Modulare Facilità despansione del supporto e semplicità di impiego Concetto di Risorsa Entità che permette di erogare servizi Replicazione Attiva Coordinazione tra Copie Attive Monitoring dei nodi HeartBeat

Obiettivi Bilanciamento di carico Fault Tollerance Protocolli e Meccanismi Protocollo decentralizzato di Mutua Esclusione Two Phase Commit Protocol Vector Clock e relazione di Lamport QoS Gestione della QoS Monitoring per controllo della QoS erogata

Architettura Generale RMI Socket Client Proxy RM I Sock et Richieste Callback Coordination Protocol File MAILBO X CHAT QUEUE Resources Mutua Esclusione Distribuita Two Phase Commit Protocol Protocollo di Recovery Protocollo Gestione Gruppo … Services Coordinamento Comunicazione

Risorse Entità gestite dai Server Replicate su ciascun Server Ognuna ha un identificativo univoco (ID) Permettono lerogazione di servizi sollecitate da richieste di Client Riflessività Definizione dellinterfaccia di operazioni visibili al cliente che possono essere richieste Invocazione dinamica di operazioni

Proxy Client Discovery Server Manager Servers Routing Table Communication with Client Application Comunication with Server Entity Failover Manager Applicazione locale a quella Client Trasparenza dalla locazione e di comunicazione tra Client e Server Applicazione Client svincolata dalla diretta conoscenza del gruppo di Server e del Server a cui è connesso Gestione della comunicazione tra Client e Server Discovery completamente dinamico nella rete locale dei Server attivi che erogano il servizio Routing Table e mantenimento di informazioni di carico dei Server per realizzare bilanciamento di carico Failover in caso di guasto Monitoraggio del Server a cui il Client è connesso per maggiore reattività in caso di guasto Comunicazione tramite RMI Richieste dal Cliente verso il Server Callback dal Server

Server Messages to other Server Client Manager GUI Listener for Incoming connection of a Server Node Client Request Manager HeartBeat Manager Receiver of incoming messages From another Server Receiver of incoming messages From another Server Receiver of incoming messages From another Server Discovery Listener Discovery Sender Connection Manager Coordinator Bridge Group Protocol Coordinator TwoPhase Protocol Coordinator Mutex Protocol Coordinator Recovery Protocol Coordinator …….. Configuration Manager Network AdministratorClient Proxy Comunication Incoming Messages

Server Comunicazione con Proxy Client tramite RMI Discovery completamente dinamico per individuare un altro elemento attivo nella rete locale e realizzare il gruppo di erogazione dei servizi Anche connessione esplicita verso un certo server di cui si conosce lindirizzo HeartBeat per rilevazione di possibili guasti dei nodi Possibilità di regolare runtime la frequenza del controllo per adattare il monitoraggio alla qualità o a una particolare esigenza Possibilità di richiedere al Server di non monitorare affatto Recovey in caso di guasto e controllo della consistenza delle risorse sui nodi Verifica di eventuali inconsistenze e correzioni basate su algoritmo di voting Possiede e gestisce le Risorse Riceve le richieste via Client Proxy per erogare un servizio Callback verso il Client Proxy se necessario Replicazione Attiva Risorse replicate su tutti i nodi Coordinazione con le altre copie per mantenere la consistenza delle risorse sui servers a fronte di richieste del client che ne modificano lo stato Approssimazione della perfetta sincronia Utilizzo del protocollo di mutua esclusione distribuito per laccesso, utilizzo e rilascio della risorsa

Semantica delle Richieste del Client Esecuzione senza notifica Il Client specifica nella richiesta di accesso alla risorsa lazione che deve essere effettuata su di essa, e non vuole essere notificato quando questo accade Fire and Forget Notifica-Esecuzione con rilascio implicito Il Client specifica solo la volontà di acquisire il lock della risorsa Il Server notifica il cliente quando ha acquisito il lock Callback Il Client realizza nel metodo-callback specificato le operazioni sulla risorsa inviando al server le azioni da eseguire su di essa e non effettua esplicitamente lunlock Il Server esegue quanto richiesto e effettua lunlock quando tutte le azioni sulla risorsa sono concluse Notifica-Esecuzione-Rilascio esplicito Semantica simile alla precedente Unlock deve essere effettuato esplicitamente dal cliente Il Server eventualmente può forzare il cliente a effettuare lunlock sulla risorsa Negli ultimi due casi discussi il Server monitorizza il Client che correntemente ha ottenuto laccesso alla risorsa e può utilizzarla Permette di accorgersi di eventuali cadute del Client e di effettuare quindi lunlock della risorsa

Discovery Broadcast su rete locale mediante messaggi UDP Molteplici applicazioni del meccanismo: Individuazione di Server attivi Proxy Client to Server per connettere applicazione Client a un Server Server to Server per creare gruppo di lavoro Informazioni riguardanti il carico di ciascun Server attivo sulla rete locale Informazioni utilizzate per bilanciare il carico del sistema Ogni Server stesso numero di Proxy Client connessi Utilizzato anche per monitoraggio della QoS erogata Permette di individuare i Server in una rete a conoscenza zero

Coordinazione Copie Attive Il Client tramite proxy invia la richiesta per effettuare operazioni su una risorsa Il Server utilizza per poter acquisire il diritto di utilizzare la risorsa il protocollo di mutua esclusione distribuito Ricart & Agrawala Mutua esclusione per Ordinamento Atomico di operazioni su una stessa risorsa Per ogni Risorsa Una coda contenenti messaggi di richieste di accesso Logical Clock Ogni Server ha una priorità acquisita dinamicamente allingresso del gruppo

Coordinazione semplice Queue_Resource S1 S3 S2 S1_Ask_Queue S3_Ok_Queue S2_Ok_Queue S3_Ok_Queue S1_Release_Queue Lock della risorsa acquisito: inserisce/estrae un messaggio Update_Queue

Coordinazione con richieste concorrenti Queue_Resource S1 S3 S2 S1_Ask_Queue S2_Ask_Queue S1_Ask_Queue S2_Ask_Queue Ipotiziamo che S1 e S2 hanno rispettivamente lo stesso timestamp nel messaggio di richiesta che si sono inviati a vicenda S2 ha priorità maggiore di S1, quindi non effettua il reply immediato S1 si accorge di essere meno prioritario di S2 e pur avendo stesso timestamp, deve necessariamente dare lok a S2 S3_Ok_Queue S1_Ok_Queue Lock della risorsa acquisito: inserisce/estrae un messaggio Update_Queue S2_Release_Queue S2_Ok_Queue Lock della risorsa acquisito: inserisce/estrae un messaggio, Effettua lupdate della coda e Effettua infine il rilascio

Gestione Dinamicità del Gruppo dei Servers 1-Enter_Group 2-Freeze&Update Resources 3-Ok_To_Enter 4 -Enter_Group 6-Ok_To_Enter 7-Update_Resources 5-Freeze&Update Resources Nodo Entrante 8-Unfreeze_Resource Necessità di effettuare un momentaneo freeze del servizio affinchè il Server entrante possa copiare le risorse in uno stato consistente con il gruppo I Servers congelati bufferizzano le richieste dei Client che non vengono perse ma servite in ritardo Altre possibilità più efficienti… Una volta effettuata la copia delle risorse, il server entrante invia il messaggio di scongelamento Il gruppo incomincia ad erogare i servizi a partire dalle richieste che sono state bufferizzate Il Server entrante ottiene dinamicamente la priorità al momento del join con il gruppo

Gestione Dinamicità del Gruppo dei Servers 1-Leave_Group 2- Update_Routing_Table Nodo Uscente Alluscita del nodo, ciascun Server deve aggiornare la propria Routing Table Ogni Server deve eliminare i messaggi di Ask_Lock_IdResource e Ok_Lock_IdResource pendenti appartenenti al nodo uscito In questo modo si può continuare ad erogare il servizio non appena tutti si sono aggiornati alla nuova situazione

HeartBeat I Server si controllano a vivenda mediante messaggi di HeartBeat Se ci si accorge o si presume che un nodo sia caduto Eliminazione dei messaggi di Ask_Lock_IdResource e Ok_Lock_IdResource pendenti appartenenti al presunto nodo caduto Possibilità di inconsistenza sulle risorse se il server caduto ha modificato la risorsa e non ha eseguito lupdate su tutti i nodi Necessità di un protocollo che permetta di controllare ed eventualmente rendere consistenti le risorse replicate sui vari nodi Il Server effettua il freeze delle risorse e bufferizza le richieste dei Client Il Server notifica agli altri elementi di aver terminato il freeze e si mette in attesa di ricevere da tutti lo stesso messaggio Ricevuti tutti i messaggi di freeze, il sistema si trova in uno stato di congelamento globale Il Server invia a tutti lo stato delle proprie risorse locali, aspettando di rivevere altrettanto da tutti i Server del gruppo Una volta acquisita la conoscenza globale, si impiega un algoritmo di voting Si modifica eventualmente lo stato delle risorse in accordo a quello concordato dalla maggioranza dei Server Il Server invia il messaggio che indica la fine del recovery e si mette in attesa della ricezione dello stesso messaggio da parte di tutti gli altri Si possono infine scongelare le risorse e riattivare i servizi servendo le richieste dei Client Recovery del Gruppo

Servizi e meccanismi aggiuntivi Realizzazione del protocollo Two Phase Commit Proprietà Tutto o Niente Utilizzato per inserire nel sistema nuove risorse dinamicamente Per un possibile coordinamento tra le copie Implementazione dei Vector Clock di Lamport API per laggiornamento e la gestione dinamica dei vector clock. Non sono ancora state implementate politiche di base da utilizzare per relizzare uno specifico ordinamento di determinati eventi allinterno del sistema

QoS: Broker Broker associato ad ogni Risorsa per garantire una determinata QoS nellerogazione dei servizi che essa offre Richieste del Client inserite in una coda prima di essere processate Broker realizza scheduling delle richieste di utilizzo delle risorse da parte dei Clienti manipolando la coda In base alla priorità del Cliente Prima quelli che pagano di più In base al tipo di richiesta eventualmente specificata dal Client Prima le richieste più brevi che occupano meno la risorsa in termini di tempo Politiche Semplici e poco impegnative nel rispetto del principio di minima intrusione!!! Client Proxy Richiesta Server Resource_A QoS Resource_A Resource_B QoS Resource_B Ordinamento delle richieste in una coda Politiche differenziate …

QoS: Monitoring Applicazione per monitoring della QoS erogata dal gruppo di Server Richieste rivolte ai Server per raccogliere informazioni per monitorare il Sistema Numero di Clienti connessi a ciascun Server Numero di Server a cui ciascuno è connesso Individuazione di partizionamento di rete Numero di operazioni eseguite in totale sulle risorse da ciascun server Utilizzo del discovery su rete locale per individuare i Server attivi Si monitorizza solo la rete locale

Implementazione concreta Risorse messe a disposizione dei Clienti Queue Counter File Chat Sperimentate le differenti semantiche di richieste del Client Lapplicazione Client comunica con il ProxyClient mediante diretta invocazione di metodi

Limiti del Supporto Canali di comunicazione devono essere affidabili Non possono essere persi messaggi, ma solo ritardati Connessioni tra Server punto a punto Grafo di connessione completo Forte over-head nellaccesso alle Risorse 2*(N-1) messaggi scambiati per ogni accesso Protocollo di recovery complesso Numero di messaggi scambiati molto elevato Scalabilità del sistema Era nota in partenza Replicazione Attiva!

Sviluppi Futuri Persistenza fisica dello stato delle risorse per salvataggio su file system ed eventuale ripristino Naming e Trading Service Ricerca dei servizi Notification Service Notifica per eventi a cui il Cliente ha espresso interesse Publish/Subscribe Servizio di Login per i Client Possibilità di gestire QoS in base alla priorità del Client Comunicazione Client-Proxy veicolata tramite protocolli standard SOAP … Possibilità di utilizzare risorse non replicate ma semplicemente partizionate su nodi differenti Il Supporto in realtà permette già una gestione simile… Architettura utilizzabile anche per alte prestazioni Tramite semplice espansione aggiungendo moduli opportini

Conclusioni Supporto facile da utilizzare e espandibile Utilizzabile per realizzare una infinità di applicazioni MOM facilmente implementabile FSDistribuiti Mailbox ad alta disponibilità … Approfondimento di molti aspetti affrontati nellambito della programmazione distribuita e nella realizzazione di Middleware