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

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

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

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

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

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

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

Indicizzazione terza parte e modello booleano

Indicizzazione terza parte e modello booleano Reperimento dell informazione (IR) - aa 2014-2015 Indicizzazione terza parte e modello booleano Gruppo di ricerca su Sistemi di Gestione delle Informazioni (IMS) Dipartimento di Ingegneria dell Informazione

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

IT-BOOK. Domini Hosting Web marketing E-mail e PEC

IT-BOOK. Domini Hosting Web marketing E-mail e PEC 5 giugno 09 IT-BOOK Configurazioni e cartatteristiche tecniche possono essere soggette a variazioni senza preavviso. Tutti i marchi citati sono registrati dai rispettivi proprietari. Non gettare per terra:

Dettagli

Sizing di un infrastruttura server con VMware

Sizing di un infrastruttura server con VMware Sizing di un infrastruttura server con VMware v1.1 Matteo Cappelli Vediamo una serie di best practices per progettare e dimensionare un infrastruttura di server virtuali con VMware vsphere 5.0. Innanzitutto

Dettagli

Per questa ragione il nostro sforzo si è concentrato sugli aspetti elencati qui di seguito:

Per questa ragione il nostro sforzo si è concentrato sugli aspetti elencati qui di seguito: Autore : Giulio Martino IT Security, Network and Voice Manager Technical Writer e Supporter di ISAServer.it www.isaserver.it www.ocsserver.it www.voipexperts.it - blogs.dotnethell.it/isacab giulio.martino@isaserver.it

Dettagli

CORPORATE OVERVIEW. www.akhela.com

CORPORATE OVERVIEW. www.akhela.com CORPORATE OVERVIEW www.akhela.com BRIDGE THE GAP CORPORATE OVERVIEW Bridge the gap Akhela è un azienda IT innovativa che offre al mercato servizi e soluzioni Cloud Based che aiutano le aziende a colmare

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

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 della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

Dettagli

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it

UML: Class Diagram. Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it UML: Class Diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania Class Diagram Forniscono una vista strutturale

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Web Conferencing and Collaboration tool

Web Conferencing and Collaboration tool Web Conferencing and Collaboration tool La piattaforma Meetecho Piattaforma di Web Conferencing e Collaborazione on line in tempo reale Caratteristiche generali Soluzione client-server progettata per essere

Dettagli

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato Intalio Convegno Open Source per la Pubblica Amministrazione Leader nei Sistemi Open Source per il Business Process Management Navacchio 4 Dicembre 2008 Andrea Calcagno Amministratore Delegato 20081129-1

Dettagli

ARP (Address Resolution Protocol)

ARP (Address Resolution Protocol) ARP (Address Resolution Protocol) Il routing Indirizzo IP della stazione mittente conosce: - il proprio indirizzo (IP e MAC) - la netmask (cioè la subnet) - l indirizzo IP del default gateway, il router

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

Il World Wide Web: nozioni introduttive

Il World Wide Web: nozioni introduttive Il World Wide Web: nozioni introduttive Dott. Nicole NOVIELLI novielli@di.uniba.it http://www.di.uniba.it/intint/people/nicole.html Cos è Internet! Acronimo di "interconnected networks" ("reti interconnesse")!

Dettagli

Ricapitoliamo. Ricapitoliamo

Ricapitoliamo. Ricapitoliamo Ricapitoliamo Finora ci siamo concentrati sui processi computazionali e sul ruolo che giocano le procedure nella progettazione dei programmi In particolare, abbiamo visto: Come usare dati primitivi (numeri)

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

DNS (Domain Name System) Gruppo Linux

DNS (Domain Name System) Gruppo Linux DNS (Domain Name System) Gruppo Linux Luca Sozio Matteo Giordano Vincenzo Sgaramella Enrico Palmerini DNS (Domain Name System) Ci sono due modi per identificare un host nella rete: - Attraverso un hostname

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

Agilent OpenLAB Chromatography Data System (CDS) Agilent OpenLAB Chromatography Data System (CDS) EZChrom Edition e ChemStation Edition Requisiti hardware e software Agilent Technologies Informazioni legali Agilent Technologies, Inc. 2013 Nessuna parte

Dettagli

SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI. Security for Virtual and Cloud Environments

SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI. Security for Virtual and Cloud Environments SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI Security for Virtual and Cloud Environments PROTEZIONE O PRESTAZIONI? Già nel 2009, il numero di macchine virtuali aveva superato quello dei

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Active Solution & Systems illustra La virtualizzazione dei Server secondo il produttore di Storage Qsan

