Scheda programma d'esame
DISTRIBUTED ENABLING PLATFORMS
PATRIZIO DAZZI
Anno accademico2022/23
CdSINFORMATICA E NETWORKING
Codice534AA
CFU6
PeriodoSecondo semestre
LinguaInglese

ModuliSettoreTipoOreDocente/i
PIATTAFORME ABILITANTI DISTRIBUITEINF/01LEZIONI48
PATRIZIO DAZZI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Al termine del corso lo studente conoscerà:

  • le principali problematiche derivanti dall'esecuzione efficiente di applicazioni in ambito distribuito;
  • le problematiche chiave relative alla progettazione e sviluppo di piattaforme che abilitino lo sviluppo e l'esecuzione di applicazioni in ambito distribuito;
  • alcune delle più importanti strategie volte alla progettazione e all'esecuzione efficiente di applicazioni distribuite;
  • gli elementi caratterizzanti le principali piattaforme distribuite esistenti;
Knowledge

By the end of the course, students will know:

  • the complexities resulting from the efficient execution of applications in a distributed environment;
  • the issues about the design and development of platforms enabling the development and execution of distributed applications;
  • some of the most important approaches and strategies for the efficient execution of distributed applications;
  • the key aspects of existing distributed platforms;
Modalità di verifica delle conoscenze

La verifica delle conoscenze avverrà mediante la valutazione del progetto concordato con il docente e del successivo esame orale.

Assessment criteria of knowledge

The actual acquisition of knowledge will be assessed through the project evaluation and the subsequent oral examination;

Capacità

Al termine del corso lo studente avrà acquisito le capacità necessarie:

  • ad utilizzare in modo efficiente una o più piattaforme di calcolo per l'elaborazione di applicazioni distribuite, quali, ad esempio, l'analisi distribuita di collezioni di dati di grossa dimensione, anche quando disponibili in stream;
  • a progettare, sviluppare e gestire dinamicamente, tramite piattaforme dedicate, applicazioni distribuite efficienti;
  • a gestire in modo efficiente la trasmissione di grandi quantità di dati mediante specifiche piattaforme distribuite;
Skills

By the end of the course, students will acquire the following skills:

  • to use efficiently one or more distributed platforms for enabling the execution of distributed applications, such as the ones for the analysis of large datasets, also when data belongs to streams of data;
  • to design, develop and manage dynamically distributed platforms by leveraging proper platforms;
  • to efficiently manage the transfer of a large amount of data using specific distributed platforms;
Modalità di verifica delle capacità

Lo studente dovrà redigere e presentare una relazione scritta che riporti i risultati dell'attività di progetto, che inquadri quanto realizzato nel contesto delle tematiche del corso, sottolineando le problematiche affrontate, i vantaggi e i limiti della soluzione proposta. 

Assessment criteria of skills

Students will write and present a written report describing the results achieved with the project, framing it in the context of course key topics while highlighting the challenges and the pros and cons of the proposed solution.

Comportamenti

Al termine del corso lo studente acquisirà la sensibilità necessaria ad identificare le piattaforme di calcolo distribuite più opportune per diverse classi di applicazioni.

Lo studente sarà inoltre in grado di approcciare il problema dal punto di vista più opportuno e che gli garantisca di ottimizzare le prestazioni della piattaforma utilizzata.

Behaviors

By the end of the course, students will acquire the ability to identify the most relevant distributed platform given an application to deal with.

Students will be also able to approach the problem from a proper perspective in order to optimize the performance of the underlying distributed platform.

Modalità di verifica dei comportamenti

La congruità della metodologia di indagine per la selezione degli strumenti più opportuni, e per l'inquadramento e definizione del problema saranno determinati dalla valutazione del progetto e della relazione ad esso allegata.

Assessment criteria of behaviors

The aptness of the methodology, approach and instruments adopted by students will be assessed by evaluating the project they are called to deliver, as well as from the project report.

Prerequisiti (conoscenze iniziali)

La conoscenza pregressa di almeno uno dei seguenti linguaggi di programmazione è da considerarsi molto utile per seguire il corso in modo proficuo:

  • Java
  • Scala
  • Python
Prerequisites

Prior knowledge of at least one of the following languages should be considered beneficial to a better understanding of the course:

  • Java
  • Scala
  • Python
