Skip to main content
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
If you continue browsing this website, you agree to our policies:
  • Condizioni di utilizzo e trattamento dei dati
Continue
x
e-Learning - UNIMIB
  • Home
  • More
Listen to this page using ReadSpeaker
English ‎(en)‎
English ‎(en)‎ Italiano ‎(it)‎
 Log in
e-Learning - UNIMIB
Home
Percorso della pagina
  1. Science
  2. Bachelor Degree
  3. Informatica [E3102Q - E3101Q]
  4. Courses
  5. A.A. 2020-2021
  6. 2nd year
  1. Distributed Systems
  2. Summary
Insegnamento Course full name
Distributed Systems
Course ID number
2021-2-E3101Q112
Course summary SYLLABUS

Course Syllabus

  • Italiano ‎(it)‎
  • English ‎(en)‎
Export

Obiettivi

Al termine del corso lo studente conoscerà le proprietà caratteristiche e le architetture fondamentali dei sistemi distribuiti: concorrenti, client-server e peer-to-peer. Saprà sviluppare semplici applicazioni distribuite in ambiente Web/Internet.

Contenuti sintetici

Concetti, modelli e architetture dei sistemi concorrenti e distribuiti. Elementi fondamentali di progettazione e funzionamento dei sistemi distribuiti, con particolare riferimento al Web e a Internet.

Programma esteso

  1. Concetti fondamentali: definizioni e proprietà caratteristiche; modelli client-server e peer-to-peer; Architetture software (layers vs tiers); nomi, identificatori e indirizzi (URI e DNS); Message Oriented Communication: modelli persistenti e transienti. Modelli push e pull.
  2. Tecnologie di base Socket TCP/IP: client server e protocolli applicativi. I modelli client/server e peer-to-peer. Comunicazione basata su chiamata di procedura: Remote Procedure Call (RPC) e Remote Object Invocation (Java RMI).
  3. Applicazioni Web: Web Foundations (URI & HTTP) HTTP request/response.
    Web applications: servlet/JSP Pattern MVC.
    Client Web: Browser: Rich Interface Applications (Ajax).
    Web services: REST e Web API vs WSDL/SOAP.
  4. Argomenti monografici
    Semantic Web Services: Service annotation.
  5. Applicazioni web dinamiche:
    Introduzione a JavaScript; introduzione al framework jQuery; jQuery e tecniche AJAX
    Esempi di applicazioni web: esempi base JavaScript, debugging, modifica dinamica di una pagina, invocazione di servizi remoti.
  6. Rappresentazione dei dati HTML5 & CSS come modello per la rappresentazione e presentazione dei dati XML/ JSON come modello per il trasferimento dei dati RDF come modello di dati per il web semantico SPARQL come linguaggio di query per il web semantico Esempi di applicazioni di web semantico: interrogazioni a DBPedia e altri endpoint SPARQL, semplici mashup.
  7. Programmazione concorrente: Sincronizzazione e monitor. Modelli di programmazione multi-thread in Java con memoria condivisa. Cenni di modellazione con automi a stati finiti.

Prerequisiti

Programmazione a oggetti in Java e Junit test (Programmazione 2), Processi e comunicazione tra processi (Reti e Sistemi Operativi), Protocollo TCP/IP e socie (Reti e Sistemi Operativi), Linguaggi di markup (XML e HTML) e relativi strumenti di manipolazione , Automi a Stati Finiti (Linguaggi e Computabilità).

Modalità didattica

Il corso prevede lezioni ed esercitazioni in aula con attività di studio individuale supportate da materiali didattici in e-learning. Sono previste attività di laboratorio sia individuale sia di gruppo per lo sviluppo di semplici applicazioni distribuite di rete e in ambiente Web.

Nel periodo di emergenza Covid-19 le lezioni si svolgeranno in modalità mista: lezioni videoregistrate asincrone e lezioni sincrone in teleconferenza, con alcuni eventi in presenza fisica. Anche per il laboratorio si prevedono analoghe modalità: sessioni asincrone con presentazione di esercizi e assegnazione di nuovi esercizi da svolgere in autonomia, sessioni sincrone in teleconferenza di revisione e discussione degli esercizi svolti dagli studenti.

Lingua di erogazione dell’insegnamento: italiano

Materiale didattico

Sul sito elearning sono disponibili :

  • le slide delle lezioni in formato pdf.
  • ulteriore materiali (articoli a completamento dei testi di riferimento, link a risorse in rete, esercizi da svolgere) .
  • il materiale e le soluzioni degli esercizi svolti in laboratorio.


Testi di riferimento:

Distributed Systems: Principles and Paradigms - 2nd edition, Andrew S. Tanenbaum and Maarten van Steen, Pearson - Prentice Hall, 2007. Traduzione italiana: Sistemi Distribuiti - Seconda edizione, Pearson - Prentice Hall, 2007.

Già adottati nel corso di Reti e Sistemi Operativi:

Reti di calcolatori e internet – Un approccio top-down 4a Edizione, James F. Kurose, Keith W. Ross Addison Wesley – 2008, ISBN 9788871924557
Capitoli 1 e 2

A. Silberschatz, P. Baer Galvin, G. Gagne, Sistemi operativi - Concetti ed esempi, 8/Ed. 2009, ISBN 9788871925691
Capitoli 3, 4, 6, 7 e 16

Periodo di erogazione dell'insegnamento

secondo semestre

Modalità di verifica del profitto e valutazione

• Esame: prova scritta e eventuale orale -> fino a 30 punti

• Laboratorio -> fino a 4 punti

La prova consiste in:
a) domande sulle nozioni presentate
b) domande di ragionamento e deduzione
c) risoluzione di esercizi che richiedono lo sviluppo di una soluzione ad un problema assegnato

Prova scritta in laboratorio

• Fase 1: domande chiuse su argomenti di base per accedere alla fase 2 (punteggio maggiore di 4/6)

• Fase 2: domande chiuse + domande aperte

• Superamento dell'esame con punteggio >= 18/30

Prova orale (opzionale)

• Consiste nella restituzione dei compiti scritti con discussione ed eventuali domande supplementari a discrezione del docente.

Laboratorio

• Valutazione: svolgimento e consegna degli esercizi e di un piccolo progetto finale -> fino a 4 punti

• Alternativa per studenti lavoratori: PROGETTO da concordare -> fino a 4 punti

Prove in itinere (sostituiscono l’esame)

• prima prova:  Domande chiuse

• seconda prova:  Domande chiuse + domande aperte

•Alla seconda prova è ammesso chi ha ottenuto un punteggio >= 18/30 nella prima prova. Non ci sono recuperi.

È possibile fare progetti di approfondimento (facoltativi, valutati)

VOTO FINALE = ESAME + LABORATORIO (se frequentato) (+ progetto facoltativo)

VOTO FINALE studenti lavoratori = ESAME (+ PROGETTO facoltativo)

Nel periodo di emergenza Covid-19 la prova scritta sarà sostituita da una prova da remoto supervisionata: una sessione con domande aperte/chiuse sulla piattaforma ESAMI-ONLINE (HTTPS://ESAMIONLINE.ELEARNING.UNIMIB.IT) con monitoraggio PROCTORING/RESPONDUS, e una sessione orale in teleconferenza su un campione di studenti selezionato dai docenti. Le prove in itinere potrebbero non essere svolte

Orario di ricevimento

Prof. De Paoli: Mercoledì dalle 10:00 alle 12:00 o su appuntamento scrivendo a flavio.depaoli@unimib.it

Prof. Vizzari: Mercoledì mattina dalle 9:30 alle 11:30 o altro orario sempre su appuntamento.

Domande e discussioni sugli argomenti dell'insegnamento possono essere fatte utilizzando i forum presenti in elearning.

Export

Aims

Students will know the characteristic properties and reference organizations of concurrent, client-server and peer-to-peer distributed  systems. They will be able to develop simple distributed applications in Web/Internet environments.

Contents

Concepts, models and architecture of concurrent and distributes systems. Fundamentals of design and behavior of distributed systems, with specific reference to the Web and the Internet.

Detailed program

  1. Basic concepts: definition and characteristic properties; client-server and peer-topeer models; Software architectures (layers vs tiers); naming, identifier and address (URI e DNS);
  2. Basic technologies
    Socket TCP/IP: client server and application protocols.Client/server and peer-topeermodels. Communication by procedure call: Remote Procedure Call (RPC) and Remote Object Invocation (Java RMI).
  3. Web Applications
    Web Foundations (URI & HTTP) HTTP request/response. Web applications:
    servlet/JSP Pattern MVC. Client Web: Browser: Rich Interface Applications (Ajax).
    Web services: REST and Web API vs WSDL/SOAP.
  4. Monografic topics
    Semantic Web Services: Service annotation.
  5. Dynamic Web applications
    Introduction to JavaScript; introduction to the jQuery framework; jQuery and AJAX techniques Sample web applications: basic JavaScript examples, debugging, dynamic web page modification, remote services invocation.
  6. Rappresentazione dei dati HTML5 & CSS as a model for data represenation and presentation XML/ JSON as a model for data transfer RDF as data model for the semantic web SPARQL as query language for the semantic web Sample semantic web applications: querying DBPedia and other SPARQL endpoints, simple mashups.
  7. Concurrent programming: synchronization and monitors. Models based on shared memory multi-thread programming in Java. Hints of finite state automata modelling.

Prerequisites

Principles of Object-Oriented programming in java and Junit tests (Programming 2); Process and Interprocess Communication (Network and Operating Systems); TCP/IP protocol and Sockets (Network and Operating Systems); Markup languages (XML and HTML), related manipulation tools, and Finite State Automata (Languages and Computability) .

Teaching form

The course includes theoretical and exercises lectures integrated by individual study activities with e-learning support. Individual and group laboratory activities to develop simple distributed systems and Web applications will be also part of the course.

In the Covid-19 emergency period the lessons will be held in mixed mode: asynchronous video-recorded lessons and synchronous teleconference lessons, with some events in physical presence. Similar modalities are foreseen for the workshop: asynchronous sessions with presentation of exercises and assignment of new exercises to be carried out autonomously, synchronous teleconference sessions to review and discuss the exercises carried out by the students.

Teaching language: Italian

Textbook and teaching resource

On the e-learning site are available :

  • slides of the lessons in pdf format.
  • further material (articles to complete the reference texts, links to online resources, exercises to be carried out).
  • equipment and solutions for exercises carried out in the laboratory.


Textbooks:

Distributed Systems: Principles and Paradigms - 2nd edition, Andrew S. Tanenbaum and Maarten van Steen, Pearson - Prentice Hall, 2007.

Already adopted in the course of Networks and Operating Systems:

Reti di calcolatori e internet – Un approccio top-down 4a Edizione, James F. Kurose, Keith W. Ross Addison Wesley – 2008, ISBN 9788871924557
Chapter 1, 2

A. Silberschatz, P. Baer Galvin, G. Gagne, Sistemi operativi - Concetti ed esempi, 8/Ed. 2009, ISBN 9788871925691
Chapter 3, 4, 6, 7, 16


Semester

second semester

Assessment method

Examination: separate written test and optional oral exam -> up to 30 points
Laboratory -> up to 4 points

The test deals with:
(a) questions on the concepts presented
(b) requests for reasoning and deduction
(c) resolution of exercises that require the development of a solution to an assigned problem

Written test in the laboratory
Phase 1: Multiple chiose  questions on basic subjects for admission to Phase 2 (score higher then 4/6)
Phase 2: Multiple chiose questions + open questions
The exam is passed with score >= 18/30
Oral exam (optional)
It consists of the restitution of written tests with discussion, and any additional questions at the teacher's discretion.

Laboratory
Evaluation: development and delivery of exercises and a final small project -> up to 4 points
Alternative for student workers: PROJECT to be agreed with teachers -> up to 4 points

In itinere tests (replace exam)
First test:  Closed questions
Second test: Closed questions + open questions
Whoever has scored >= 18/30 in the first test is admitted in the second test. There are no recovery tests.

It is possible to make additional work projects (optional, evaluated)

FINAL VOTE = EXAMINATION + LABORATORY (if attended) (+ optional work project)
FINAL VOTE for working students = EXAMINATION  (+  optional PROJECT)

In the Covid-19 emergency period the written test will be replaced by a supervised remote test: a session with open/closed questions on ESAMI-ONLINE (HTTPS://ESAMIONLINE.ELEARNING.UNIMIB.IT) with monitoring with PROCTORING/RESPONDUS, and an oral session in teleconference for a sample of students selected by the teachers. The in-itinere tests may not be held

Office hours

Prof. De Paoli: Thuresday from 10:00 to 12:00 or by appointment by writing to flavio.depaoli@unimib.it

Prof. Vizzari: Wednesday from 9:30 to 11:30 or other days/times always by appointment.

Questions and discussions on teaching topics can be posed using the forums in e-learning.

Enter

Key information

Field of research
INF/01
ECTS
8
Term
Second semester
Activity type
Mandatory
Course Length (Hours)
76
Degree Course Type
Degree Course

Staff

    Teacher

  • FD
    Flavio Maria De Paoli
  • Assistant

  • RB
    Riccardo Berto
  • MS
    Matteo Scarpone

Students' opinion

View previous A.Y. opinion

Bibliography

Find the books for this course in the Library

Enrolment methods

Manual enrolments

You are not logged in. (Log in)
Policies
Get the mobile app
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy policy
  • Accessibility
  • Statistics