Active Solution & Systems illustra La virtualizzazione dei Server secondo il produttore di Storage Qsan Active Solution & Systems illustra La virtualizzazione dei secondo il produttore di Storage Qsan Milano, 9 Febbraio 2012 -Active Solution & Systems, società attiva sul mercato dal 1993, e da sempre alla

Dettagli

***** Il software IBM e semplice *****

***** Il software IBM e semplice ***** Il IBM e semplice ***** ***** Tutto quello che hai sempre voluto sapere sui prodotti IBM per qualificare i potenziali clienti, sensibilizzarli sulle nostre offerte e riuscire a convincerli. WebSphere IL

Dettagli

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho

Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho Web conferencing e collaborazione in tempo reale su Internet: la piattaforma Meetecho Tobia Castaldi Alessandro Amirante Lorenzo Miniero Simon Pietro Romano Giorgio Ventre 02/10/2009 GARR 2009 "Network

Dettagli

progettiamo e realizziamo architetture informatiche Company Profile

progettiamo e realizziamo architetture informatiche Company Profile Company Profile Chi siamo Kammatech Consulting S.r.l. nasce nel 2000 con l'obiettivo di operare nel settore I.C.T., fornendo servizi di progettazione, realizzazione e manutenzione di reti aziendali. Nel

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Architettura di un sistema informatico 1 CONCETTI GENERALI

