CdSCOMPUTER ENGINEERING
Codice879II
CFU6
PeriodoPrimo semestre
LinguaItaliano
Moduli | Settore/i | Tipo | Ore | Docente/i | |
DISTRIBUTED SYSTEMS AND MIDDLEWARE TECHNOLOGIES | ING-INF/05 | LEZIONI | 60 |
|
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Nozioni di sistemi operativi e tecniche di sincronizzazione. Linguaggio C e padronanza di Java.
Knowledge of Operating Systems basics and synchronization techniques, C, and mastering of Java.
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
Delivery: face to face
Learning activities:
- attending lectures
- individual study
- group work
- Laboratory work
Attendance: Advised
Teaching methods:
- Lectures
- laboratory
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.
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.
Il materiale didattico, nonchè letture o libri consigliati, è indicato (e continuamente aggiornato) sul sito del corso. Il docente è disponibile riguardo a qualsiasi richiesta inerente al materiale didattico da usare.
Learning material, as well as recommended readings/books, are listed and continuously updated on the course website. The teacher is available to discuss any issue around learning material, if any, with the interested students.
Gli studenti non frequentanti sono invitati a contattare il docente per discutere riguardo al migliore approccio per arrivare a sostenere l'esame.
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.
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. 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.
The final test is organized as follows:
a) development of a project, in groups of students
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. 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.
Vedi sito web del corso.
See the course website.
Nessuna.
None.