Indicazioni metodologiche

Il corso si articola nel seguente modo:

  • lezioni frontali, con ausilio di slides;
  • i materiali didattici, comunicazioni docente-studenti, formazione di gruppi di lavoro, che saranno indicati sulla pagina del corso;
  • utilizzo di una risorsa di calcolo condivisa tra gli studenti sulla quale svolgere le esercitazioni;
Teaching methods

The course is structured as follows:

  • lectures supported by slides;
  • documents of various types that will be published on the classroom page of the course;
  • hands-on using a shared computer or cluster of machines;
Programma (contenuti dell'insegnamento)

Il corso Distributed Enabling Platforms è dedicato alle piattaforme di calcolo e comunicazione per infrastrutture distribuite di grande dimensione, tipicamente organizzati in accordo ai paradigmi di tipo Cluster, Cloud ed Edge.

Il corso si focalizza sugli strumenti dedicati all'analisi efficiente delle applicazioni e la loro gestione distribuita, anche quando dispiegate sotto forma di macchine virtuali e container. Saranno discusse le problematiche e le relative soluzioni utilizzando diverse applicazioni di riferimento per i diversi ambiti descritti. A titolo di esempio, saranno discussi i sistemi data-centric quali, gli algoritmi per l'intelligenza artificiale, approcci per il processamento di stream di immagini e analisi big data.

Syllabus

Distributed Enabling Platforms is aimed at presenting and describing the most important communication and computing platforms that run on top of Clusters, Cloud and Edge infrastructures. 

The course is focused on tools for the efficient analysis of applications as well as their management, also when structured as microservices and VMs. Target applications will be contextualized in the respective fields and domains. For instance, the most appropriate systems for data-centric applications will be discussed, such as AI-based algorithms, stream processing frameworks and big data toolkits.

Bibliografia e materiale didattico
  • Marteen van Steen, Andrew S. Tanenbaum, Distributed Systems 3rd edition
  • Jonas Bonér, Reactive Microsystems
  • Jonathan Leibiusky, Gabriel Eisbruch, and Dario Simonassi, Getting Started with Storm
  • Alex Holmes, Hadoop in Practice
  • Ben Stopford, Designing Event-Driven Systems
  • https://spark.apache.org/docs/latest/index.html
Bibliography
  • Marteen van Steen, Andrew S. Tanenbaum, Distributed Systems 3rd edition
  • Jonas Bonér, Reactive Microsystems
  • Jonathan Leibiusky, Gabriel Eisbruch, and Dario Simonassi, Getting Started with Storm
  • Alex Holmes, Hadoop in Practice
  • Ben Stopford, Designing Event-Driven Systems
  • https://spark.apache.org/docs/latest/index.html
Indicazioni per non frequentanti

Le modalità d'esame per i non frequentanti sono le medesime. Si richiede di contattare il docente con un ragionevole anticipo, che consenta di affrontare la realizzazione del progetto in modo adeguato.

Non-attending students info

There is no specific rule or approach that non-attending students have to undertake. Non-attending students are suggested to contact the lecturer in advance;

Modalità d'esame

L'esame è composto da un progetto, concordato con il docente, ed una successiva prova orale, divisa in due parti: una che si focalizzerà sul progetto realizzato, l'altra su tematiche generali affrontate a lezione;

Assessment methods

Assessment will be achieved by means of a project and a subsequent oral examination. This last is made of two parts: the first part is tailored to the project developed, the second is focused on general concepts presented during the course.

Altri riferimenti web
  • https://hadoop.apache.org/
  • https://spark.apache.org/
  • https://storm.apache.org/
  • https://kafka.apache.org/
  • https://flink.apache.org/
  • https://cassandra.apache.org/
  • https://kubernetes.io/
  • https://www.terraform.io/
  • http://druid.apache.org/

 

Additional web pages
  • https://hadoop.apache.org/
  • https://spark.apache.org/
  • https://storm.apache.org/
  • https://kafka.apache.org/
  • https://flink.apache.org/
  • https://cassandra.apache.org/
  • https://kubernetes.io/
  • https://www.terraform.io/
  • http://druid.apache.org/
Ultimo aggiornamento 19/09/2022 19:37