Offerta Didattica

 

ENGINEERING AND COMPUTER SCIENCE

DISTRIBUTED SYSTEMS (YEARLY)

Classe di corso: LM-32, 18 - Classe delle lauree magistrali in Ingegneria informatica
AA: 2022/2023
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
ING-INF/05CaratterizzanteLiberaLiberaNo
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
128049648048
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

Fa acquisire allo studente le competenze di base relative alla organizzazione, programmazione e gestione di un sistema distribuito, mettendolo in grado di capire cosa è un sistema distribuito, come viene strutturato, configurato e gestito. Far acquisire la capacità di analizzare e progettare, a livello di dispositivo e tecnologia, sistemi distribuiti sia in termini architetturali che gestionali. Favorire lo sviluppo dell’autonomia dello studente nella scelta della migliore soluzione architetturale e/o tecnologica del problema sotto esame. Far acquisire la capacità di esprimersi con adeguato linguaggio ai fini della corretta comunicazione delle scelte tecniche adottate e dei risultati ottenuti. Sviluppare l’autonoma capacità di aggiornamento in un settore, come quello dei sistemi distribuiti, che è caratterizzato da rapida e costante evoluzione tecnologica.

Learning Goals

Provide the student with basic knowledge related to the organization, programming and management of a distributed system, enabling him to understand what a distributed system is, how it is structured, configured and managed. Develop the ability to analyze and design, at device and technology level, distributed systems both in architectural and managerial terms. Encourage the development of student autonomy in choosing the best architectural and / or technological solution to the problem under examination. Promote the ability to express oneself with adequate language for the correct communication of the technical choices adopted and the results obtained. Develop the autonomous updating capacity in a sector, such as that of distributed systems, which is characterized by rapid and constant technological evolution.

Metodi didattici

Al fine di raggiungere gli obiettivi formativi previsti, il corso si svolge prevalentemente attraverso lezioni frontali. Sono inoltre previste Esercitazioni in laboratorio, esercitazioni guidate svolte dagli studenti, con lo scopo di stimolare l’approccio ai problemi con autonomia e senso critico. Tutte le attività sono svolte con supporto di slide delle lezioni.Sono previste interazioni continue con gli studenti per valutare l’interesse per la disciplina e il livello di apprendimento.

Teaching Methods

In order to achieve the expected objectives, the course mainly takes place through lectures. There are also practical based lessons in the laboratory and guided exercises with teacher support,with the aim of stimulating the approach to problem solving with autonomy and a critical thinking. All activities are carried out with the support of lecture slides. Continuous interactions with students is pursued to monitor students’ interest and learning progresses.

Prerequisiti

Conoscenza di linguaggi C, Java e Python e Sistema operativo Linux

Prerequisites

Basic knowledge of C, Java and Python languages, as well as Linux

Verifiche dell'apprendimento

La verifica dell’apprendimento avverrà attraverso tre modalità: elaborati di approfondimento relativi agli argomenti trattati a lezione; progetto finale; colloquio orale. Ogni singola parte verrà valutata in trentesimi. Il voto finale sarà dato da una media delle singole valutazioni. Gli elaborati di approfondimento prevedono alcune fasi di avanzamento e relative consegne obbligatorie. Queste andranno effettuate nelle date e con le modalità che saranno comunicate dal docente (relazioni, esercitazioni, power-point, etc.). Ogni elaborato proposto dal docente sarà valutato in trentesimi. Gli elaborati non hanno scadenza. Il progetto finale sarà assegnato durante la seconda parte del corso e riguarderà un problema di ampio respiro in cui lo studente avrà modo di applicare quanto appreso nella parte teorica, integrando le singole conoscenze e operando a livello di sistema. Sarà favorito ove possibile il lavoro di squadra e l’integrazione di parti sviluppate da terzi. La realizzazione del progetto finale avviene attraverso ripetute iterazioni con il docente e si intende superata se la valutazione complessiva non è inferiore a 18/30. Il progetto finale non ha scadenza. L’esame si svolgerà secondo le seguenti modalità: -colloquio sugli argomenti svolti durante il corso in cui saranno valutate le capacità di apprendimento e di riflessione critica; - -valutazione degli elaborati prodotti; -presentazione e discussione del progetto finale. La prova orale è incentrata sugli argomenti trattati durante il corso (definizioni, esempi rilevanti, applicazioni, collegamenti tra i vari argomenti…). Essa ha il duplice scopo di verificare il livello di conoscenza e di comprensione dei contenuti del corso e di valutare l’autonomia di giudizio, la capacità di apprendimento, l’abilità comunicativa e proprietà di linguaggio scientifico e indi valutare le facoltà logico-deduttive acquisite dallo studente. La prova orale si ritiene superata se la valutazione complessiva non è inferiore a 18/30. Il voto finale è espresso in trentesimi e tiene conto della valutazione ottenuta durante la prova orale, di quella relativa agli elaborati prodotti e di quella del progetto finale.

Assessment

Verification of learning will take place in three ways: homeworks relating to the topics covered in class; final project; oral interview. Each single part will be evaluated out of thirty. The final grade will be given by an average of the individual assessments. The homeworks will be assigned along the course progressing and will have mandatory deliveries. These will be carried out on the dates and in the manner that will be communicated by the teacher (reports, exercises, power-points, etc.). Each homework proposed by the teacher will be evaluated out of thirty. The homework do not have an expiry date. The final project will be assigned during the second part of the course and will concern a wide-ranging problem in which the student will have the opportunity to apply what has been learned in the theoretical part, integrating individual knowledge and operating at the system level. Teamwork and the integration of parts developed by third parties will be encouraged where possible. The realization of the final project takes place through repeated iterations with the teacher and is considered passed if the overall evaluation is not less than 18/30. The final project has no deadline. The exam will take place in the following ways: - interview on the topics covered during the course in which learning and critical reflection skills will be assessed; - -evaluation of the homeworks produced; - presentation and discussion of the final project. The oral exam focuses on the topics covered during the course (definitions, relevant examples, applications, links between the various topics…). It has the dual purpose of verifying the level of knowledge and understanding of the course contents and to evaluate the autonomy of judgment, the learning ability, the communicative ability and properties of scientific language and then evaluate the logical-deductive faculties acquired. by the student. The oral exam is passed if the overall mark is not less than 18/30. The final mark is expressed out of thirty and takes into account the evaluation obtained during the oral exam, that relating to the homeworks produced and that of the final project.

Programma del Corso

Il corso si articola in 3 fasi: la prima di apprendimento teorico sarà organizzata con lezioni ex-cathedra e studio individuale; la seconda di natura teorico-applicativa sarà organizzata attraverso lezioni ex-cathedra ed ex-tempore in aula attraverso attività di laboratorio; il terzo di natura applicativa sarà organizzato attraverso approfondimenti concordati con il docente da sviluppare in autonomia. Prima fase - Nella prima parte del corso, di natura teorica, verranno illustrati i principi e le teorie fondamentali di un sistema distribuito. Durante le lezioni verranno trattati i seguenti argomenti: Caratterizzazione di sistemi distribuiti: esempi, condivisione di risorse, world wide web Modelli di sistema: modelli fisici, modelli architetturali, modelli fondamentali Comunicazione tra processi: API, rappresentazione e marshalling dei dati, comunicazione multicast, virtualizzazione della rete Chiamata remota: protocollo request-reply, RPC, RMI Comunicazione indiretta: comunicazione di gruppo, sistemi di pubblicazionesottoscrizione, code di messaggi, memoria condivisa Cloud Computing: concetti introduttivi, modelli di riferimento, Openstack, Stack4Things Blockchain: alcuni esempi applicativi Seconda fase - La seconda fase si concentrerà sulle attività di laboratorio per consentire allo studente di verificare gli aspetti teorici trattati. In particolare, gli studenti svolgeranno le seguenti attività: Laboratorio sulla comunicazione tra processi: (ProtocolBuffer, OverlayNetwork), Chiamata remota, Comunicazione indiretta Laboratorio su chiamata remota (gRPC) Laboratorio su Openstack - Configurazione Keystone, Supporto del sistema operativo, Configurazione Neutron, Configurazione Glance e Nova Laboratorio sulla virtualizzazione Laboratorio su Arancino (dispositivo IoT) Laboratorio su Stack4Things Laboratorio su Blockchain Terza fase - in questa parte del corso verranno applicate le conoscenze acquisite attraverso attività di laboratorio finalizzate alla redazione di un paper sulla programmazione e gestione di un sistema distribuito.

Course Syllabus

The course is divided into 3 phases: the first of theoretical learning will be organized with ex-cathedra lessons and individual study; the second of a theoretical-applicative nature will be organized through ex-cathedra and ex-tempore lessons in the classroom through laboratory activities; the third of an applicative nature will be organized through in-depth studies agreed with the teacher to be developed independently. First phase - In the first part of the course, of a theoretical nature, the fundamental principles and theories of a distributed system will be illustrated. In the lectures the following topics will be covered: Characterization of distributed systems: examples, resources sharing, the world wide web System Models: physical models, architectural models, fundamental models Interprocess communication: API, data representation and marshalling, multicast communication, network virtualization Remote invocation: request-reply protocol, RPC, RMI Indirect communication: group communication, Publish-subscribe systems, message queues, shared memory Cloud Computing: introductory concepts, reference models, Openstack, Stack4Things Blockchain: introduction, public and private BC, Bitcoin, Ethereum, Hyperledger, examples and applications. Second phase - The second phase will focus on laboratory activities to enable the student to verify the theoretical aspects dealt with. In particular, students will carry out the following laboratory activities: Laboratory on Interprocess communication: (ProtocolBuffer, OverlayNetwork), Remote Invocation, Indirect Communication Laboratory on Remote Invocation (gRPC) Laboratory on Openstack - Keystone setup, Operating System Support, Neutron Setup, Glance and Nova Setup Laboratory on Virtualization Laboratory on Arancino (IoT device) Laboratory on Stack4Things Laboratory on Blockchain Third phase - in this part of the course the knowledge acquired through laboratory activities will be applied which are aimed at the preparation of a paper on programming and management of a distributed system.

Testi di riferimento: Distributed Systems: Principles and Paradigms, by Andrew S. Tanenbaum , Maarten Van Steen , ISBN-13: 978-0132392273, Pearson Distributed Systems: Concepts and Design, by George Coulouris , Jean Dollimore , Tim Kindberg , Gordon Blair, ISBN-13: 978-0132143011, Addison - Wesley

Elenco delle unità didattiche costituenti l'insegnamento

Docente: ANTONIO PULIAFITO

Orario di Ricevimento - ANTONIO PULIAFITO

GiornoOra inizioOra fineLuogo
Venerdì 11:00 13:00Studio del docente
Note: Contattare preventivamente il docente per email
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti