UNIVERSITÀ DEGLI STUDI DELLA CALABRIA FACOLTÀ DI INGEGNERIA. Corso di Laurea Specialistica in Ingegneria Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "UNIVERSITÀ DEGLI STUDI DELLA CALABRIA FACOLTÀ DI INGEGNERIA. Corso di Laurea Specialistica in Ingegneria Informatica"

Transcript

1 UNIVERSITÀ DEGLI STUDI DELLA CALABRIA FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica Dipartimento di Elettronica, Informatica e Sistemistica Tesi di Laurea Modelli Peer-to-Peer per applicazioni MapReduce in ambienti Cloud dinamici RELATORI CANDIDATO Prof. Domenico Talia Fabrizio Marozzo Ing. Paolo Trunfio Matr Anno Accademico 2008/2009

2 Alla mia famiglia

3 Indice INTRODUZIONE MAPREDUCE PROBLEMI WEB-SCALE E PROGRAMMAZIONE PARALLELA PROGRAMMAZIONE FUNZIONALE Confronto tra programmazione imperativa e funzionale MAPREDUCE DataFlow Esempio: WordCount Applicazioni di MapReduce GOOGLE MAPREDUCE Esecuzione di Google MapReduce Google File System HADOOP Esecuzione di Hadoop MapReduce Hadoop Distributed File System (HDFS) PROBLEMA DEL SINGOLO MASTER JXTA JXTA: ARCHITETTURA The Core Layer The Services Layer The Application Layer JXTA: ENTITÀ Peer PeerGroup Service Module Pipe Messagge Advertisement Security ID JXTA: I PROTOCOLLI Endpoint Routing Protocol (ERP) Peer Resolver Protocol (PRP) Peer Discovery Protocol (PDP) Peer Information Protocol (PIP) I

4 2.3.5 Pipe Binding Protocol (PBP) RendezVous Protocol (RVP) Indipendenza dei protocolli JXTA: STRUTTURA DI RETE E COMUNICAZIONE TRA PEER Tipi di peer CLASSIFICAZIONE DELLE ARCHITETTURE P2P Grado di centralizzazione Grado di strutturazione delle informazioni ARCHITETTURA DI RETE DI JXTA Shared Resourse Distribuited Index Pubblicazione e ricerca Ricerca Pubblicazione Esempio di pubblicazione/ricerca ARCHITETTURA DEL SISTEMA ARCHITETTURA PROGETTAZIONE SCOPERTA DELLE RISORSE GESTIONE DELLA RETE SOTTOMISSIONE DEI JOB E RECUPERO DEI FALLIMENTI INTERAZIONE CON L UTENTE COMPORTAMENTO DEL NODO IMPLEMENTAZIONE CLASS DIAGRAM STATE DIAGRAM Semantica di uno stato Gestione degli eventi: inner event e transition Gestione delle attività Stati paralleli Notazione utilizzata per descrivere i diagrammi di stato FSM: ABSTRACT NODE FSM: NODE SLAVE MANAGEMENT RECOVERY COORDINATION JOB_MANAGER TASK_MANAGER JOB_BACKUP_MANAGER II

5 4.12 ELEZIONE DEL COORDINATORE ALGORITMO DI NETWORK MAINTENANCE Cambiamento di ruolo Prenotare un cambiamento di ruolo COMUNICAZIONE IMPLEMENTAZIONE STATECHART VALUTAZIONE DELLE PRESTAZIONI PARAMETRI DELLA SIMULAZIONE SIMULAZIONE CON LEAVING RATE PARI A SIMULAZIONE CON LEAVING RATE PARI A SIMULAZIONE CON LEAVING RATE PARI A ANALISI COMPARATIVE DELLE SIMULAZIONI E VALUTAZIONE DEI COSTI CONCLUSIONI BIBLIOGRAFIA III

6 Introduzione Un numero sempre crescente di applicazioni desktop di uso comune sono fornite anche sotto forma di applicazioni Web-based, ovvero applicazioni disponibili sulla rete Internet ed accessibili mediante un browser Web. In questo scenario, Internet si trasforma da enorme contenitore di informazioni in una gigantesca piattaforma di computazione, in cui le applicazioni Web-based vengono rese disponibili all utente finale mediante una pagina Web. Tale modello è incluso nel paradigma SaaS (Software as a Service) nel quale le applicazioni sono accessibili tramite interfacce Internet sotto forma di servizi on demand, ad esempio attraverso le tecnologie dei Web Services. Le applicazioni Saas, residenti ed eseguite su computer remoti, sono usate per gestire le attività di business e dati, senza che l utilizzatore finale sia obbligato ad istallarli sul 1

7 Introduzione proprio computer, ad aggiornarli, a sottoporli a manutenzione, né a possederne la licenza d uso. Gli esempi di applicazioni Web-based sono molteplici: webmail (ad es. Gmail), agende (Google Calendar, Yahoo Calendar), gestione di documenti (Google Docs, Microsoft Office Live Workspace, Zoho Docs), manipolazione di immagini (Photoshop Express, SumoPaint), ed altri. Accanto al paradigma SaaS, sono stati proposti i modelli PaaS (Platform as a Service) e IaaS (Infrastructure as a Service) che consentono di creare applicazioni software, database, servizi e infrastrutture Web, usufruendo di piattaforme virtuali che offrono storage, backup, replicazione, protezione dei dati, calcolo distribuito e sicurezza. Tutto questo senza sostenere ingenti costi infrastrutturali per l acquisto, la manutenzione, il supporto e l aggiornamento delle stesse infrastrutture informatiche. Tali modelli a servizi sono incorporati nel concetto di Cloud computing, un paradigma di calcolo distribuito nel quale le risorse, dinamicamente scalabili e spesso virtualizzate, sono fornite come un servizio su Internet [1]. In tale modello, gli utenti non hanno bisogno di avere la conoscenza, o il controllo delle infrastrutture tecnologiche che supportano le loro applicazioni [2]. I servizi Cloud si basano su nuvole di computer che agiscono come se fossero un unica entità e assegnano ad ogni singola applicazione le risorse di elaborazione necessarie secondo una modalità on-demand. Inoltre le risorse vengono offerte in maniera altamente scalabile, cioè in dipendenza dell uso contemporaneo che di esse viene fatto da parte dei diversi utenti. Di conseguenza, ciò che si paga in un sistema Cloud è ciò che si consuma. Il sistema Cloud che supporta l esecuzione delle applicazioni è in continua evoluzione, si espande e si contrae in base alle esigenze degli utenti e, in linea di principio, non possiede dei confini precisi. La Google Search Engine è un esempio di applicazione eseguita su una infrastruttura di Cloud computing, un gigantesco sistema di calcolo parallelo e distribuito realizzato come un multi-cluster di computer comprendente migliaia di nodi, utilizzato da Google per le sue applicazioni Internet. Il core software del sistema utilizzato da Google è costituito dalla libreria MapReduce, un framework su cui Google fa normalmente girare numerose applicazioni (tra le quali quelle connesse al motore di ricerca). MapReduce, oltre ad essere un framework di calcolo distribuito, è anche un modello di programmazione usato per processare ed analizzare grandi moli di dati in modo 2

