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

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

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

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

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

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

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

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

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

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

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 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

Parte II: Reti di calcolatori Lezione 9

Parte II: Reti di calcolatori Lezione 9 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 9 Martedì 1-04-2014 1 Applicazioni P2P

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

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

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

Modulo 8 Ethernet Switching

Modulo 8 Ethernet Switching Modulo 8 Ethernet Switching 8.1 Ethernet Switching 8.1.1 Bridging a livello 2 Aumentando il numero di nodi su un singolo segmento aumenta la probabilità di avere collisioni e quindi ritrasmissioni. Una

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

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante

1) Una periferica di input è: A) il mouse B) il monitor C) la stampante CONOSCENZE DI INFORMATICA 1) Una periferica di input è: A) il mouse B) il monitor C) la stampante 2) Una memoria in sola lettura con la particolarità di essere cancellata in particolari condizioni è detta:

Dettagli

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino Sistemi Operativi Modulo 2 Schema di un Sistema di Calcolo Programmi Dati di Input Calcolatore Dati di output Modello di von Neumann Bus di sistema CPU Memoria Centrale Memoria di Massa Interfaccia Periferica

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

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

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

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

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

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

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle

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

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

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

IBM iseries Soluzioni integrate per xseries

IBM iseries Soluzioni integrate per xseries Soluzioni innovative per l integrazione dei server Intel IBM iseries Soluzioni integrate per xseries La famiglia iseries, il cui modello più recente è l _` i5, offre due soluzioni che forniscono alternative

Dettagli

PROGETTAZIONE FISICA

PROGETTAZIONE FISICA PROGETTAZIONE FISICA Memorizzazione su disco, organizzazione di file e tecniche hash 2 Introduzione La collezione di dati che costituisce una BDD deve essere fisicamente organizzata su qualche supporto

Dettagli

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

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 Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

C Cloud computing Cloud storage. Prof. Maurizio Naldi

C Cloud computing Cloud storage. Prof. Maurizio Naldi C Cloud computing Cloud storage Prof. Maurizio Naldi Cos è il Cloud Computing? Con cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/

Dettagli

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: 1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere

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 Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

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

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

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

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

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. 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

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

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

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

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

Dettagli

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed

Dettagli

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono

Dettagli

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1 Introduzione Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio Livello applicativo Principi delle applicazioni di rete 2-1 Pila di protocolli Internet Software applicazione: di

Dettagli

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003 1.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003 1.1. Sistemi Operativi. D. Talia - UNICAL Domenico Talia Facoltà di Ingegneria UNICAL A.A. 2002-2003 1.1 Introduzione Presentazione del corso Cosa è un Sistema Operativo? Sistemi Mainframe Sistemi Desktop Sistemi Multiprocessori Sistemi Distribuiti

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

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

Corso Web programming

Corso Web programming Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1 Introduzione Un particolare ambito della programmazione

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

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

Windows Vista, il nuovo sistema operativo Microsoft che cerca le giuste risposte ai quesiti di sicurezza

Windows Vista, il nuovo sistema operativo Microsoft che cerca le giuste risposte ai quesiti di sicurezza Windows Vista, il nuovo sistema operativo Microsoft che cerca le giuste risposte ai quesiti di sicurezza Microsoft Windows è il sistema operativo più diffuso, ma paradossalmente è anche quello meno sicuro.

Dettagli

Richiami di informatica e programmazione

Richiami di informatica e programmazione Richiami di informatica e programmazione Il calcolatore E una macchina usata per Analizzare Elaborare Collezionare precisamente e velocemente una grande quantità di informazioni. Non è creativo Occorre

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

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA Corso di Sistemi Operativi Prof. Stefano Berretti SEMINARIO: VIRTUALIZZAZIONE DI INFRASTRUTTURE INFORMATICHE a cura di: Nicola Fusari A.A. 2012/2013

Dettagli

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003 Domenico Talia Facoltà di Ingegneria UNICAL A.A. 2002-2003 1.1 Introduzione Presentazione del corso Cosa è un Sistema Operativo? Sistemi Mainframe Sistemi Desktop Sistemi Multiprocessori Sistemi Distribuiti

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

Sistemi Operativi (modulo di Informatica II)

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

Dettagli

CORSI DI FORMAZIONE AMMEGA.IT. Formazione informatica di base IC 3 /MOS. http://www.ammega.it

CORSI DI FORMAZIONE AMMEGA.IT. Formazione informatica di base IC 3 /MOS. http://www.ammega.it Formazione informatica di base IC 3 /MOS http://www.ammega.it Formazione informatica di base IC 3 Descrizione sintetica IC 3 è un Programma di Formazione e Certificazione Informatica di base e fornisce

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Gestione del database Gidas

Gestione del database Gidas Gestione del database Gidas Manuale utente Aggiornamento 20/06/2013 Cod. SWUM_00535_it Sommario 1. Introduzione... 3 2. Requisiti e creazione del Database Gidas... 3 2.1.1. SQL Server... 3 2.1.2. Requisiti

Dettagli

Introduzione al Cloud Computing

Introduzione al Cloud Computing Risparmiare ed innovare attraverso le nuove soluzioni ICT e Cloud Introduzione al Cloud Computing Leopoldo Onorato Onorato Informatica Srl Mantova, 15/05/2014 1 Sommario degli argomenti Definizione di

Dettagli

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013 e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli