View syllabus
DISTRIBUTED ENABLING PLATFORMS
PATRIZIO DAZZI
Academic year2021/22
CourseCOMPUTER SCIENCE AND NETWORKING
Code534AA
Credits6
PeriodSemester 2
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
DISTRIBUTED ENABLING PLATFORMSINF/01LEZIONI48
PATRIZIO DAZZI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Al termine del corso lo studente conoscerà:

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

By the end of the course, students will know:

  • the key difficulties resulting from the execution of distributed applications;
  • the issues about the design and development of distributed enabling platforms;
  • some of the most important approaches for the efficient execution of distributed applications;
  • the foundational aspects of distributed enabling platforms;
Modalità di verifica delle conoscenze

La verifica delle conoscenze sarà oggetto della 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 le piattaforme abilitanti distribuite per l'analisi di dati statici di grossa dimensione;
  • a sfruttare le piattaforme abilitanti distribuite per l'analisi di dati in streaming;
  • a gestire in modo efficiente la trasmissione di grandi quantità di dati mediante specifiche piattaforme abilitanti distribuite;
  • a progettare ed eseguire applicazioni distribuite sotto forma di microservizi;
Skills

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

  • use distributed enabling platform targeting large, static data processing;
  • exploit distributed enabling platforms for data streaming analytics;
  • manage the efficient data exchange mediated by distributed enabling platforms;
  • design and run distributed applications when structured as microservices; 
Modalità di verifica delle capacità

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

Assessment criteria of skills

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

Comportamenti

Al termine del corso lo studente acquisirà la sensibilità necessaria ad identificare le piattaforme abilitanti distribuite più opportune per diverse classi di applicazioni data-centric. Lo studente sarà inoltre in grado di approcciare il problema dal punto di vista più opportuno e che gli garantisca di ottimizzare le prestazioni del sistema utilizzato.

Behaviors

By the end of the course, students will acquire the ability to identify the proper distributed enabling platform given a problem to deal with. Students will be also able to approach the problem from a proper perspective in order to be able to optimize the performances of the solution considered.

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 and the associated 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, pubblicazione di test per esercitazioni a casa, formazione di gruppi di lavoro, sono indicati sulla pagina classroom del corso;
  • è prevista la presenza di prove intermedie facoltative
Teaching methods

The course is structured as follows:

  • lectures supported by slides;
  • documents of various types are published on the classroom page of the course;
  • (optional) evaluations during the course;
Programma (contenuti dell'insegnamento)

Il corso Distributed enabling platforms è dedicato alle piattaforme di calcolo e comunicazione per infrastrutture di tipo Cloud, Edge e Datacenter, in senso lato.

Il corso si focalizza sugli strumenti dedicati all'analisi efficiente dei dati e alla gestione di applicazioni distribuite, anche quando dispiegate sotto forma di macchine virtuali e container. Le applicazioni di riferimento si contestualizzano nell'ambito dei sistemi data-centric quali, ad esempio, 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 Cloud, Edge and various kinds of datacentres. 

The course is focused on tools for the efficient analysis of data as well as the management of distributed applications, also when structured as microservices and VMs. Target applications are contextualized in the field of data-centric systems, such as AI-based algorithms, stream processing frameworks and bigdata 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/
Updated: 22/11/2021 23:38