8 Introduzione altamente parallelo. MapReduce, dividendo ogni job in più task, distribuisce la sua computazione su un grande numero (ad es. migliaia) di nodi worker all interno della piattaforma Cloud. Le implementazioni MapReduce (ad es. Google MapReduce e Apache Hadoop) sono basate su un modello master-slave. Gli utenti del sistema specificano la computazione in termini di una funzione map che processa coppie chiave/valore per generare un insieme di coppie chiave/valore intermedie, e di una funzione reduce che unisce tutti i valori associati alla stessa chiave intermedia. Un nodo utente sottomette un job presso un nodo master che seleziona i worker liberi e gli assegna dei map task o dei reduce task. Il fallimento di un worker è gestito con la ri-esecuzione del task su un altro worker, mentre il fallimento di un master non è gestito nelle implementazioni attuali di MapReduce, dato che i progettisti ritengono improbabile il fallimento in grandi cluster o in ambienti Cloud affidabili. Al contrario, i fallimenti dei nodi (incluso il fallimento del master) possono avvenire sia nei grandi cluster e ambienti Cloud, sia in ambienti dinamici, come le Grid, nei quali i nodi entrano ed escono dalla rete con una frequenza imprevedibile. Pertanto, offrire dei meccanismi per gestire i fallimenti del master è fondamentale per usare il modello MapReduce in ambienti dinamici, nei quali le attuali implementazioni potrebbero essere non affidabili. L obiettivo di questa tesi è lo studio dell estensione dell architettura master-slave delle attuali implementazioni di MapReduce, per renderle più adeguate ad ambienti Grid e Cloud dinamici. L estensione del modello MapReduce, discusso in questa tesi, sfrutta un modello Peer-to-Peer (P2P) per assegnare dinamicamente il ruolo del master e per gestire i fallimenti del master in un modo semplice e decentralizzato. Il sistema, chiamato P2P-MapReduce, è stato realizzato utilizzando JXTA, una piattaforma open source realizzata dalla Sun Microsystems per lo sviluppo di sistemi P2P. Il presente lavoro di tesi si articola in cinque capitoli. Il primo capitolo tratta la programmazione funzionale e parallela, i problemi di larga scala, e il modello MapReduce, con riferimento alle implementazione di Google e Apache Hadoop mettendo in evidenza il problema del singolo master. Il secondo capitolo descrive e analizza l architettura JXTA, le sue funzionalità, i suoi protocolli ed i componenti che offre ai programmatori per realizzare applicazioni P2P. Nel terzo capitolo viene presentata e discussa l architettura del sistema P2P-MapReduce, con riferimento ai 3

9 Introduzione componenti di JXTA utilizzati nell ambito del sistema. Nel quarto capitolo viene descritta l implementazione del sistema. Infine, nel quinto capitolo vengono presentati alcuni risultati sperimentali volti a valutare le prestazioni del modello P2P-MapReduce in relazione con il modello centralizzato. 4

10 1. MapReduce I l calcolo parallelo permette ad applicazioni complesse di gestire problemi di grandi dimensioni (petabyte di dati) in tempi relativamente brevi. Sempre più spesso, le elaborazioni parallele sono implementate distribuendo la computazione su un grande numero (migliaia) di computer ordinari e quindi non costosi. Google è uno dei principali utilizzatori dei sistemi di elaborazione parallela, il cui ambiente software di riferimento è MapReduce, un modello di programmazione usato per processare ed analizzare grandi moli di dati in modo altamente performante [3]. A partire da questo modello, sono stati realizzati diversi cloni open source tra cui il progetto di Apache chiamato Hadoop [4]. 5

11 Capitolo 1: MapReduce Questi sistemi offrono un framework che permette di implementare applicazioni estremamente parallele e soprattutto semplici da usare e gestire dal punto di vista del programmatore. Il sistema automaticamente parallelizza la computazione su un grande numero di macchine, gestisce i fallimenti delle singole sub-computazioni, schedula la comunicazione fra macchine con l obiettivo di rendere efficiente l uso della rete e dei dischi. Il modello MapReduce si ispira alle funzioni map e reduce presenti in Lisp e in altri linguaggi funzionali. Infatti, gli utenti del sistema specificano la computazione in termini di funzioni map che processano coppie chiave/valore per generare un insieme di coppie chiave/valore intermedie, e di una funzione reduce che unisce tutti i valori associati alla stessa chiave intermedia. Per comprendere le potenzialità del modello, si stima che Google riesce ad elaborare ogni giorno 20 petabyte di dati grazie alla sua infrastruttura basata su MapReduce [5]. Il presente capitolo è strutturato nei seguenti paragrafi: - introduzione alla programmazione parallela, mostrando i diversi approcci e le problematiche; - introduzione alla programmazione funzionale e alle funzione map e reduce di Lisp - visione del modello MapReduce in generale; - visione del modello MapReduce implementato da Google; - visione del modello open source Apache Hadoop; - problematiche del modello MapReduce: singolo master. 1.1 Problemi Web-Scale e programmazione parallela I problemi Web-scale, sono problemi di grande dimensione che analizzano grandi moli di dati come la scansione di documenti, analisi dei file di log, analisi del contenuto di pagine Web ecc. per ottenere vari tipi di dati derivati (indici invertiti, rappresentazione di grafi, riassunti del numero di pagine analizzate per giorno). 6

12 Capitolo 1: MapReduce Queste tipologie di problemi devono essere distribuiti su un centinaia o migliaia di macchine per potere essere completati in un tempo accettabile (questo porta risparmio di tempo e quindi di denaro). L approccio usato per risolvere questi tipi di problemi è l uso dell approccio divide et impera e di un grande numero di computer, interconnessi tra loro, su cui distribuire la computazione. Figura 1: Risoluzione di un problema con approccio divide et impera. Il problema iniziale, così come mostrato in Figura 1, viene ricorsivamente diviso in due o più sotto-problemi (fase di divisione) sino a che questi ultimi diventano di semplice risoluzione; quindi, si combinano le soluzioni al fine di ottenere la soluzione del problema dato (fase di combinazione). In questo modo è possibile affrontare in modo "semplice" problemi anche molto complessi. Inoltre, la natura del "divide" permette di parallelizzare la computazione aumentandone l'efficienza su sistemi distribuiti o multiprocessore. Infatti, i worker potrebbero essere thread della stessa CPU, diverse CPU di un sistema multi-processore o diverse macchine all interno di un sistema distribuito. Nei problemi di larga scala il divide et impera si ottiene semplicemente dividendo l enorme input (visto come un array) in sotto-array come mostrato in Figura 2. Figura 2: Divisione dell input in sotto-array. 7

13 Capitolo 1: MapReduce Esistono diversi approcci alla programmazione parallela di uso comune. I più comuni, che analizzeremo brevemente, sono: Shared Memory, Multithreading, Message Passing, Data Parallel e modelli ibridi (unione di diversi modelli) [6]. Nell approccio Shared Memory, i task condividono uno spazio di indirizzamento comune, in cui essi scrivono e leggono in modo asincrono. Vari meccanismi come lock/semafori vengono usati per un controllo di accesso alla memoria condivisa. Lo svantaggio di questo modello dal punto di vista del programmatore è che la nozione di proprietà dei dati non esiste. L approccio Message Passing viene realizzato con una serie di task che usano la loro memoria locale. I diversi task possono risiedere sulla stessa macchina o su un numero arbitrario di macchine. I task scambiano messaggi con scambio di dati inviando (send) e ricevendo (receive). I dati trasferiti usano delle operazione coordinate: una operazione di send deve avere una operazione corrispondente di receive. Dalla prospettiva del programmatore, le implementazioni del message passing comunemente comprendono una libreria di subroutine che sono inserite nel codice sorgente. Il programmatore è responsabile dell esplicitazione del parallelismo. Approccio Multithreading è uno dei più popolari modi per fare programmazione parallela. La complessità maggiore della programmazione multithread consiste nel coordinare l accesso di ogni thread ai dati condivisi. Si usano semafori (con operazioni di lock and unlock), monitor (wait, notify), barriere ed il programmatore deve prestare particolare attenzione ad evitare condizioni di dead lock e starvation. Nel modello Data Parallel la maggior parte della computazione parallela si concentra sull esecuzione di operazioni su una serie di dati. La serie di dati è in genere organizzati in una struttura comune, come ad esempio un array. Un insieme di task lavorano collettivamente sulla stessa struttura dati, e ogni task lavora su una differente partizione della stessa struttura dati. I task eseguono la stessa operazione (algoritmo) nella loro partizione di lavoro. Gli approcci sopra menzionati sono dei modelli generali che lasciano al programmatore tutta una serie di problematiche da gestire. Ad esempio, i vari sotto problemi relativi a parallelizzare la computazione, distribuire i dati, gestire i fallimenti, gestire la comunicazione tra worker e l accesso alla memoria condivisa, possono trasformare un 8

14 Capitolo 1: MapReduce codice sorgente inizialmente semplice in un codice complesso che deve affrontare tutte queste problematiche secondarie. Google ha implementato il modello MapReduce come reazione alla complessità dei vari modelli descritti precedentemente. Lo strumento permette di esprimere semplicemente quello che si vuole realizzare nascondendo al programmatore i dettagli della parallelizzazione, della tolleranza ai guasti, della distribuzione dei dati e del bilanciamento del carico in una libreria. Come detto sopra, il modello si ispira alle funzioni map e reduce presenti in Lisp e in altri linguaggi funzionali. Nel paradigma di programmazione funzionale, i dati sono esplicitamente passati tra funzioni come parametri o valori di ritorno che possono solo essere cambiati da una funzione attiva per volta. Immaginando che le funzioni siano connesse tra loro come in un grafo diretto aciclico e che non esista più nessuna dipendenza nascosta (attraverso lo stato condiviso), si ottiene il modello MapReduce. Grazie al modello funzionale si può parallelizzare la computazione e usare la riesecuzione come meccanismo principale per la tolleranza ai guasti. E importante evidenziare che MapReduce non è soltanto un nuovo modello di calcolo, ma anche un framework dotato di una interfaccia semplice e potente che consente la parallelizzazione automatica e la distribuzione di grandi quantità di computazione, in modo da ottenere alte prestazioni su grandi cluster di normali personal computer. 1.2 Programmazione funzionale MapReduce applica le idee delle operazioni map e reduce presenti in Lisp ed in altri linguaggi funzionali realizzandole in ambito distribuito. La programmazione funzionale è un paradigma di programmazione in cui il flusso di esecuzione del programma assume la forma di una serie di valutazioni di funzioni [7]. Esso si focalizza sulla definizione di funzioni, rispetto ai paradigmi procedurali e imperativi, che invece prediligono la specifica di una sequenza di comandi da eseguire. In questi ultimi, i valori vengono calcolati cambiando lo stato del programma attraverso delle assegnazioni; un programma funzionale, invece, è immutabile: i valori non vengono trovati cambiando lo stato del programma, ma costruendo nuovi stati a partire dai precedenti. 9

15 Capitolo 1: MapReduce Il Lisp (List Processor) è uno dei principali esempi di linguaggi funzionali. Di seguito vengono mostrati alcuni esempi relativi a questo linguaggio. Esempio di scrittura di funzione (notazione prefissa): (+ 2 3) 5 (* 3 5) 15 Definizione di funzioni ed uso: (define x 3) x (* x 5) 15 Nell esempio precedente la funzione define, crea una nuova funzione di nome x e la restituisce come risultato (meccanismo funzioni higher-order). Definizione di funzioni con parametri: (define (myfunc x y) (sqrt (+ (* x x) (* y y)))) (myfunc 3 4) 5 Definizione della funzione fattoriale: (define (factorial n) ( if (= n 1) 1 (* n (factorial (n-1))))) (factorial 5) 120 Uso delle liste (dati primitivi): ( ) ((1 2)(a b)(5 a)) Le due funzioni che ci interessano maggiormente sono: - la funzione map: fai qualcosa su ogni elemento della lista. Una funzione f è applicata ad ogni elemento di una lista. Il risultato è una nuova funzione (Figura 3); Figura 3: Funzionamento della funzione map in Lisp. - la funzione reduce (anche descritta come fold, accumulate, compress or inject): combina i risultati di una lista in qualche modo. Esiste un valore iniziale (accumulatore) che viene passato come parametro alla funzione f insieme 10

16 Capitolo 1: MapReduce all array da analizzare. Il risultato viene salvato nell accumulatore. Si ripete l iterazione per ogni elemento della lista. Il risultato è il valore finale dell accumulatore (Figura 4). Esempio di funzione map: Figura 4: Funzionamento della funzione reduce in Lisp. (define quad(x) (* x x)) (map quad ( )) ( ) Il primo parametro è la funzione da far eseguire alla funzione map, il secondo l array di dati. Esempio di funzione reduce: (reduce + 0 ( )) 15 Il primo parametro è la funzione da far eseguire alla funzione reduce, il secondo il valore iniziale dell accumulatore, il terzo l array di dati. Esempio che usa insieme le funzioni map e reduce: (define quad(x) (* x x)) (define sum-of-quad(x) (reduce + 0 (map quad x))) (sum-of-quad ( )) 55 Il passaggio dalla programmazione funzionale al modello MapReduce avviene con le seguenti funzionalità che il modello stesso offre: - distribuire l esecuzione delle operazioni delle map su diversi nodi nella rete; - prendere i risultati intermedi dei vari nodi e aggregarli insieme usando una funzione reduce; - usare un file system distribuito dove prendere i dati iniziali, salvare i dati intermedi e salvare i dati finali. Tale modello offre implicitamente il parallelismo in quanto è sia possibile parallelizzare l esecuzione delle operazioni di map essendo isolate tra loro, e sia possibile riordinare i risultati mediante la funzione reduce. Il modello, una volta implementato, offre 11

17 Capitolo 1: MapReduce un infrastruttura distribuita che lascia astratte le sole funzioni map e reduce. Il compito principale del programmatore è quello di descrivere tali funzioni Confronto tra programmazione imperativa e funzionale La programmazione imperativa è un paradigma di programmazione secondo cui un programma viene inteso come un insieme di istruzioni, ciascuna delle quali può essere pensata come un "ordine" che viene impartito alla macchina virtuale del linguaggio di programmazione utilizzato. Quindi, mentre i programmi imperativi tendono ad enfatizzare la sequenza di comandi da eseguire per arrivare al risultato, i programmi funzionali tendono a enfatizzare la composizione e la disposizione delle funzioni, spesso senza specificare esplicitamente i passi. Di seguito viene mostrato un esempio che mostra le due soluzioni, imperativa e funzionale, di uno stesso problema: // stile imperativo target = new LinkedList(); // crea una lista vuota for (item in source_list){ // itera su ogni elemento della lista di input trans1 = G(item) // applica la funzione G() trans2 = F(trans1) // applica la funzione F() target.append(trans2) // aggiunge il risultato al target // stile funzionale compose2 = lambda A, B: lambda x: A(B(x)) // Definisce come applicare due //generiche trasformazioni A e B target = map(compose2(f, G), source_list) // Applica due specifiche funzioni //F e G a ogni elemento in input L esempio evidenzia lo stile imperativo che descrive le fasi della costruzione per arrivare al risultato finale, e lo stile funzionale che descrive il rapporto matematico, a livello di funzioni, tra input e output [8]. Come si può intuire dall esempio, nella programmazione funzionale non c è alcuna esplicita allocazione di memoria o assegnazione di variabili. Questa operazioni avvengono automaticamente ogni volta viene invocata una funzione: l'allocazione di memoria avviene per creare lo spazio necessario per i parametri e il valore di ritorno e l'assegnazione avviene per copiare i parametri nel nuovo spazio allocato e per copiare il valore di ritorno alla funzione chiamante. 12

18 Capitolo 1: MapReduce Entrambe le operazioni avvengono solo alla chiamata della funzione e al ritorno da essa e quindi gli effetti collaterali sono eliminati. Eliminando gli effetti collaterali dalle funzioni, si ottiene la cosiddetta trasparenza referenziale [9], la quale assicura che il risultato di una funzione sia lo stesso per uno stesso insieme di parametri, indifferentemente da quando e dove questa funzione venga valutata. La trasparenza referenziale rende molto più facile sia la dimostrazione della correttezza del programma sia l'identificazione automatica delle computazioni indipendenti per l'esecuzione parallela. Per capire il concetto di trasparenza referenziale viene introdotto un esempio. Si consideri la chiamata al metodo getinput(), che non accetta parametri e restituisce l'input di una tastiera. Una chiamata a questo metodo restituisce un valore che dipende solo dal testo che l utente digita, e quindi più chiamate alla stessa funzione, tutte con lo stesso parametro (in questo caso un parametro "vuoto"), possono rendere valori differenti. 1.3 MapReduce MapReduce è un paradigma di programmazione applicabile a molti problemi di grande dimensioni. Un problema tipico MapReduce viene risolto nei seguenti passi: - iterare su un grande numero di record; - estrarre qualcosa di interessante da ogni record (map); - ordinare i risultati intermedi e distribuirli sui relativi reducer; - aggregare i risultati intermedi (reduce); - generare l output finale. L utente deve specificare la funzione map e la funzione reduce. La funzione map processa una coppia chiave/valore per generare un insieme di coppie intermedie chiave/valore e la funzione reduce unisce tutti i valori intermedi associati alla stessa chiave intermedia - map(k1,v1) -> list(k2,v2) - reduce(k2, list (v2)) -> list(v2) 13

19 Capitolo 1: MapReduce La funzione map prende una coppia di chiave/valori in un certo dominio e ritorna una coppia chiave/valori in un altro dominio. Essa è applicata in parallelo su ogni elemento dell input del dataset. Questo produce una lista (k2,v2) di coppie per ogni chiamata. La funzione reduce prende una coppia chiave/lista di valori in certo dominio per produrre una lista di valori nello stesso dominio. La funzione tipicamente produce o nessun valore o un valore (anche se la chiamata permette di ritornare una lista di valori). Pertanto il framework MapReduce trasforma una lista di chiave/valore in una lista chiave/valore (Figura 5). Figura 5: Risoluzione di un problema con approccio MapReduce. Questo comportamento è lievemente differente dalla combinazione delle funzioni map e reduce nella programmazione funzionale, che accetta come input una lista ma restituisce un unico valore che combina tutti i valori ritornati dalla funzione map. Normalmente il programmatore specifica anche una funzione partition: - partition (k, numero di partizioni ) partizione per k Che permette di avere operazioni di reduce in parallelo per chiavi diverse. La funzione partition prende come input la chiave intermedia e il numero di reducer, e restituisce il reducer che si occupa della chiave intermedia. Normalmente la funzione precedente è una semplice funzioni hash della chiave: hash(k ) mod n. MapReduce gestisce tutta una serie di problematiche rendendole invisibili al programmatore. Infatti la libreria MapReduce si occupa in automatico di: 14

20 Capitolo 1: MapReduce - gestire la distribuzione dei dati o I dati iniziali ai map worker o Trasferisce le coppie chiavi-valore intermedie ai reduce worker o Ottimizzare localmente, quando possibile - gestire la schedulazione o assegnare i worker ai task di tipo map o reduce - gestire i guasti o individua i worker falliti e ri-esegue i task ad essi assegnati Il sistema usa alcune ottimizzazione: - normalmente muove il processo dove si trovano i dati da analizzare; - usa la funziona combiner eseguita sulla stessa macchina del mapper come una sorta di mini-reduce sui dati appena generati. In questo modo riesce ad inviare al reducer dati più elaborati in modo da risparmiare banda; - risolve il problema dell esistenza di mapper lenti che potrebbero rallentare l intera computazione. Infatti il reducer deve attendere tutti i risultati dei vari mapper per poter aggregare i dati intermedi. Per evitare di trovare macchine lente che rallentano l intero processo viene introdotto una esecuzione ridondante di map, in modo tale che il primo mapper che termina l esecuzione invia i dati al reducer. Ogni operazione è eseguita su un file system distribuito che serve a collegare i differenti processi. Un algoritmo parallelo è usualmente strutturato come esecuzioni multiple di MapReduce (Figura 6). Figura 6: Risoluzione di un problema con esecuzioni multiple di MapReduce. 15

21 Capitolo 1: MapReduce DataFlow Nel seguente paragrafo viene analizzato il modello MapReduce dal punto dei vista della trasformazione dei dati di input fino ai dati di output. Le varie operazioni, mostrate in Figura 7, possono essere riassunti nelle seguenti fasi: split, sort, merge e join. Figura 7: MapReduce con esempio. L intero processo di trasformazione dei dati viene descritto in dettaglio nei seguenti passi: - Un job MapReduce inizia da un insieme predefinito di dati di input (normalmente posizionanti in una directory di un file system distribuito). Un processo master (che è il coordinatore centrale) viene lanciato e ottiene una job configuration, che descrive il job da eseguire. - In accordo con la job configuration, il master lancia diversi processi mapper e reducer su diverse macchine. Lancia inoltre un input reader per leggere i dati da dalla directory di input (localizzata nel file system distribuito). L input reader partiziona i dati letti e li distribuisce sui vari mapper. Questa fase è detta split e avvia il parallelismo. - Dopo aver ottenuto la parte di dati, il processo mapper esegue una funzione map (fornita dall utente) e produce una collezione di coppie (chiave/valore). Ogni coppia di risultati viene ordinata e in accordo alla chiave inviata al corrispondente processo reducer. Questa è la fase sort. 16

