Progetto di un supporto per il deployment di applicazioni distribuite di Samorani Michele.

Slides:



Advertisements
Presentazioni simili
Capitolo 4 Logica sequenziale
Advertisements

Costruttori e Distruttori
PHP.
Giuseppe Fabio Fortugno.
Come programmare servizi di rete?
Architettura Three Tier
IDUL 2010 RETI E PROTOCOLLI. INTERNET.. IDEE PRINCIPALI IN QUESTA LEZIONE Reti: Aspetto logico della rete e tipologie: peer-to-peer, a hub, a bus Trasmissione.
IDUL 2009 RETI E PROTOCOLLI. INTERNET. IDEE PRINCIPALI IN QUESTA LEZIONE Reti: Aspetto logico della rete e tipologie: peer-to-peer, a hub, a bus Trasmissione.
I Thread.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
I File.
Reti di Calcolatori Reti di Calcolatori2 Il modello Client/Server I Sistemi di Rete Dal punto di vista del programmatore.
OGGETTI COMPOSTI Una classe può contenere riferimenti a altre classi (o anche a se stessa): public class Orologio { Counter ore, minuti; } Loggetto Orologio.
Aprile 2004Reti di Calcolatori LS – Servizio di Annunci Distribuito1 Reti di Calcolatori LS REALIZZAZIONE DI UN SERVIZIO DI ANNUNCI DISTRIBUITO Studente:
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
autore: Simone Artesino ( )
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.
CryptoAnalisisServer(CAS) Reti di Calcolatori LS progetto di Carpenè Michele, Busacca Fulvio Servizio distribuito basato sul calcolo parallelo per operazioni.
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.
DEIS Università di Bologna
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.
FlipFlop D Asincrono Il FlipFlop D è una rete sequenziale asincrona che si comporta da memoria. E' caratterizzato, nella versione più semplice, da 2 ingressi.
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.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Il mondo Megapos: i suoi componenti Il terminalino a raggi laser Symbol 3100 Il Personal computer I programmi di gestione.
Dischi in RAID  Redundant Array of Independent Disk Configurazione che permette di combinare più dischi secondo obiettivi di performance e ridondanza.
Progetto Message Queues Service Olivelli Enrico Corso di Reti di Calcolatori LS A.A
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.
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
Progetto di un Group Communication System Reti di Calcolatori LS A.A Giampaolo Capelli.
Multi agent System per la gestione di feed RSS. Obiettivi  Progettazione di un sistema ad agenti basato su tucson per la gestione di feed RSS  Sviluppo.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
Service Composition Analysis Progetto Reti di Calcolatori-LS prof. A.Corradi tutor S.Monti Piattaforma di gestione ed analisi statistica di workflow in.
Java Distributed Event Service Bringing events to J2EE platform Università degli studi di Bologna Corso di Laurea Specialistica in Ingegneria Informatica.
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.
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.
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
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
Servizio di visualizzazione da remoto e condivisione di album fotografici Autore: Chiarini Mattia matricola
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano.
Live auction un’ infrastruttura di supporto per aste in tempo reale basata su JMS. Autore: Andrea Ceruti Matricola: Corso: Reti Di Calcolatori.
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
Mots, programmazione collaborativa di Ettore Ferranti.
Pari Gioia Reti Di Calcolatori LS A.A. 2003/04.
Eprogram informatica V anno.
Interazione Persona Computer prova di progetto Gruppo: IO Componenti: Carlo Solimando Sito analizzato:
Introduzione alle Classi e agli Oggetti in Java 1.
DNS HA
Transcript della presentazione:

Progetto di un supporto per il deployment di applicazioni distribuite di Samorani Michele

Obiettivi Realizzare supporto per deployment di componenti interagenti Realizzare supporto per deployment di componenti interagenti Allocazione risorse dinamica Allocazione risorse dinamica Approccio esplicito Approccio esplicito Deployment effettuabile da console di comando (Master) Deployment effettuabile da console di comando (Master) I nodi destinazione devono caricare dinamicamente le classi che vengono distribuite I nodi destinazione devono caricare dinamicamente le classi che vengono distribuite