Architettura di un sistema informatico 1 CONCETTI GENERALI Architettura di un sistema informatico Realizzata dal Dott. Dino Feragalli 1 CONCETTI GENERALI 1.1 Obiettivi Il seguente progetto vuole descrivere l amministrazione dell ITC (Information Tecnology end

Dettagli

BRM. Tutte le soluzioni. per la gestione delle informazioni aziendali. BusinessRelationshipManagement

BRM. Tutte le soluzioni. per la gestione delle informazioni aziendali. BusinessRelationshipManagement BRM BusinessRelationshipManagement Tutte le soluzioni per la gestione delle informazioni aziendali - Business Intelligence - Office Automation - Sistemi C.R.M. I benefici di BRM Garantisce la sicurezza

Dettagli

> MULTI TASKING > MULTI PROCESS > MULTI CORE

> MULTI TASKING > MULTI PROCESS > MULTI CORE > MULTI TASKING > MULTI PROCESS > MULTI CORE WorkNC V21 multicore 64 bits : Benefici di WorkNC Aumento generale della produttività, grazie alle nuove tecnologie multi-core, 64 bit e Windows 7 Calcolo di

Dettagli

È nata una nuova specie di avvocati. Liberi.

È nata una nuova specie di avvocati. Liberi. È nata una nuova specie di avvocati. Liberi. LIBERI DI NON PENSARCI Basta preoccupazioni per il back-up e la sicurezza dei tuoi dati. Con la tecnologia Cloud Computing l archiviazione e la protezione dei

Dettagli

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi. Internet: la rete delle reti Alberto Ferrari Connessioni

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

DigitPA egovernment e Cloud computing

DigitPA egovernment e Cloud computing DigitPA egovernment e Cloud computing Esigenze ed esperienze dal punto di vista della domanda RELATORE: Francesco GERBINO 5 ottobre 2010 Agenda Presentazione della Società Le infrastrutture elaborative

Dettagli

Ottimizzazione della gestione del data center con Microsoft System Center

Ottimizzazione della gestione del data center con Microsoft System Center Ottimizzazione della gestione del data center con Microsoft System Center Declinazione di responsabilità e informazioni sul copyright Le informazioni contenute nel presente documento rappresentano le conoscenze

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

Business Intelligence. Il data mining in

Business Intelligence. Il data mining in Business Intelligence Il data mining in L'analisi matematica per dedurre schemi e tendenze dai dati storici esistenti. Revenue Management. Previsioni di occupazione. Marketing. Mail diretto a clienti specifici.

Dettagli

Sistemi avanzati di gestione dei Sistemi Informativi

Sistemi avanzati di gestione dei Sistemi Informativi Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

FileMaker Server 13. Guida introduttiva

FileMaker Server 13. Guida introduttiva FileMaker Server 13 Guida introduttiva 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono marchi

Dettagli

PASSIONE PER L IT PROLAN. network solutions

PASSIONE PER L IT PROLAN. network solutions PASSIONE PER L IT PROLAN network solutions CHI SIAMO Aree di intervento PROFILO AZIENDALE Prolan Network Solutions nasce a Roma nel 2004 dall incontro di professionisti uniti da un valore comune: la passione

Dettagli

Guida alle offerte di finanziamento per le medie imprese

Guida alle offerte di finanziamento per le medie imprese IBM Global Financing Guida alle offerte di finanziamento per le medie imprese Realizzata da IBM Global Financing ibm.com/financing/it Guida alle offerte di finanziamento per le medie imprese La gestione

Dettagli

Il Sistema Operativo: il File System

Il Sistema Operativo: il File System Il Sistema Operativo: il File System Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti (memoria secondaria) I file vengono

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

I N F I N I T Y Z U C C H E T T I WORKFLOW HR

I N F I N I T Y Z U C C H E T T I WORKFLOW HR I N F I N I T Y Z U C C H E T T I WORKFLOW HR WORKFLOW HR Zucchetti, nell ambito delle proprie soluzioni per la gestione del personale, ha realizzato una serie di moduli di Workflow in grado di informatizzare

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Lezione n 1! Introduzione"

Lezione n 1! Introduzione Lezione n 1! Introduzione" Corso sui linguaggi del web" Fondamentali del web" Fondamentali di una gestione FTP" Nomenclatura di base del linguaggio del web" Come funziona la rete internet?" Connessione"

Dettagli

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace:

Introduzione. E un sistema EAI molto flessibile, semplice ed efficace: Overview tecnica Introduzione E un sistema EAI molto flessibile, semplice ed efficace: Introduce un architettura ESB nella realtà del cliente Si basa su standard aperti Utilizza un qualsiasi Application

Dettagli

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

Guida al nuovo sistema di posta. CloudMail UCSC. (rev.doc. 1.4)

Guida al nuovo sistema di posta. CloudMail UCSC. (rev.doc. 1.4) Guida al nuovo sistema di posta CloudMail UCSC (rev.doc. 1.4) L Università per poter migliorare l utilizzo del sistema di posta adeguandolo agli standard funzionali più diffusi ha previsto la migrazione

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Utilizzato con successo nei più svariati settori aziendali, Passepartout Mexal BP è disponibile in diverse versioni e configurazioni:

Utilizzato con successo nei più svariati settori aziendali, Passepartout Mexal BP è disponibile in diverse versioni e configurazioni: Passepartout Mexal BP è una soluzione gestionale potente e completa per le imprese che necessitano di un prodotto estremamente flessibile, sia dal punto di vista tecnologico sia funzionale. Con più di

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless La configurazione degli indirizzi IP Configurazione statica, con DHCP, e stateless 1 Parametri essenziali per una stazione IP Parametri obbligatori Indirizzo IP Netmask Parametri formalmente non obbligatori,

Dettagli

Posta Elettronica. Claudio Cardinali claudio@csolution.it

Posta Elettronica. Claudio Cardinali claudio@csolution.it Posta Elettronica Claudio Cardinali claudio@csolution.it Posta Elettronica: WebMail Una Webmail è un'applicazione web che permette di gestire uno o più account di posta elettronica attraverso un Browser.

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it Sicurezza delle reti wireless Alberto Gianoli alberto.gianoli@fe.infn.it Concetti di base IEEE 802.11: famiglia di standard tra cui: 802.11a, b, g: physical e max data rate spec. 802.11e: QoS (traffic

Dettagli

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi

Inidirizzi IP e Nomi di Dominio. Domain Name System. Spazio dei Nomi Piatto. Gestione dello Spazio dei Nomi I semestre 03/04 Inidirizzi IP e Nomi di Dominio Domain Name System Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Lezione 15 File System

Lezione 15 File System Lezione 15 File System Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2014/2015 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

Asset sotto controllo... in un TAC. Latitudo Total Asset Control

Asset sotto controllo... in un TAC. Latitudo Total Asset Control Asset sotto controllo... in un TAC Latitudo Total Asset Control Le organizzazioni che hanno implementato e sviluppato sistemi e processi di Asset Management hanno dimostrato un significativo risparmio

Dettagli

Applicazione: Share - Sistema per la gestione strutturata di documenti

Applicazione: Share - Sistema per la gestione strutturata di documenti Riusabilità del software - Catalogo delle applicazioni: Gestione Documentale Applicazione: Share - Sistema per la gestione strutturata di documenti Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi.

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi. I server di stampa vengono utilizzati per collegare le stampanti alle reti. In tal modo, più utenti possono accedere alle stampanti dalle proprie workstation, condividendo sofisticate e costose risorse.

Dettagli

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it Zabbix 4 Dummies Dimitri Bellini, Zabbix Trainer Quadrata.it Relatore Nome: Biografia: Dimitri Bellini Decennale esperienza su sistemi operativi UX based, Storage Area Network, Array Management e tutto

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli