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

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

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

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

Una architettura peer-topeer per la visualizzazione 3D distribuita

Una architettura peer-topeer per la visualizzazione 3D distribuita Una architettura peer-topeer per la visualizzazione 3D distribuita Claudio Zunino claudio.zunino@polito.it Andrea Sanna andrea.sanna@polito.it Dipartimento di Automatica e Informatica Politecnico di Torino

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

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

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

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

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

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

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

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

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

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

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

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

Gartner Group definisce il Cloud

Gartner Group definisce il Cloud Cloud Computing Gartner Group definisce il Cloud o Cloud Computing is a style of computing in which elastic and scalable information technology - enabled capabilities are delivered as a Service. Gartner

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

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

Capitolo 2 - parte 4. Corso Reti ed Applicazioni Mauro Campanella Como 2003

Capitolo 2 - parte 4. Corso Reti ed Applicazioni Mauro Campanella Como 2003 Capitolo 2 - parte 4 Corso Reti ed Applicazioni Mauro Campanella Como 2003 Agenda - Content Distribution Networks (CDN) - Peer to Peer M. Campanella Corso Reti ed Applicazioni - Como 2003 Cap 2-4 pag.

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

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

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

Sperimentazione del file system distribuito HDFS in ambiente grid

Sperimentazione del file system distribuito HDFS in ambiente grid Sperimentazione del file system distribuito HDFS in ambiente grid Giovanni Marzulli INFN Bari Tutor: dott. Domenico Diacono 4 Borsisti Day 13/09/2013 Outline Cosa è HDFS Attività svolta nel 2012 Test e

Dettagli

Sistemi RAID tutti i dati che contiene RAID

Sistemi RAID tutti i dati che contiene 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

Dettagli

Master SIT Settembre 2006. Corso Web & GIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr.

Master SIT Settembre 2006. Corso Web & GIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr. COSTRUIRE APPLICAZIONI WEB GIS: SERVIZI E STRATEGIE Corso - Master in Sistemi Informativi Territoriali AA 2005/2006 ISTI- CNR c.renso@isti.cnr.it I servizi WebGIS...1 Download di dati...3 Visualizzazione

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

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

Manuale utente. ver 1.0 del 31/10/2011

Manuale utente. ver 1.0 del 31/10/2011 Manuale utente ver 1.0 del 31/10/2011 Sommario 1. Il Servizio... 2 2. Requisiti minimi... 2 3. L architettura... 2 4. Creazione del profilo... 3 5. Aggiunta di un nuovo dispositivo... 3 5.1. Installazione

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

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

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

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

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

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

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

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

INTRODUZIONE A RETI E PROTOCOLLI

INTRODUZIONE A RETI E PROTOCOLLI PARTE 1 INTRODUZIONE A RETI E PROTOCOLLI Parte 1 Modulo 1: Introduzione alle reti Perché le reti tra computer? Collegamenti remoti a mainframe (< anni 70) Informatica distribuita vs informatica monolitica

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

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

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

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

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

CdL MAGISTRALE in INFORMATICA

CdL MAGISTRALE in INFORMATICA 05/11/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI 7. I processi : il naming Prof. S.Pizzutilo Il naming dei processi Nome = stringa di bit o di caratteri utilizzata per

Dettagli

Nuvola It Data Space

Nuvola It Data Space MANUALE UTENTE INDICE 1. Descrizione servizio... 3 1.1. Informazioni sul servizio di Telecom Italia... 3 1.2. Ruoli e Autenticazione per il servizio di Telecom Italia... 3 1.3. Strumenti... 5 1.4. Documentazione...

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

San Giovanni Teatino 29 Novembre 2012. Marco Perini Collaboration Value m.perini@computergross.it +39 366 6280251

San Giovanni Teatino 29 Novembre 2012. Marco Perini Collaboration Value m.perini@computergross.it +39 366 6280251 San Giovanni Teatino 29 Novembre 2012 Marco Perini Collaboration Value m.perini@computergross.it +39 366 6280251 Computergross e il Tailor Made L offering di Computer Gross si arricchisce di opportunità

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

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2014-2015. Ripasso programmazione ad oggetti. Basi di dati: premesse introduttive

SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2014-2015. Ripasso programmazione ad oggetti. Basi di dati: premesse introduttive SCHEDA DI PROGRAMMAZIONE DISCIPLINARE DA RIPORTARE SUL P.O.F. A.S. 2014-2015 ASSE DISCIPLINA DOCENTE MATEMATICO INFORMATICA Cattani Barbara monoennio CLASSE: quinta CORSO D SEZIONE LICEO SCIENZE APPLICATE

Dettagli

w w w. n e w s o f t s r l. i t Soluzione Proposta

w w w. n e w s o f t s r l. i t Soluzione Proposta w w w. n e w s o f t s r l. i t Soluzione Proposta Sommario 1. PREMESSA...3 2. NSPAY...4 2.1 FUNZIONI NSPAY... 5 2.1.1 Gestione degli addebiti... 5 2.1.2 Inibizione di un uso fraudolento... 5 2.1.3 Gestione

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

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione 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

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

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli