Java Service Replication Mattia Righini Mat: 0000170738.

Slides:



Advertisements
Presentazioni simili
XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Advertisements

Meccanismi di IPC Problemi classici di IPC
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
PHP.
Java Enterprise Edition (JEE)
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
AMBIENTE CONTESTO NEL QUALE UN’ORGANIZZAZIONE OPERA, COMPRENDENTE L’ARIA, L’ACQUA, IL TERRENO, LE RISORSE NATURALI, LA FLORA, LA FAUNA, GLI ESSERI UMANI.
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
rendicontazione delle Aziende Sanitarie
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Processi Aleatori : Introduzione – Parte I
Risorse e Stallo.
1 Anatomia di una pagina Un insieme di pagine web hanno generalmente una parte invariante (o poco): header, navigazione, footer una parte variabile: contenuti.
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
1Milano, 3 Novembre 2004Assemblea Nazionale FISM WORKSHOP La certificazione dei requisiti di qualità per le Società Medico-Scientifiche Presentazione del.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
I File.
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
A Reliable Message Oriented Middleware based on Publish and Subscribe paradigm Mirko Matoffi a.a. 2003/2004.
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
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.
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
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
File system distribuito transazionale con replicazione
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Livello sessione •Primo livello dal basso che compete esclusivamente all’utente. •I servizi offerti sono: – le attività –i punti di sincronizzazione –i.
1 di 15 Università degli studi di Modena e Reggio Emilia Mail Configurator: un’applicazione ad agenti mobili basata su ruoli dinamici Correlatori: Ing.
Università degli studi di Pavia Facoltà di Economia a.a Trasparenza dell’Informativa Finanziaria.
Modulo 5 - Database. Contenuti della lezione 5.1.1Concetti Fondamentali 5.1.2Organizzazione di un Database 5.1.3Relazioni 5.2.1Lavorare con i database.
Reti Stratificazione del Protocollo. 2 Andrea Asta I protocolli oSpecificano e Rendono Comprensibile la comunicazione oNon è necessario conoscere.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Programmazione ad oggetti
Reti di calcolatori LS Enrico Pirazzini SSB un middleware basato su JMS per l'invocazione di servizi remoti.
Diagramma delle Classi
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
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.
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
STUDIO SULLA REPLICAZIONE DEGLI AGENTI NEL SISTEMA SOMA Andrea Sambi.
Bonjour Post-It servizio di post-it distribuito di Elisa Rondini.
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.
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.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Reti di calcolatori LS1 Service Middleware Reti di calcolatori LS progetto di Andrea Belardi Infrastruttura dedicata alla gestione di servizi disponibili.
Middleware per la sincronizzazione di ambienti eterogenei Progetto di Reti di Calcolatori LS Emanuele Crescentini matr Ingegneria Informatica LS.
1 RE.VE.N.GE CORBA REliver and VErsatile News delivery support for aGEncies. Sistema per la creazione di notizie e la loro trasmissione sul sistema di.
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.
Servizio di visualizzazione da remoto e condivisione di album fotografici Autore: Chiarini Mattia matricola
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.
JDICS Java Dynamic Infrastructure for C/S systems Laura Galli matr Reti di calcolatori LS, Prof. A.Corradi A.A
Le basi di dati.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Transcript della presentazione:

Java Service Replication Mattia Righini Mat:

Java Service Replication 2 Obiettivi Il progetto si propone di realizzare una semplice infrastruttura che: consenta la fruizione mediata di servizi garantisca una continuità di servizio in presenza di fault o disconnessione del corrispondente provider L’architettura proposta è stata realizzata in Java utilizzando RMI come metodo per la comunicazione e l’interazione tra i componenti che la costituiscono.

Java Service Replication 3 Architettura Generale Client Broker Providers Servizio A Principio Base: Un Client che necessita di un determinato servizio non accede direttamente ad esso ma si rivolge ad un mediatore (Broker) il quale si incarica di inoltrare le richieste al fornitore del servizio e di recapitarne le relative risposte.

Java Service Replication 4 Ruolo dei Componenti Client Entità che necessità di uno o più servizi esterni per la propria logica applicativa. Per ottenere tali servizi si rivolge ad una entità detta Broker. Prima di effettuare qualunque richiesta al Broker il Client deve identificarsi, in tal modo il Broker può applicare politiche diverse di gestione delle richieste a seconda della rispettiva provenienza.

Java Service Replication 5 Ruolo dei Componenti Provider Entità che fornisce un determinato servizio. Ciascun servizio è caratterizzato da: un nome un’interfaccia uno stato L’interfaccia specifica quali richieste possono essere inviate al provider e con quali modalità. Lo stato di un servizio può influenzare le risposte fornite da un provider e riassume le interazioni passate.