Caratteristiche Ipotesi Ipotesi Guasto singolo (ma non del registry) Guasto singolo (ma non del registry) In alcuni casi guasto multiplo In alcuni casi guasto multiplo Messaggi non persi Messaggi non persi Tecnologie usate Tecnologie usate OSGi OSGi RMI RMI Paradigma della rete di interazione Paradigma della rete di interazione TuProlog TuProlog

Paradigma della rete di interazione (framework uniboEnv) KERNEL Actor_1Actor_2Actor_3 KB sendSignal(actionName,args) Cliente istanzia actors istruisce 1.Cliente: kernel.reactInteraction (Actor_1, Actor_2, “inc”) 2.Actor_2: kernel.sendSignal(“inc”, args) 3.Actor_1: void doAction (String actionName, Object args) {…} ESEMPIO

Architettura fisica MasterSupport RMI registry RmiServer OSGiServer 2 OSGiServer 1 Macchina master Macchina 1 Macchina 2 Macchina registry ApplicazioneMaster bundle2 bundle1 Disco master KB bundle1bundle2bundle1 Factory di actor

Architettura di un nodo (OsgiServer) KB i-ma OSGi i-mo Actor_1 Actor_2 Actor_3 remotingSupport i-mo KERNEL i-mo FactoryManager

Architettura logica Cliente KB OsgiServer KB OsgiServer KB MasterSupport actor segnale nodo INVOCA API Master Application

declarePhisicalNode (nomeNodo, IP) declarePhisicalNode (nomeNodo, IP) Configura (rinomina) un nodo non configurato Configura (rinomina) un nodo non configurato declareFactory (tipo, bundleLocation) declareFactory (tipo, bundleLocation) Dichiarazione di una factory di actor contenuta in un bundle Dichiarazione di una factory di actor contenuta in un bundle deployActor (tipo, nomeActor, nomeNodo) deployActor (tipo, nomeActor, nomeNodo) Installa la factory corrispondente nel nodo remoto Installa la factory corrispondente nel nodo remoto Istanzia un actor Istanzia un actor remoteReactInteraction (reactor, emitter, actionName) remoteReactInteraction (reactor, emitter, actionName) Creazione di un canale comunicativo tramite riferimento remoto / supporto javaBeans Creazione di un canale comunicativo tramite riferimento remoto / supporto javaBeans removeInteraction (reactor, emitter, actionName) removeInteraction (reactor, emitter, actionName) Distruzione di un canale comunicativo Distruzione di un canale comunicativo destroyActor (nomeActor, todoMode) destroyActor (nomeActor, todoMode) Distruzione di un actor Distruzione di un actor API del master support Ogni azione scrive / cancella una tupla in tutte le KB

Nodo MasterSupport Nodo IOsgiServer_ _ ). Master declareNode (n1, ) n1 n1 IOsgiServer_ _ ).n2 n2 declareNode (n2, ) declareFactory (counter,d:\bundles\b1.jar) deployActor(counter, c1, n1) declareFactory (gui,d:\bundles\b2.jar) installBundle c1 deployActor(counter, c1) deployActor(gui, g1, n2) g1 remoteReactInteraction (c1, g1, inc) c1_ref Se entrambi gli actor sono sullo stesso nodo, supporto javaBeans DEMO 1: n1: g1,c1 n2: g2 g1,g2->c1 c1->g2

Failure di un nodo non master: Failure di un nodo non master: Occorre rimuovere l’entry dal registry Occorre rimuovere l’entry dal registry Occorre rimuovere eventuali riferimenti remoti inconsistenti Occorre rimuovere eventuali riferimenti remoti inconsistenti Occorre aggiornare la teoria Occorre aggiornare la teoria Failure del nodo Master: Failure del nodo Master: Il sistema deve continuare a rispondere correttamente ai solleciti del cliente durante tutto il TTR del master Il sistema deve continuare a rispondere correttamente ai solleciti del cliente durante tutto il TTR del master Il master, al rientro, deve poter reperire lo stato aggiornato del sistema Il master, al rientro, deve poter reperire lo stato aggiornato del sistema Tolleranza ai guasti: OBIETTIVI

