Scheda programma d'esame
DISTRIBUTED SYSTEMS AND MIDDLEWARE TECHNOLOGIES
ALESSIO BECHINI
Academic year2023/24
CourseCOMPUTER ENGINEERING
Code879II
Credits6
PeriodSemester 1
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
DISTRIBUTED SYSTEMS AND MIDDLEWARE TECHNOLOGIESING-INF/05LEZIONI60
ALESSIO BECHINI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Il corso ha lo scopo di fornire agli studenti gli strumenti concettuali per il progetto, l'analisi e lo sviluppo delle applicazioni distribuite moderne. Dopo aver introdotto i principali modelli, paradigmi e algoritmi a supporto del software distribuito, sono presentati vari tipi di sistemi middleware, individuando le motivazioni che hanno portato alla loro proposta.

Knowledge

The course is aimed at providing students with proper conceptual and technological tools for the design, analysis, and development of modern distributed applications. After introducing models, paradigms and algorithms for distributed software, various types of middleware systems are presented, focusing on the issues they have been designed to deal with.
 

 

Modalità di verifica delle conoscenze

La conoscenza delle basi teoriche e degli aspetti tecnologici di alto livello verrà verificata in sede di esame orale. Lo studente è chiamato a fornire risposte utilizzando un linguaggio appropriato e tecnicamente corretto.

Assessment criteria of knowledge

The knowledge of the basic theoretical foundations and the high-level technological aspects will be assessed in during the oral exam. The student is expected to answer all the questions using a proper and technically sound language.

Capacità

Ci si aspetta che lo studente diventi in grado di affrontare problemi di comunicazione e coordinazione in applicazioni software distribuite, sviluppando soluzioni efficaci. Particolare enfasi è data all'impiego di sistemi middleware.

Gli studenti dovranno acquisire le capacità fondamentali per progettare, sviluppare e integrare sistemi software distribuiti, eventualmente costituiti da moduli eterogenei; questo dovrà essere tipicamente fatto tramite la scelta e l'utilizzo delle soluzioni middleware più adatte per risolvere i problemi tipici delle applicazioni enterprise distribuite.

Skills

The student is expected to become able to tackle communication and coordination problems in distributed software applications, developing effective solutions. Particular emphasys is given to the employment of middleware systems.

Students will acquire the basic skills to design, implement, and integrate distributed software, possibly made of heterogeneous components; moreover, they will acquire the ability to choose and apply the most suitable middleware solutions to address practical problems in distributed enterprise applications.

Modalità di verifica delle capacità

La capacità dello studente di progettare e sviluppare software distribuito nelle loro varie forme verrà verificata tramite i risultati conseguiti nel progetto assegnato. Tale progetto darà allo studente la possibilità di mostrare il livello raggiunto nella progettazione e nella programmazione.

Assessment criteria of skills

The student's ability in designing and developing distributed software in their different forms will be assessed through the results obtained in developing an assigned project. Such a project will give the student the opportunity to show his/her proficiency in design and coding.

 

Comportamenti

Lo studente svilupperà la sua sensibilità nell'individuare, all'interno di sistemi software, problemi molto sottili legati alla loro natura concorrente e alla loro implementazione in ambienti distribuiti.

Behaviors

The student will develop his/her awareness in spotting out subtle problems in software systems whose origin can be related to inherent concurrency issues, looking forward to their possible implementation in a distributed setting.

Modalità di verifica dei comportamenti

La sensibilità nell'individuare i problemi e le soluzioni relative al software distribuito è verificata nel progetto finale, nonché attraverso opportune domande in sede di orale.

Assessment criteria of behaviors

The developed ability to spot out problems and solutions in distributed software will be assessed in the final project, as well as through specific questions in the oral exam.

Prerequisiti (conoscenze iniziali)

Nozioni di sistemi operativi e tecniche di sincronizzazione. Linguaggio C e padronanza di Java.

Prerequisites

Knowledge of Operating Systems basics and synchronization techniques, C, and mastering of Java.

Indicazioni metodologiche

Tipo di lezione: frontale