Java Service Replication 6 Ruolo dei Componenti Broker Entità mediatrice fra Client e Provider. Disaccoppia le due classi di entità e ha la responsabilità di: gestire le richieste provenienti dai Client gestire l’insieme dei provider disponibili Il Broker è pensato per gestire diversi tipi di servizi, è quindi necessario che i Client possano: verificare quali siano i servizi disponibili effettuare richieste verso specifici servizi I Provider all’atto della registrazione presso un Broker devono invece specificare il tipo di servizio che intendono offrire.

Java Service Replication 7 Architettura (estensioni) Essendo il Broker l’entità centrale dell’architettura ed essendo presumibile la presenza di molti Client e molti servizi (ciascuno con il proprio insieme di Provider) risulta evidente come questo componente possa costituire il collo di bottiglia del sistema, per tale ragione fin dalle prime fasi di progetto dell’architettura si è pensato di introdurre la possibilità che più Broker possano gestire lo stesso insieme di servizi.

Java Service Replication 8 Architettura (estensioni) L’architettura così ottenuta può essere riassunta con il seguente diagramma. Client1 Broker1 Providers Servizio A Broker2BrokerN Providers Servizio B Client2 ClientN Client3 Richieste provenienti da Client1 e Client3 possono competere se richiedono lo stesso servizio. Richieste provenienti da Client1 e Client2 competono per l’uso del Broker1 indipendentemente dal servizio richiesto.

Java Service Replication 9 Caratteristiche Modello di comunicazione La comunicazione fra i componenti dell’architettura è di tipo sincrono, ovvero considerando due componenti uno “client” e uno “server”, il client dopo aver effettuato una richiesta al server rimane in attesa della risposta. Locking Possibilità da parte di un Client di ottenere un lock esclusivo su di un servizio, attraverso tale operazione il sistema garantisce che solo richieste provenienti da tale Client saranno servite mentre richieste provenienti da altri Client rimarranno in attesa che il lock venga rimosso.

Java Service Replication 10 Modello di replicazione dei servizi Il modello scelto per la replicazione dei servizi è un modello di tipo passivo a copie calde. Per un determinato servizio:  esiste un insieme di Provider disponibili  in un determinato istante uno e uno solo di questi è attivo  i Broker che gestiscono il servizio rivolgono le richieste sempre verso il provider attivo L’attivazione è sotto il controllo dei Broker, nel momento in cui il provider correntemente attivo sperimenta un fault il Broker che rileva per primo il fault provvede all’attivazione di un nuovo provider; il servizio resta disponibile per i clienti fino a che esistono dei provider per esso.

Java Service Replication 11 Modello di replicazione dei servizi Gestione dello stato La consistenza dello stato è responsabilità dell’azione congiunta dei Brokers e del Provider attivo; a differenza degli schemi classici di replicazione passiva il checkpoint è infatti effettuato dal Provider attivo (master) non sulle copie inattive (slave) ma sui Broker. Ogni Broker mantiene quindi una copia dello stato di ciascun servizio gestito; tale copia, aggiornata durante le operazioni di checkpoint, viene utilizzata durante le operazioni di riattivazione, cioè nel momento in cui il provider correntemente attivo deve essere sostituito con uno nuovo.

Java Service Replication 12 Modello di replicazione dei servizi Controllo del Master e ruolo degli Slave Altra differenza rispetto agli schemi classici di replicazione passiva è Il controllo del corretto funzionamento del provider attivo, tale controllo infatti non è affidato ai provider inattivi ma ai Broker. Dalle affermazioni precedentemente fatte si deduce che il ruolo delle copie slave nel sistema si limita al rendersi disponibile a fornire il servizio e a restare in attesa dell’attivazione. Diagramma di Stato di un Provider

Java Service Replication 13 Funzionalità per i Client: Login Logout GetServiceList GetServiceInterface Lock/Unlock Service SendRequest Funzionalità per i Provider: RegisterService UnRegisterService NotifyActivation GetCurrentStatus UpdateStatus ResetStatus Funzionalità Componenti: Broker Queste operazioni possono essere eseguite solo da Client che hanno effettuato correttamente il Login. Queste operazioni possono essere eseguite solo dal Provider attivo.

Java Service Replication 14 Funzionalità Componenti: Provider Funzionalità per i Broker: Alive Activate GetInterface GetStatus SetStatus SendRequest Lock/Unlock Queste operazioni possono essere eseguite solo sul Provider attivo.

Java Service Replication 15 Implementazione Come già accennato in precedenza il sistema è stato implementato in Java; come meccanismo di comunicazione/interazione è stato utilizzato RMI. Broker e Provider sono stati modellati come interfacce remote: IServiceBroker: interfaccia del Broker utilizzata dai Client IReplicationManager: interfaccia del Broker utilizzata dai Provider IReplicableService: interfaccia del Provider

Java Service Replication 16 Implementazione (note) Analizzando le interfacce citate si possono notare alcune funzionalità aggiuntive rispetto al modello presentato in precedenza, tali funzionalità sono state introdotte a seguito di alcune scelte progettuali. Identificazione univoca Provider Si è scelto di dotare ogni Provider di un identificativo univoco, tale identificativo è sfruttato principalmente per facilitare le operazioni di attivazione. Per la generazione degli identificativi viene utilizzato un servizio base (servizio replicato gestito esattamente come gli altri servizi) al quale i Broker richiedono l’identificativo da assegnare ad un nuovo Provider all’atto della registrazione.

Java Service Replication 17 Implementazione (note) Duplicazione di un Broker Per semplificare il supporto a Broker multipli si sono aggiunte al Broker funzionalità che consentono ad un altro Broker di gestire gli stessi servizi gestiti dal primo, inoltre è possibile effettuare l’operazione di registrazione dei Provider bidirezionalmente. Unlock differita Per evitare che un servizio rimanga bloccato a causa dell’impossibilità di effettuare l’operazione di unlock (per indisponibilità di provider) è stata introdotta la possibilità di differire tale operazione nel tempo.

Java Service Replication 18 Implementazione base di IReplicableService Per semplificare lo sviluppo di servizi è stata realizzata una classe astratta (AReplicableService) che implementa tutti i metodi previsti dall’interfaccia IReplicableService, il servizio ottenuto estendendo tale classe è un servizio di tipo sequenziale con checkpoint event-driven eseguito ad ogni cambio di stato. I metodi presenti nell’interfaccia (quella esposta ai Client) devono corrispondere a metodi pubblici della classe stessa, il codice della classe astratta invoca dinamicamente il metodo desiderato utilizzando la riflessione di Java.

Java Service Replication 19 ServiceManager locali ai Broker Per ogni servizio gestito è presente sul Broker un oggetto a cui è affidata la gestione locale delle richieste e la gestione dei Provider. Tali oggetti vengono chiamati ServiceManager, sono stati sviluppati due tipi di Manager: QueueLessServiceManager: serve le richieste con politica FCFS senza tener conto delle priorità dei Client richiedenti QueuedServiceManager: organizza le richieste in tante code quanti sono i livelli di priorità gestiti Entrambi i Manager sono sottoclassi della classe astratta AServiceManager che fornisce alcune funzionalità base proprie dei ServiceManager.

Java Service Replication 20 Registrazione di un Provider Broker1 Providers Servizio A Broker2 GlobalId Generator P Nuovo Provider per A 1) registerService 2) getNextId 3) registerService Inizialmente il Provider non dispone di un identificativo valido, per tale ragione il Broker1 richiede l’id da assegnare al servizio di generazione degli identificativi. Il Servizio è già noto quindi su entrambi i Broker non è necessario creare il Manager corrispondente. Infine esistendo già un provider attivo per il servizio l’operazione di registrazione non è seguita da quella di attivazione.

Java Service Replication 21 Riattivazione Servizio Broker1 Broker Providers Servizio A 1) sendRequest 3) sendRequest Il Provider attivo sperimenta un fault. Broker1 rileva il fault e verifica se il provider attivo è funzionante o meno. Non ricevendo risposta il Broker procede alla riattivazione, viene attivato il Provider inattivo con il valore di identificativo minore. La richiesta effettuata non comporta modifiche dello stato dal momento che non è evidenziata alcuna operazione di updateStatus. Client 2) gestione locale 4) alive 6) activate 7) notifyActivation 8) sendRequest 5) setStatus S(n) S(0) S(n)

Java Service Replication 22 Checkpoint Broker1 Broker Providers Servizio A 1) sendRequest 3) sendRequest La richiesta è stata servita e ha causato un aggiornamento dello stato. Viene eseguito il Checkpoint sui Broker. La risposta viene restituita. Client 2) gestione locale 4) updateStatus S(n) S(0) S(n+1) 5) updateStatus

Java Service Replication 23 Conclusioni Rispetto ad un normale C/S basato su RMI l’utilizzo dell’infrastruttura sviluppata consente: + percezione di continuità di servizio a fronte di malfunzionamenti del rispettivo provider + legame dinamico con l’interfaccia del servizio + possibilità di uso esclusivo del servizio + eventuale gestione di priorità e permessi - maggiore complessità nella richiesta di servizio - possibile calo di prestazioni - necessità di gestire una disponibilità variabile nel tempo del servizio

Java Service Replication 24 To do L’architettura proposta consente di mascherare eventuali fault sperimentati dai Provider, tuttavia essendo il binding fra un Client e un Broker fisso eventuali fault del Broker sono visti direttamente dai Client. Questo problema può essere arginato utilizzando schemi di replicazione fisica; come prima possibilità di sviluppo va comunque considerata quella di introdurre un ulteriore livello di trasparenza. Altri possibili sviluppi possono essere:  modalità asincrone di invocazione  possibilità di gestire parametri che siano sia in input che in output  prevenzione o gestione di eventuali deadlock causati da lock