22 Capitolo 1: MapReduce - Tutte le coppie con la stessa chiave intermedia verranno inviati allo stesso processo reducer, che colleziona tutti le coppie della stessa chiave intermedia e invoca una funzione reduce (fornita dall utente) che produce una singola coppia (chiave, valori aggregati) come risultato. Questa fase è detta merge. - L output del processo reducer viene raccolto dall Output writer, che è la fase effettiva di join che fa terminare il parallelismo MapReduce Esempio: WordCount Il WordCount è un classico esempio utilizzato per descrivere il funzionamento del MapReduce. L obiettivo dell esempio è quello di contare il numero di occorrenze di ogni parola all interno di una larga collezione di documenti. L input è un insieme di coppie chiave/valore, dove la chiave rappresenta il nome del documento e il valore il testo del documento, mentre l output è una lista di coppie chiave/valore, dove la chiave è una parola e il valore è il numero delle occorrenze. Di seguito viene mostrato il pseudo codice del WordCount: map(key, value){ //key: nome del documento; value: testo del documento for each word w in value: emit(w, 1) reduce(key, values){ //key: una parola; value: un iteratore di interi result = 0 for each count v in values: result += v emit(result) La funzione map restituisce per ogni parola il conteggio della sua occorrenza (in questo esempio semplicemente 1 ). La funzione reduce somma insieme i conteggi emessi per una parola in particolare. Di seguito viene mostrato, in Figura 8, un esempio grafico del WordCount utilizzando MapReduce. 17

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com

Elaborazione dati parallela con map/reduce. Roberto Congiu rcongiu@yahoo.com Elaborazione dati parallela con map/reduce Roberto Congiu rcongiu@yahoo.com Indice delle slide Introduzione a Map/Reduce Descrizione del modello Implementazione Ottimizzazioni Introduzione Map/Reduce e

Dettagli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli

MapReduce. Progettazione del Software a.a. 2012/13. Università degli Studi di Milano Dept. of Computer Science. Matteo Camilli Università degli Studi di Milano Dept. of Computer Science MapReduce Matteo Camilli matteo.camilli@unimi.it http://camilli.di.unimi.it Progettazione del Software a.a. 2012/13 1 Motivazioni Vogliamo processare

Dettagli

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 24/09/2014 Indice 1. Aspetti di Data Management CouchBase 2. Aspetti Architetturali Infrastruttura

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Realizzazione del file system Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Realizzazione

Dettagli

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix

Indice generale. Introduzione...xiii. Gli autori...xvii. I revisori...xix Indice generale Introduzione...xiii Struttura del libro... xiii Cosa serve per questo libro...xiv Lo scopo del libro...xiv Convenzioni...xv Codice degli esempi...xv Gli autori...xvii I revisori...xix Capitolo

Dettagli

Implementazione del File System

Implementazione del File System Implementazione del file system Implementazione del File System Struttura del file system. Realizzazione del file system. Implementazione delle directory. Metodi di allocazione. Gestione dello spazio libero.

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

Openmosix e Beowulf: introduzione e confronto

Openmosix e Beowulf: introduzione e confronto Openmosix e Beowulf: introduzione e confronto Giovanni Perbellini Cluster Introduzione Cluster ESD Openmosix Comandi principali Beowulf (PVM) Comandi principali Libreria PVM API Agenda 1 Introduzione -

Dettagli

RETI PEER-TO-PEER. Reti di Calcolatori. Applicazioni di Rete avanzate: Reti di Calcolatori. Sistemi Peer to Peer Griglie Computazionali

RETI PEER-TO-PEER. Reti di Calcolatori. Applicazioni di Rete avanzate: Reti di Calcolatori. Sistemi Peer to Peer Griglie Computazionali Reti di Calcolatori Applicazioni di Rete avanzate: Sistemi Peer to Peer Griglie Computazionali Corso di Reti di Calcolatori Carlo Mastroianni Reti di Calcolatori RETI PEER-TO-PEER Sistemi P2P In una rete

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Modelli e Sistemi di Elaborazione Peer-to-Peer

Modelli e Sistemi di Elaborazione Peer-to-Peer Università degli Studi della Calabria Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Matematica Modelli e Sistemi di Elaborazione Peer-to-Peer Concetti di base sul Peer-to-Peer: -

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

PICCOLE E MEDIE IMPRESE, UNA SOLUZIONE AD HOC. Soluzioni per le PMI

PICCOLE E MEDIE IMPRESE, UNA SOLUZIONE AD HOC. Soluzioni per le PMI PICCOLE E MEDIE IMPRESE, UNA SOLUZIONE AD HOC Soluzioni per le PMI Windows Server 2012 e System Center 2012 Informazioni sul copyright 2012 Microsoft Corporation. Tutti i diritti sono riservati. Il presente

Dettagli

Manuale Servizi di Virtualizzazione e Porta di Accesso Virtualizzata

Manuale Servizi di Virtualizzazione e Porta di Accesso Virtualizzata Manuale Servizi di Virtualizzazione e Porta di Accesso Virtualizzata COD. PROD. D.6.3 1 Indice Considerazioni sulla virtualizzazione... 3 Vantaggi della virtualizzazione:... 3 Piattaforma di virtualizzazione...

Dettagli

GoCloud just google consulting

GoCloud just google consulting La visione Cloud di Google: cosa cambia per i profili tecnici? GoCloud just google consulting Workshop sulle competenze ed il lavoro degli IT Systems Architect Vincenzo Gianferrari Pini

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

NoSQL http://nosql. nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A.

NoSQL http://nosql. nosql-database.org/ Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Linguaggi e Tecnologie Web A. A. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Linguaggi e Tecnologie Web A. A. 2011-2012 NoSQL http://nosql nosql-database.org/ Eufemia TINELLI Cosa è NoSQL? 1998 il termine NoSQL è

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

CLOUD COMPUTING. Che cos è il Cloud

CLOUD COMPUTING. Che cos è il Cloud CLOUD COMPUTING Che cos è il Cloud Durante la rivoluzione industriale, le imprese che si affacciavano per la prima volta alla produzione dovevano costruirsi in casa l energia che, generata da grandi macchine

Dettagli

Big data ed eventi: quasi un tutorial. Prof. Riccardo Melen melen@disco.unimib.it

Big data ed eventi: quasi un tutorial. Prof. Riccardo Melen melen@disco.unimib.it Big data ed eventi: quasi un tutorial Prof. Riccardo Melen melen@disco.unimib.it Big Data Monitoraggio di reti e infrastrutture IT performance: data center, SOA/ESB, infrastrutture virtuali, configurazione

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13 Architectural & Engineering Software L INGEGNERE NELLE NUVOLE App, WEB App e Cloud ing. Sauro Agostini Mitterand 1981 Reagan Battaglin Alice IBM PC 5150 Alonso C ERA UNA VOLTA IL DOS Non è una rivoluzione,

Dettagli

Memorizzazione dei dati: Dischi e File

Memorizzazione dei dati: Dischi e File Memorizzazione dei dati: Dischi e File Query\update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura

Dettagli

Il Cloud Computing: uno strumento per migliorare il business

Il Cloud Computing: uno strumento per migliorare il business Il Cloud Computing: uno strumento per migliorare il business Luca Zanetta Uniontrasporti I venti dell'innovazione - Imprese a banda larga Varese, 9 luglio 2014 1 / 22 Sommario Cos è il cloud computing

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Algoritmi per protocolli peer-to-peer

Algoritmi per protocolli peer-to-peer Algoritmi per protocolli peer-to-peer Introduzione Livio Torrero (livio.torrero@polito.it) 09/2009 Approccio client-server (1/2) Client 1 Client 3 Server Client 2 Client 4 Paradigma molto comune Un client

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Sistemi Distribuiti. Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto. Sistemi Operativi mod.

Sistemi Distribuiti. Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto. Sistemi Operativi mod. Sistemi Distribuiti Introduzione Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto 19.1 Introduzione A metà degli anni quaranta inizia l era dei calcolatori elettronici

Dettagli

Introduzione. Sistemi Distribuiti. Introduzione. Introduzione. Definizione di sistema distribuito. Introduzione

Introduzione. Sistemi Distribuiti. Introduzione. Introduzione. Definizione di sistema distribuito. Introduzione Sistemi Distribuiti Definizione Vantaggi e svantaggi Architetture hardware e software Problemi di progetto A metà degli anni quaranta inizia l era dei calcolatori elettronici moderni: grandi, costosi e

Dettagli

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o Navigare verso il cambiamento La St r a d a p i ù semplice verso il ca m b i a m e n t o Le caratteristiche tecniche del software La Tecnologia utilizzata EASY è una applicazione Open Source basata sul

Dettagli

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE

CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE CORSO I.F.T.S TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE Ing. Mariano Di Claudio Lezione del 15/10/2014 1 Indice 1. Processo di analisi/elaborazione dei 1. Hadoop Caratteristiche chiave Architettura

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Virtualizzazione e Cloud Computing

Virtualizzazione e Cloud Computing Virtualizzazione e Cloud Computing 12 marzo 2015 Claudio Bizzarri claudio@bizzarri.net Ordine degli Ingegneri di Pistoia La virtualizzazione Macchine reali e macchine virtuali Vantaggi della virtualizzazione

Dettagli

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI

PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI PROGETTI DISPONIBILI IL CORSO DI PROGETTO DI RETI E SISTEMI INFORMATICI 1 Web Link Monitor... 2 2 Database Browser... 4 3 Network Monitor... 5 4 Ghost Site... 7 5 Copy Search... 9 6 Remote Audio Video

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

Wireless Grids e Pervasive Grids. Pervasive Grids

Wireless Grids e Pervasive Grids. Pervasive Grids Griglie e Sistemi di Elaborazione Ubiqui Wireless Grids e Pervasive Grids Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Wireless Grids e Pervasive Grids Wireless Grids Caratteristiche Sistemi Applicazioni

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

Dettagli

BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei

BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei Corso di Laurea Specialistica in Ingegneria Informatica Reti di Calcolatori LS prof. Antonio Corradi BrightSync: progetto di un middleware di sincronizzazione per ambienti eterogenei di Emanuele Crescentini

Dettagli

Diego GUENZI Rodolfo BORASO

Diego GUENZI Rodolfo BORASO Diego GUENZI Rodolfo BORASO NOSQL Movimento che promuove una classe non ben definita di strumenti di archiviazione di dati Un nuovo modo di vedere la persistenza Si differenziano dai RDBMS: Non utilizzano

Dettagli

Sistemi Operativi. Implementazione del File System

Sistemi Operativi. Implementazione del File System Sistemi Operativi (modulo di Informatica II) Implementazione del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Implementazione del File System Sommario Realizzazione del

Dettagli

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Sistemi Operativi. Organizzazione logica ed implementazione di un File System Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File

Dettagli

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 11 system Sistemi operativi 12 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 11.1 Di cosa parliamo in questa lezione? L interfaccia : system 1 Il

Dettagli

10. Interfaccia del File System

10. Interfaccia del File System 10. Interfaccia del File System 10.1 Il concetto di File 10.2 Metodi di accesso 10.3 Struttura delle Directory 10.4 Protezione (Leggere) 10.5 Semantica della Consistenza (Leggere) Un File System consiste

Dettagli

IL PRIVATE CLOUD DELLA FRIENDS' POWER

IL PRIVATE CLOUD DELLA FRIENDS' POWER IL PRIVATE CLOUD DELLA FRIENDS' POWER Evoluzione al Cloud Computing Condivisione dei lavori Integrazione con Android & iphone Cos è il Cloud: le forme e i vantaggi Durante la rivoluzione industriale, le

Dettagli

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

Cloud Computing....una scelta migliore. ICT Information & Communication Technology Cloud Computing...una scelta migliore Communication Technology Che cos è il cloud computing Tutti parlano del cloud. Ma cosa si intende con questo termine? Le applicazioni aziendali stanno passando al

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Come Funziona. Virtualizzare con VMware

Come Funziona. Virtualizzare con VMware Virtualize IT Il Server? Virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente

Dettagli

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica. Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Modellidi SistemiDistribuiti

Dettagli

IL CLOUD COMPUTING DALLE PMI ALLE ENTERPRISE. Salvatore Giannetto Presidente Salvix S.r.l

IL CLOUD COMPUTING DALLE PMI ALLE ENTERPRISE. Salvatore Giannetto Presidente Salvix S.r.l IL CLOUD COMPUTING Salvatore Giannetto Presidente Salvix S.r.l Agenda. - Introduzione generale : il cloud computing Presentazione e definizione del cloud computing, che cos è il cloud computing, cosa serve

Dettagli

Software Libero infrastrutturale: l'esperienza ENEA. Antonio Colavincenzo Gianfilippo Giannini

Software Libero infrastrutturale: l'esperienza ENEA. Antonio Colavincenzo Gianfilippo Giannini Software Libero infrastrutturale: l'esperienza ENEA Antonio Colavincenzo Gianfilippo Giannini 1 Kelyon Fonda il suo business esclusivamente sull'open source Offre soluzioni open per il settore pharma,

Dettagli

L iniziativa Cloud DT

L iniziativa Cloud DT L iniziativa Cloud DT Francesco Castanò Dipartimento del Tesoro Ufficio per il Coordinamento Informatico Dipartimentale (UCID) Roma, Luglio 2011 Il Cloud Computing Alcune definizioni Il Cloud Computing

Dettagli

Abstract. Reply e il Cloud Computing: la potenza di internet e un modello di costi a consumo. Il Cloud Computing per Reply

Abstract. Reply e il Cloud Computing: la potenza di internet e un modello di costi a consumo. Il Cloud Computing per Reply Abstract Nei nuovi scenari aperti dal Cloud Computing, Reply si pone come provider di servizi e tecnologie, nonché come abilitatore di soluzioni e servizi di integrazione, volti a supportare le aziende

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Cluster per architetture a componenti

Cluster per architetture a componenti Luca Cabibbo Architetture Software Cluster per architetture a componenti Dispensa ASW 442 ottobre 2014 Un buon progetto produce benefici in più aree. Trudy Benjamin 1 -Fonti [IBM] Clustering Solutions

Dettagli

Esperimenti di Cloud Computing in ENEA-GRID

Esperimenti di Cloud Computing in ENEA-GRID Conferenza GARR 2011 Bologna, 8-10 Novembre Esperimenti di Cloud Computing in ENEA-GRID Ing. Giovanni Ponti, Ph.D. ENEA C.R. Portici giovanni.ponti@enea.it Joint work with A. Secco, F. Ambrosino, G. Bracco,

Dettagli

Guida all uso. Instant Cloud Platform As A Service

Guida all uso. Instant Cloud Platform As A Service Guida all uso Instant Cloud Platform As A Service Prima edizione maggio 2014 Instant Cloud Platform As A Service Sommario Instant Cloud - Platform As A Service... 4 1 Introduzione... 4 2 Instant Cloud...

Dettagli

Realizzazione del file system

Realizzazione del file system Realizzazione del file system Struttura del file system Metodi di allocazione: Contigua Concatenata Indicizzata Gestione dello spazio libero Realizzazione delle directory Efficienza e prestazioni Ripristino

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

Dettagli

Sistemi Distribuiti. Informatica B. Informatica B

Sistemi Distribuiti. Informatica B. Informatica B Sistemi Distribuiti Introduzione Che cos è un sistema distribuito? Un sistema distribuito è una collezione di computer indipendenti che appare all utente come un solo sistema coerente Da notare: le macchine

Dettagli

Una rassegna dei sistemi operativi per il Cloud Computing

Una rassegna dei sistemi operativi per il Cloud Computing Alma Mater Studiorum Università di Bologna SCUOLA DI SCIENZE Corso di Laurea in Informatica Una rassegna dei sistemi operativi per il Cloud Computing Tesi di Laurea in Reti di Calcolatori Relatore: Chiar.mo

Dettagli

Sistemi Distribuiti. Libri di Testo

Sistemi Distribuiti. Libri di Testo Sistemi Distribuiti Rocco Aversa Tel. 0815010268 rocco.aversa@unina2.it it Ricevimento: Martedì 14:16 Giovedì 14:16 1 Libri di Testo Testo Principale A.S. Tanenbaum, M. van Steen, Distributed Systems (2

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

Dettagli

I nuovi modelli di delivery dell IT: un quadro di riferimento

I nuovi modelli di delivery dell IT: un quadro di riferimento I nuovi modelli di delivery dell IT: un quadro di riferimento Stefano Mainetti Fondazione Politecnico di Milano stefano.mainetti@polimi.it Milano, 25 Ottobre 2010 Cloud Computing: il punto d arrivo Trend

Dettagli

Big Data. Davide Giarolo

Big Data. Davide Giarolo Big Data Davide Giarolo Definizione da Wikipedia Big data è il termine usato per descrivere una raccolta di dati così estesa in termini di volume, velocità e varietà da richiedere tecnologie e metodi analitici

Dettagli

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati

Basi di Dati. Introduzione ai sistemi di basi di dati. K.Donno - Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File system verso DBSM Vantaggi di un DBMS Modelli dei dati Utenti

Dettagli

Parte II: Reti di calcolatori Lezione 11

Parte II: Reti di calcolatori Lezione 11 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 11 Martedì 14-04-2015 1 Esempio di uso di proxy Consideriamo

Dettagli

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

Dettagli

Introduzione ai sistemi di basi di dati

Introduzione ai sistemi di basi di dati Basi di Dati Introduzione ai sistemi di basi di dati Alessandro.bardine@gmail.com alessandro.bardine@iet.unipi.it Introduzione ai sistemi di basi di dati Gestione dei Dati Una prospettiva storica File

Dettagli

Interfaccia del file system. Fabio Buttussi HCI Lab Dipart. di Matematica ed Informatica Università degli Studi di Udine www.dimi.uniud.

Interfaccia del file system. Fabio Buttussi HCI Lab Dipart. di Matematica ed Informatica Università degli Studi di Udine www.dimi.uniud. HCI Lab Dipart. di Matematica ed Informatica Università degli Studi di Udine www.dimi.uniud.it/buttussi Cos'è il file system? Consiste in: Insieme di file Strutture dati per organizzare i file nel sistema

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

CORSO WEB SERVER, DBMS E SERVER FTP

CORSO WEB SERVER, DBMS E SERVER FTP CORSO WEB SERVER, DBMS E SERVER FTP DISPENSA LEZIONE 1 Autore D. Mondello Transazione di dati in una richiesta di sito web Quando viene effettuata la richiesta di un sito Internet su un browser, tramite

Dettagli

Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing

Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing Dopo anni di innovazioni nel settore dell Information Technology, è in atto una profonda trasformazione.

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

Big Data. Big Data. data that exceeds RDBMS capabilities

Big Data. Big Data. data that exceeds RDBMS capabilities Big Data Big Data data that exceeds RDBMS capabilities Big Data Origini Il termine BigData è stato coniato da Google intorno al 2004 per descrivere una quantità di dati talmente grande da non poter essere

Dettagli

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a. 2011-2012

Architetture dei WIS. Definizione di WIS. Benefici dei WIS. Prof.ssa E. Gentile a.a. 2011-2012 Architetture dei WIS Prof.ssa E. Gentile a.a. 2011-2012 Definizione di WIS Un WIS può essere definito come un insieme di applicazioni in grado di reperire, cooperare e fornire informazioni utilizzando

Dettagli

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY

PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Giampiero Allamprese 0000260193 PROGETTO DI UN MIDDLEWARE PER L ACCESSO REMOTO A UN REPOSITORY Reti di Calcolatori LS prof. Antonio Corradi A.A. 2007/2008 ABSTRACT L obiettivo di questo progetto è la realizzazione

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

MCloud.Gov l infrastruttura SaaS per la Pubblica Amministrazione locale

MCloud.Gov l infrastruttura SaaS per la Pubblica Amministrazione locale MCloud.Gov l infrastruttura SaaS per la Pubblica Amministrazione locale 1. Livello infrastrutturale Il Cloud, inteso come un ampio insieme di risorse e servizi fruibili da Internet che possono essere dinamicamente

Dettagli

IT ARCHITECTURE: COME PREPARARSI AL CLOUD

IT ARCHITECTURE: COME PREPARARSI AL CLOUD IT ARCHITECTURE: COME PREPARARSI AL CLOUD Stefano Mainetti stefano.mainetti@polimi.it L ICT come Commodity L emergere del Cloud Computing e i nuovi modelli di delivery Trend n. 1 - ICT Commoditization

Dettagli

Cloud Computing, infrastrutture innovative per l'outsourcing di applicazioni e servizi.

Cloud Computing, infrastrutture innovative per l'outsourcing di applicazioni e servizi. UNIVERSITÀ DEGLI STUDI DI FERRARA FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell'automazione Cloud Computing, infrastrutture innovative per l'outsourcing di applicazioni e servizi.

Dettagli

Implementazione di tecniche di tolleranza ai guasti in un middleware per la Data Distribution Service

Implementazione di tecniche di tolleranza ai guasti in un middleware per la Data Distribution Service tesi di laurea Implementazione di tecniche di tolleranza ai guasti in un middleware per la Data Distribution Service Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Ganna

Dettagli

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO.

Sistemi Operativi. Il Sistema Operativo. Gestione Risorse (3) Gestione Risorse (2) Cos'è un sistema operativo? Utenti di un SO. Sistemi Operativi Il Sistema Operativo Corso di Informatica Generale (Roberto BASILI) Cos'è un sistema operativo? Un sistema operativo e': La astrazione logica del livello macchina hardware e microprogrammata

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura. Carmine Spagnuolo

Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura. Carmine Spagnuolo Un framework per simulazione massiva distribuita basata su Agenti D-MASON: Architettura Carmine Spagnuolo 1 Simulazione Multi-Agente Una simulazione multi-agente è un sistema in cui entità (agenti) intelligenti

Dettagli

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS Il modello SaaS Architettura 3D Cloud Il protocollo DCV Benefici Il portale Web EnginFrame EnginFrame

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Il software di base Software

Dettagli

Estratto dell'agenda dell'innovazione e del Trade Bari 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO BOOKINGSHOW

Estratto dell'agenda dell'innovazione e del Trade Bari 2011. Speciale: I casi. Introduzione dell'area tematica IL CASO BOOKINGSHOW Estratto dell'agenda dell'innovazione e del Trade Bari 2011 Speciale: I casi Introduzione dell'area tematica IL CASO BOOKINGSHOW Innovare e competere con le ICT: casi di successo - PARTE II Cap.9 Far evolvere

Dettagli

Sistemi RAID. Sistemi RAID. Sistemi RAID

Sistemi RAID. Sistemi RAID. Sistemi RAID Sistemi RAID 1 Sistemi RAID Dei tre elementi fondamentali di un qualsiasi sistema computerizzato: processore, memoria primaria, memoria secondaria, quest ultimo è di gran lunga il più lento. Inoltre, il

Dettagli

Sistemi RAID. Sistemi RAID

Sistemi RAID. Sistemi RAID Sistemi RAID 1 Sistemi RAID Dei tre elementi fondamentali di un qualsiasi sistema computerizzato: processore, memoria primaria, memoria secondaria, quest ultimo è di gran lunga il più lento. Inoltre, il

Dettagli

Di seguito ci accingiamo ad analizzare le possibili configurazioni di architettura: Server singolo

Di seguito ci accingiamo ad analizzare le possibili configurazioni di architettura: Server singolo La progettazione dell architettura si concentra sulla scelta dell hardware, dell infrastruttura di rete, e dei componenti software che andranno a costituire il sistema. Gli obbiettivi tecnologici che il

Dettagli

Un architettura per lo streaming multimediale in ambiente distribuito

Un architettura per lo streaming multimediale in ambiente distribuito tesi di laurea Anno Accademico 2012/2013 relatore Ch.mo prof. Simon Pietro Romano correlatori Ing. Tobia Castaldi candidato Alessandro Arrichiello Matr. M63/43 Contesto: o Content Distribution Networks

Dettagli