Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr: 0000171360.

Slides:



Advertisements
Presentazioni simili
Scomposizione funzionale
Advertisements

Progetto Mini di Sistemi Distribuiti – AA 2007/08 Secure Group Communication with GDH.1 Alessandro Licata Caruso Matr:
Esercitazione con socket
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Informatica (Programmazione)
Reti di Calcolatori Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore.
1 L!ve T!tle: software per la consultazione degli andamenti dei titoli di borsa online Reti di Calcolatori LS Nuzzi Nicola Mat
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
Reti di Calcolatori LS Universitá degli Studi di Bologna Remotizzazione del Framework Unibo-env Autrice: Leticia Riestra Ainsua.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
SARAH Shop Assistant in Reti Ad-Hoc Marco Montali.
Supporto allassistenza da remoto Sacchetti MauroMatr Prof. Antonio Corradi Progetto di Reti di Calcolatori LS.
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
M.A.E.A.I. Mobile Agent and Enterprise Architecture Integration Il gestore delle politiche Valerio Siri Reti di Calcolatori LS Docente: Antonio Corradi.
Progetto di una architettura per lesecuzione distribuita e coordinata di azioni Progetto per lesame di Reti di Calcolatori L-S Prof. Antonio Corradi Finistauri.
DEIS Università di Bologna
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
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Progetto di Reti di Calcolatori L-S Orchestrazione di servizi WEB
1 Reti di Calcolatori LS Prof. Antonio Corradi Progetto: Giombi Giorgio e Soffritti Luca Presentazione: Giombi Giorgio FotoContest Il primo servizio interamente.
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.
Il modello di riferimento OSI
Fanelli Mario Montanari Marco Salbaroli Francesco
Java Remote Method Invocation (RMI)
File system distribuito transazionale con replicazione
Simulatore per un servizio di consistenza su architettura Grid
Lazienda SC Informatica si occupa della progettazione e della realizzazione di sistemi informatici dedicati alle farmacie. Fornisce inoltre un servizio.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Progetto di un Agente per l’Apprendimento mediante Alberi Decisionali in ambito distribuito Studente: Luca Monaco Anno Accademico
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.
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.
Sistema di replicazione master-multislave con server di backup per un servizio di chat di Marco Andolfo matr
Progetto e prototipazione di una infrastruttura di comunicazione per il supporto al monitoraggio distribuito del traffico di rete Progetto di Reti di Calcolatori.
Proxy-Based Infrastructure for LBS Tailoring Reti di Calcolatori LS – Prof. A. Corradi Presentazione di: Roberto Amici Gruppo: Roberto Amici Alessandro.
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Search Engine Distribuito e Replicato Corso di Reti di Calcolatori LS Andrea Boari –
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.
Progetto di un Gestore di Nomi Corso di Reti di Calcolatori L-S prof. Antonio Corradi A.A 2003/2004 Autore: Molesini Ambra.
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.
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
Servizi continui su rete IEEE – Music Everywhere Presentazione di Alberto Mercati Reti di Calcolatori 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.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Bacheca: Supporto alla creazione e diffusione di annunci basato su CORBA Corso di Reti di Calcolatori LS Prof. Antonio Corradi Progetto di Elisa Addimanda.
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.
Mobile Agent and Enterprise Architecture Integration Il Gestore di Librerie e Servizi Lambertini Riccardo.
Hattrick Stadium Corso di Reti di Calcolatori LS Anno Accademico 2005/2006 Dolif Emilano matr
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.
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Supporto per la replicazione attiva di servizi Progetto per il corso di Reti di Calcolatori LS Montanari Mirko Matr:

Scopo del progetto Creare una estensione di Jeri, meccanismo di invocazione remota di Java, in modo da consentire una (quasi) trasparente replicazione attiva di un servizio remoto.  Attualmente Java non fornisce meccanismi per replicare servizi offerti attraverso invocazione remota. Utilizzando l’infrastruttura sviluppata è molto semplice convertire un servizio qualunque in un servizio replicato. In questa presentazione …  Funzionamento ed architettura del sistema  Come è stato realizzato estendendo un meccanismo di invocazione remota di Java  Piccolo servizio di esempio

Replicazione Attiva Normalmente una invocazione remota in Java è strutturata come segue: Invocazione remota di un servizio Nel caso della replicazione attiva si vuole che la richiesta di servizio non sia eseguita soltanto da un calcolatore, ma da un gruppo di repliche. Replicazione attiva: Tutti eseguono l’operazione richiesta e si accordano per il risultato da restituire al cliente

Requisiti del supporto Replicazione attiva  Maggiore resistenza ai guasti: Se il gruppo è formato da 3t repliche, può tollerare guasti bizantini su t di esse  Ognuna delle repliche del servizio può anche implementare algoritmo diversi Supporto trasparente  Scrivere un cliente che utilizza un servizio replicato deve essere equivalente a scrivere un normale cliente che usa un servizio remoto nomale.  Adattare un servizio alla replica deve essere una operazione semplice e legata alla logica del servizio stesso. Ciò che non dipende dalla logica del servizio deve essere svolto dal supporto.

Funzionamento del sistema Il cliente deve interagire come se stesse dialogando con un servizio non replicato  Interazione con un coordinatore 1. Arrivo richiesta 2. Coordinazione copie 3. Esecuzione 4. Accordo finale 5. Risposta al cliente E in caso di guasto? Ingresso ed uscita di repliche dal gruppo è gestito da ogni replica comunicando con il master Servizio dei nomi Coordinatore Cliente Richiesta con id univoco Fasi dell’interazione:

Guasti al sistema Durante il funzionamento del sistema possono verificarsi guasti. Condizione di funzionamento del sistema:  Almeno una replica ed un servizio dei nomi raggiungibile dai client. Tipologie di guasto tollerate:  Sistema di 3t risorse tollera t guasti bizantini Il guasto non deve però presentarsi nella fase di raccolta e distribuzione delle richieste da parte del coordinatore. E’ tollerato un guasto fail-safe.  Network partitioning: ogni partizione che rispetta la condizione di funzionamento può continuare ad erogare il servizio Guasti possibili:  Guasto ad uno dei membri del gruppo  Fallimento del coordinatore  Network partitioning Coordinatore Nuova view

Fallimento del coordinatore (Server) Ogni partecipante al gruppo ha un numero univoco che lo identifica Elezione attuata attraverso l’algoritmo bully per funzionare con invocazione remota sincrona e bloccante. Coordinatore (fallito) ID: 12 1: ping 2: election 3: election 4: election coordinator L’errore in un ping fa iniziare il processo di elezione Group Member ID: 9 Group Member ID: 4 Group Member ID: 1 Si accorge di essere il membro con il più alto id della view e si dichiara nuovo coordinatore Coordinatore eletto fra i membri del gruppo

Fallimento del coordinatore (Client) Al fallimento del coordinatore anche il cliente perde il suo interlocutore.  Deve essere fatta una nuova interrogazione al servizio dei nomi per ottenere il riferimento al nuovo coordinatore  Procedura effettuata in automatico dallo stub del cliente. Vecchio coordinatore Nuovo coordinatore id: 342 La presenza di un identificativo univoco di ogni richiesta impedisce che la richiesta sia eseguita più volta  Semantica at-most-once

Partizionamento della rete Il partizionamento è un fallimento che dividono le rete in due partizioni.  I calcolatori che sono all’interno della stessa partizione possono comunicare fra di loro, ma non con altri contenuti in altre partizioni. Ogni partizione deve contenere un servizio dei nomi e una delle repliche Coordinatore ping Coordinatore elezione New view

Merge di due partizioni Quando un guasto di partizionamento viene risolto, il sistema si trova contemporaneamente ad avere due coordinatori.  Inoltre ognuno dei due gruppi di repliche è evoluto indipendentemente l’uno dall’altro. Necessario un coordinamento per riportare il sistema ad avere un solo coordinatore ed un solo stato.  Il calcolo dello stato finale viene demandato alla implementazione del servizio. Coordinatore ID: 56 Coordinatore ID: 32 Calcolo del nuovo stato Richiede stato e view corrente unregister Invio della nuova view e stato a tutti

Realizzazione: integrazione con Jeri Jeri è una implementazione di RMI alternativa alla standard di Java.  Basato su Jini  Consente l’estendibilità del modo in cui l’invocazione viene effettuata. Il progetto modifica il funzionamento di:  Skeleton: per implementare la distribuzione della richiesta ricevuta dal cliente alle repliche  Stub: per consentire la ricerca del nuovo coordinatore al fallimento del vecchio

Stub e Skeleton di Jeri A differenza di RMI standard stub e skeleton vengono generati dinamicamente. Lo stub è scaricato dal client alla richiesta del riferimento al coordinatore Stub e skeleton di Jeri divisi in livelli:  Trasport Layer: codica della richiesta e della risposta in maniera che possa essere inviata attraverso la rete  Object Identification Layer: Più oggetti possono essere attivati sullo stesso trasporto. Questo layer si occupa di indirizzare la richiesta all’oggetto giusto.  Invocation Layer: A lato client rende trasparente l’invocazione di un servizio remoto e, a lato server, invoca l’effettivo metodo di business.

Livelli di Jeri Programma Cliente Trasport level Object identification layer Group Invocation handler Invocation handler Trasport level Object identification layer Group invocation dispatcher Invocation dispatcher Servizio Coordinatore Servizio Group Member Livelli standard di Jeri Invocazioni remote con Jeri

Applicazione di esempio Implementato un semplice servizio di Rubrica per dimostrare il funzionamento del supporto Oltre ai metodi di business ogni servizio deve implementare:  setState(Serializable state): utilizzato per impostare lo stato iniziale della replica.  getState(Serializable state): utilizzato dal coordinatore per avere lo stato attuale della propria replica del servizio.  joinState(Serializable state): in caso di merge di due partizioni al servizio viene passato lo stato dell’altra partizione. L’applicazione deve provvedere a creare uno stato che tenga conto di entrambi (se possibile..)

Conclusioni Il supporto sviluppato permette la replicazione attiva di un servizio java, attraverso una estensione di Jeri.  Resistente ai guasti: Può tollerare vari tipi di guasto alle repliche ed è in grado di funzionare anche in caso di partizionamento  Trasparente: Non richiede nessuna modifica ad un client jeri e poche modifiche nella implementazione del servizio. Sviluppi futuri  Supporto nella concorrenza delle invocazioni. Attualmente un solo client alla volta può invocare il servizio  Scaricare il coordinatore dall’onere di dover rispondere alle richieste di sola lettura. Potrebbero essere gestite dalla replica più vicina  Utilizzo di meccanismi per la comunicazione di gruppo (multicast) per le comunicazioni fra il coordinatore e il resto del gruppo.