Middleware Laboratory Sistemi Distribuiti Corso di Laurea Specialistica in Telecomunicazioni AA 2006/2007 Slides del corso Sara Tucci Piergiovanni.

Slides:



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

Architetture dei sistemi distribuiti Prof
Interazione Uomo - Macchina
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Le tecnologie informatiche per l'azienda
Gestione dei laboratori Come rendere sicura la navigazione internet e l'uso della rete Lorenzo Nazario.
Web Services.
Java Enterprise Edition (JEE)
Obiettivo della tesi Percorso
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
Basi di Dati prof. A. Longheu
I modelli di riferimento OSI e TCP/IP
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Distributed Object Computing
Tipo Documento: unità didattica 1 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Architettura Three Tier
Architetture e protocolli CCITTComunicazione: trasferimento di informazioni secondo convenzioni prestabilite La comunicazione richiede cooperazione.
Sistemi Distribuiti Reti di Calcolatori a.a. 2003/2004
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Gestione di Progetti Software 2 (A.A. 2004/2005) - Lezione 2 1 JAVA: obiettivi di progetto del linguaggio Nota storica: Il linguaggio JAVA (inizialmente.
Struttura dei sistemi operativi (panoramica)
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Architettura Java/J2EE
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
1 Packet Manager Sistema di gestione di pacchetti software per il progetto dell'esame di Reti di Calcolatori LS Progetto realizzato da Fabio Parisini.
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.
Cosa sono i sistemi distribuiti Prof. Andrea Omicini Corso di Sistemi Distribuiti A.A. 2001/2002 Parte I.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il modello di riferimento OSI
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Simulatore per un servizio di consistenza su architettura Grid
Corso di Web Services A A Domenico Rosaci 1. Introduzione
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Threads.
L’architettura a strati
Sistemi Distribuiti AA 2004/2005 Prof. Roberto Baldoni
PROGRAMMA IL FUTURO Anno Scolastico 2014 / 2015
1 Progettazione Architetturale. 2 Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
I processi.
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.
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
Reti di computer Condivisione di risorse e
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
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.
Corso di Ingegneria del Web A A Domenico Rosaci 1. Sistemi Distribuiti Introduzione.
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.
MASeC: un’infrastruttura ad agenti mobili per l’e-commerce Diego Ruotolo Università degli studi di Bologna, A.A
SnippetSearch Database di snippet bilanciato e replicato di Gianluigi Salvi Reti di calcolatori LS – Prof. A.Corradi.
Progettazione e realizzazione di un’applicazione J2EE Parte 2.
Mots, programmazione collaborativa di Ettore Ferranti.
Eprogram informatica V anno.
Le basi di dati.
Architetture software
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
La gestione della rete e dei server. Lista delle attività  Organizzare la rete  Configurare i servizi di base  Creare gli utenti e i gruppi  Condividere.
Transcript della presentazione:

Middleware Laboratory Sistemi Distribuiti Corso di Laurea Specialistica in Telecomunicazioni AA 2006/2007 Slides del corso Sara Tucci Piergiovanni

Middleware Laboratory Introduzione2 Il corso: informazioni utili Riferimenti del docente: - sito web: Ricevimento: - durante il corso: dopo lezione - dopo il corso: spedire una mail Materiale Didattico: - Testi consigliati: - G.Coulouris, J.Dollimore, T.Kindberg “Distributed Systems. Concepts and Design” Addison Wesley - R.Guerraoui, L. Rodrigues “Introduction to Reliable Distributed Programming” Springer-Verlag - Slides delle lezioni (sul sito) - Dispense distribuite durante il corso

Middleware Laboratory Introduzione3 Programma del Corso Programma: - TEORIA: - Modelli computazionali e relativa astrazione dei componenti di base di un sistema distribuito: caratterizzazione delle entità di calcolo (astrazione di processo), caratterizzazione della comunicazione tra entità (astrazione di canale), caratterizzazione dei guasti. - Problemi Tipici nei Sistemi Distribuiti e relativi Algoritmi (sincronizzazione dei clock, mutua esclusione, consenso, elezione di un leader, comunicazioni ordinate) - SISTEMI: - Il software: lo strato middleware tra la rete e l’applicazione che gira su un sistema distribuito: CORBA, JAVA RMI, Data Distribution Service - Cenni di progettazione di un sistema distribuito: il caso del publish/subscribe

Middleware Laboratory Introduzione4

Middleware Laboratory Introduzione5 Sistema distribuito: una definizione Un sistema distribuito è costituito da un insieme di entità autonome (componenti software e hardware) spazialmente separate che comunicano e coordinano tra loro le loro azioni attraverso scambio di messaggi Caratteristiche di base: - Distribuzione e localita’ - Ogni entità gode di una visione non accurata e non completa dell’intero sistema - Concorrenza - Le entità eseguono le loro azioni in modo concorrente - Guasti parziali - Alcune entità potrebbero guastarsi mentre altre continuano la loro attività, il sistema nel suo complesso rimane funzionante? Che significa funzionante?

Middleware Laboratory Introduzione6 Esempi di reti caratterizzanti un sistema distribuito internet intranet sistema mobile Ma un sistema distribuito è molto di piu’: si possono considerare parte del sistema tutti i componenti software che girano sui vari dispositivi, quindi gli algoritmi che vengono implementati per risolvere problematiche di base in questi sistemi (comunicazione molti a molti, problemi di coordinamento)

Middleware Laboratory Introduzione7 La distribuzione: sfide e possibilita’ Un certo numero di organizzazioni vuole condividere i propri dati. Ogni organizzazione ha i propri dati organizzati autonomamente ma vuole poter accedere ai dati delle altre organizzazioni. I dati sono conservati in database, se ne vogliono rendere pubblici (accessibili) alcuni tipi. L’accesso avviene attraverso un’applicazione client in grado di accedere ai dati. Quali le sfide? - Sicurezza: solo i client autorizzati possono accedere e solo ai dati pubblici - Interoperabilita (o openess) ’: tecnologie e metodologie usate per lo storage dei dati potrebbero essere le piu’ diverse, il client deve accedere ai dati in modo trasparente rispetto a queste diversità. Tecnologie e metodologie potrebbero cambiare nel tempo, il sistema deve essere in grado di integrarle facilmente - Scalabilità: tutti i dati messi a disposizione dalle diverse organizzazioni potrebbero essere spostati in un solo database accessibile a tutti, ma se il numero di client aumenta? Il sistema nel suo complesso non deve perdere prestazioni - Affidabilità’ e Disponibilità: update di un dato e guasto del client durante l’update: il database deve rimanere in uno stato consistente e comunque accessibile ad altri client Altri esempi di sistemi distribuiti: - Sistema di controllo del traffico aereo: dati che devono essere trasferiti dalla sorgente alla destinazione per controllo/elaborazione/memorizzazione - Web: attraverso un web browser, gli utenti possono accedere a documenti di vari tipi, ascoltare musica, vedere video e interagire con un illimitato numero di servizi

Middleware Laboratory Introduzione8 Un “buon” sistema e’ - Sicuro - Aperto - Scalabile - Affidabile e Disponibile In particolare volgeremo l’attenzione - all’aspetto dell’affidabilità, in un’ottica teorica, inisistendo sulla correttezza degli algoritmi distribuiti (il sistema che si comporta in modo corretto in presenza di guasti, concorrenza, conoscenza approssimata e parziale delle entita’ dell’intero sistema) - all’aspetto dell’ openess e della scalabilita’ in un’ottica di sistema. - L’openess è una caratteristica che riguarda soprattutto il software e la relativa progettazione di componenti software con tecnologie e metodolgie adeguate. - La scalabilita’ è una proprietà che riguarda aspetti in massima parte architetturali (coinvolgendo la parte di deployment fisico dei componenti) e di prestazione degli algoritmi distribuiti impiegati nel sistema.

Middleware Laboratory Introduzione9 Openess Interoperabilità. La capacità di due implementazioni di sistemi diversi a cooperare usando servizi/componenti specificati da uno standard comune - Mobile code and Virtual Machine: mando il codice (java applet), il codice è interpretabile da ogni hardware perchè viene generato per una “macchina virtuale”: il codice (chiamato bytecode) è interpretabile dalla virtual machine che lo traduce in linguaggio macchina e lo esegue. In questo modo il programma è indipendente dal sistema operativo Portabilità. La capacità di un servizio/componente implementato su un sistema distribuito A, di essere eseguito senza modifiche su un sistema B. Estendibilità. La capacità di un sistema distribuito di aggiungere componenti servizi e di essere integrati nel sistema distribuito già in esercizio. Evolvability. La capacità di un sistema distribuito di evolvere nel tempo per esempio fare convivere differenti versioni di uno stesso servizio. Il numero a volte elevatissimo (a volte ordine di decine di migliaia) di sviluppatori di software indipendenti rende lo sviluppo di una piattaforma distribuita un lavoro molto complesso e difficile da gestire…

Middleware Laboratory Introduzione10 Openess (ii) Condizione necessaria per la openess: documentazione e specifica delle interfacce software chiave dei componenti di un sistema Interface Definition Language (descrive la sintassi di un servizio/componente, funzioni disponibili, parametri di input/output, eccezioni etc) Problema: descrizione semantica di un servizio. La Specifica di un componente/servizio si dice propria se è: - Completa. Una specifica è completa se ogni cosa necessaria ad una implementazione è stata specificata. Se una specifica non è completa l’implementatore deve aggiungere dettagli di specifica che a quel punto dipendono dall’implementazione. - Neutrale. Una specifica e’ neutrale se non offre alcun dettaglio su una possibile implementazione

Middleware Laboratory Introduzione11 Middleware: openess e oltre Software che supporta lo sviluppo di applicazioni distribuite (quelle a livello applicazione) Funzionalità desiderate: - Accesso: permettere di accedere a risorse locali e remote con le stesse modalità - Locazione: permettere di accedere alle risorse senza conoscerne la locazione - Concorrenza: permettere ad un insieme di processi di operare concorrentemente su risorse condivise senza interferire tra loro - Guasti: permettere il mascheramento dei guasti in modo che gli utenti possano completare le operazioni richieste anche se occorrono guasti hw e/o sw - Mobilità: permettere di spostare risorse senza influenzare le operazioni utente - Prestazioni: permettere di riconfigurare il sistema al variare del carico - Scalabilità: permettere alle applicazioni di espandersi in modo scalabile senza modificare la struttura del sistema e degli algoritmi applicativi Tre tipi di middleware: communications middleware, database middleware and systems middleware. La complessità del middleware è relativa alla complessità delle relazioni trai i componenti del sistema. Le prestazioni di una soluzione basata su sistema distribuito non sempre migliorano rispetto ad una basata su sistema centralizzato. Il middleware, necessario per fornire servizi che sfruttano le caratteristiche di un sistema distribuito, in generale può diminuire le prestazioni

Middleware Laboratory Introduzione12 Scalabilità Un sistema è scalabile se rimane operativo con adeguate prestazioni anche se il numero di entità (risorse e di utenti) aumenta sensibilmente - Computers connessi ad internet: 188 nel 1979, nel 1989, nel Web Servers connessi ad internet: 0 nel 1989, nel 1999 La centralizzazione è contro la scalabilità: - Servizi (singolo servizio per tutti gli utenti) - Dati (singola tabella per tutti gli utenti) - Algoritmi (fare routing basato su informazioni complete) Quindi - per controllare le perdite di prestazioni - Usare algoritmi che non richiedono di dialogare con tutto il set di user/accedere all’intero set di dati di un sistema distribuito, ma che richiedono di dialogore con un numero di users (o di accedere ad un set di dati) che non cresca linearmente con il numero di users/taglia dei dati - per evitare i colli di bottiglia nel sistema - Replicazione di servizi (distributed DNS) e Dati. Da qui - Problemi di coordinamento - Problemi di consistenza

Middleware Laboratory Introduzione13 Mettiamo tutto insieme: un esempio La griglia del cielo. Controllo delle rotte degli aerei su tutta Italia. Distribuzione e località: radar+ controllore di volo controllano un limitato spazio aereo (cella), piu’ radar per coprire tutto lo spazio aereo. Obiettivo: avere una visione globale Concorrenza: i flussi informativi (tracce radar) dalle celle sono concorrenti. Obiettivo: avere una visione consistente Guasti: ogni singolo componente potrebbe guastarsi (radar o operatore con il quale il radar comunica). Obiettivo: avere una visione continua

Middleware Laboratory Introduzione14 Mettiamo tutto insieme: un esempio L’architettura: scalabile: - italia divisa in tre regioni, ogni regione (controllore di regione) riceve dati da piu’ celle, per metterli tutti insieme - dati da radar a controllore, poi dati piu’ light registrati per regione (log). disponibile: - ridondanza: per ogni controllore di volo di cella ci sono piu’ macchine che ricevono dati dal radar e mandano gli aggiornamenti alla regione affidabile: - algoritmi corretti, interazione corretta tra diversi componenti Ed ora vediamo perché una funzionalità come la funzionalità di aggiornamento del log, apparentemente banale da implementare, costituisce una vera e propria sfida a causa di guasti, concorrenza, località.

Middleware Laboratory Introduzione15 Mettiamo tutto insieme: un esempio Controllore di cella Log update: dati posizione aereo repliche passive, sostituiscono il leader in caso del suo guasto Leader 1. Leader di Cella, sorgente di updates: PB: due update trasmessi in un certo ordine dal leader potrebbero arrivare in ordine inverso, ma il log deve riflettere una storia consistente. Necessario FIFO order 2. Piu’ Leader (uno per ogni cella): piu’ sorgenti di updates. PB. Immagina che un’aereo va prima in cella A e poi in cella B, i due leader A e B inviano gli update, potrebbero arrivare in ordine inverso. Necessario Total Order 3. Piu’ Leader devono aggiornare il log (risorsa condivisa), mentre qualcuno scrive su una certa traccia altri non possono scrivere la stessa traccia. Necessaria Mutua Esclusione 4. Un Leader puo’ guastarsi. PB: sostituire il vecchio leader con una replica funzionante. Necessaria Elezione del Leader

Middleware Laboratory Introduzione16 Mettiamo tutto insieme: un esempio Controllore di cella Log Algoritmo per FIFO ORDER (su ogni singolo flusso di dati) Leader A Leader B Leader C Algoritmo per TOTAL ORDER (su piu’ flussi di dati) Algoritmo per l’elezione del leader Algoritmo per la mutua esclusione L’affidabilità globale del sistema si basa sulla correttezza dei singoli algoritmi e sull’interazione corretta dei diversi componenti