Attività di apprendimento:

  • frequenza delle lezioni
  • studio individuale
  • lavoro di gruppo
  • àttività di laboratorio

Frequenza: Consigliata

Metodi d'insegnamento:

  • Lezioni
  • Laboratori
Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • individual study
  • group work
  • Laboratory work

Attendance: Advised

Teaching methods:

  • Lectures
  • laboratory
Programma (contenuti dell'insegnamento)

Nozioni di concorrenza, gestione di tasks/threads, paradigmi/modelli per computazioni distribuite, ruolo del Middleware.

Modello a scambio di messaggi, sistemi asincroni e sincroni. Tempo logico e causalità. Erlang: un linguaggio concorrente con scambio di messaggi. Algoritmi distribuiti fondamentali, problematiche legate ai guasti distribuiti.

Paradigmi di comunicazione (diretta/indiretta), RPC, RMI, Message-Oriented Messaging. Web Services

Framework paralleli/distribuiti: pattern, applicazioni web, component-based enterprise applications. Java Enterprise Edition. 

 

Consultare il sito web del corso per qualsiasi ulteriore dettaglio sul programma.

Syllabus

Notion of concurrency, management of tasks/threads, models/paradigms for distributed computations, use of Middleware.

Message passing model, asynchronous vs. synchronous systems. Logical time and causality. Erlang: a pconcurrent programming language with message passing. Basic distributed algorithms, issues with distributed faults.

Communication paradigms (direct vs. indirect), RPC, RMI, Message-Oriented Messaging. Web Services.

Parallel/distributed frameworks: patterns, web applications, component-based enterprise applications. Java Enterprise Edition.

 

Please refer to the course website for any further detail on the syllabus.

Bibliografia e materiale didattico

Il materiale didattico è reso disponibile sul gruppo MS Teams ufficiale del corso.  Il docente è disponibile riguardo a qualsiasi richiesta inerente al materiale didattico da usare.

Le registrazioni delle lezioni dell'anno precedente sono disponibili sul relativo gruppo MS Teams.

Bibliography

Learning material is posted and continuously uploaded on the official MS Teams channel for the course. The teacher is available to discuss any issue around learning material, if any, with the interested students.

Video recordings of lectures of the previous edition of the course are available on the relative MS Teams group..

Indicazioni per non frequentanti

Gli studenti non frequentanti sono invitati a contattare il docente per discutere riguardo al migliore approccio per arrivare a sostenere l'esame.

Le registrazioni dell'anno precedente, nonché il materiale didattico, sono disponibili sul "team" relativo (accessibile con questo link).

Non-attending students info

Students that cannot attend lectures are invited to contact the teacher to find the better way to study the course subjects and pass the final exam.

Video recordings of lectures of the previous edition of the course are available on the relative "team" (accessible via this link).

Modalità d'esame

L'esame finale è organizzato com segue:

a) sviluppo di un progetto, in gruppi di studenti

b) prova orale (eventualmente anche con esercizi da svolgere alla lavagna).

Il tema del progetto è proposto dal gruppo di studenti, e le relative specifiche sono definite insieme al docente, che ne approva la versione finale. Dopo aver svolto il progetto, il gruppo deve formalmente presentare al docente il lavoro svolto, per averne la valutazione. La prova orale può essere sostenuta soltanto previo giudizio positivo sulla presentazione del progetto.

Durante la prova orale, lo studente deve rispondere a varie domande relative all'intero programma del corso.

Assessment methods

The final test is organized as follows:

a) development of a project (teamwork)

b) oral exam (possibly with written exercises).

The project theme is proposed by groups of students, and the specifications are refined together with the teacher, who approves the final release. After the project development, the group must present the complete work to the teacher for its assessment. Admission to the oral exam is granted upon the positive assessment of the project work.

During the oral exams, the student is asked to answer multiple questions on topics in the whole course syllabus.

Altri riferimenti web

Vedi sito web del corso.

 

Additional web pages

See the course website.

Note

Nessuna.

Notes

None.

Updated: 03/08/2023 14:41