Chi se ne accorge avvisa il Master Chi se ne accorge avvisa il Master Il Master aggiorna e diffonde la nuova teoria priva delle clausole riguardanti il nodo Il Master aggiorna e diffonde la nuova teoria priva delle clausole riguardanti il nodo Fallimento di un nodo X Avviso il master DEMO 2: c1 fails

Agli occhi del cliente (≠ MasterApplication) tutto continua a funzionare Agli occhi del cliente (≠ MasterApplication) tutto continua a funzionare Il master, ogni volta che cambia lo stato del sistema, propaga una tupla a tutti i nodi (con Logical Clock), che la registrano nella propria KB Il master, ogni volta che cambia lo stato del sistema, propaga una tupla a tutti i nodi (con Logical Clock), che la registrano nella propria KB Il master, quando entra nel sistema: Il master, quando entra nel sistema: Si accorge (dal registry) se ci sono nodi configurati. Si accorge (dal registry) se ci sono nodi configurati. Cerca chi ha la KB più aggiornata, la carica e la inoltra a tutti i nodi Cerca chi ha la KB più aggiornata, la carica e la inoltra a tutti i nodi Il caso peggiore è quando il master modifica lo stato (i.e. i riferimenti remoti) Il caso peggiore è quando il master modifica lo stato (i.e. i riferimenti remoti) Failure del Master es. remoteReactInteraction: c1 -> g2 (“updateVal”) Master Nodo di g2 aggiunto riferimento a g2 Agg. teoria Divulgazione teoria Agg. teoria Nodo di c1 DEMO 3: master exit Il sistema risponde bene anche durante il TTR del master!!!

Il master elimina tutti i riferimenti remoti Il master elimina tutti i riferimenti remoti Il master distrugge actorName aspettando che finisca di lavorare Il master distrugge actorName aspettando che finisca di lavorare Se todo==true Se todo==true All’inizio il master scrive todo:destroyActor(actorName) in un nodo a caso All’inizio il master scrive todo:destroyActor(actorName) in un nodo a caso Il nodo “todo” comincia a monitorare il master. Il nodo “todo” comincia a monitorare il master. Se si accorge che il master è fallito senza cancellare la clausola todo, si incarica di ripetere destroyActor Se si accorge che il master è fallito senza cancellare la clausola todo, si incarica di ripetere destroyActor Al termine, cancella la clausola todo Al termine, cancella la clausola todo destroyActor (actorName, todo)

CounterActor CounterActor Input: “inc” -> incrementa un contatore Input: “inc” -> incrementa un contatore Output: “updateVal (int newVal) “ Output: “updateVal (int newVal) “ Anche versione lazy, fail Anche versione lazy, fail GuiActor GuiActor Input: “updateVal (int n)” -> visualizza n Input: “updateVal (int n)” -> visualizza n Output: “inc” : se viene premuto il tasto inc Output: “inc” : se viene premuto il tasto inc MasterSupport MasterSupport Realizzato anche in versione fail (fallisce durante destroyActor) Realizzato anche in versione fail (fallisce durante destroyActor) Prove Prove Eseguite prove su 3 macchine in rete locale (LAB2) Lenta la reazione del supporto in caso di guasti (oltre 10 sec) Lenta la reazione del supporto in caso di guasti (oltre 10 sec) TEST DEMO 4: c1 lazy Master fails

Progetto di un registry RMI ad alta disponibilità e affidabilità… Progetto di un registry RMI ad alta disponibilità e affidabilità… Messaggi master – nodo non bloccanti… Messaggi master – nodo non bloccanti… Segnali tra gli actor con diverse semantiche (asincroni,…) Segnali tra gli actor con diverse semantiche (asincroni,…) Sviluppi futuri