Page begin -
Logo DISCO
|
Go to the Highly accessible area
|
Go to the Content page
|
Go to the End of content
|
Go to the Main menu
|
Go to the Navigation Bar (location)
|
Go to the Navigation menu (tree)
|
Go to the Commands list
|
Go to the Further readings
|
Go to the Bottom Menu
|
Logo Ateneo
   
Education
Sistemi distribuiti (secondo anno)

Codice ins.

Insegnamento

CFU ins.

Tipo ins.

Anno

Sem.

SSD ins.

Responsabile insegnamento

E3101Q020

Sistemi distribuiti

8

OBB

2

2

INF/01

DE PAOLI Flavio

 

Distributed Systems

 

 

 

 

 

 

Contenuti:
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.

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

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

Metodi didattici:
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 in ambiente Web/Internet.

Programma esteso:

  • 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); Modelli di comunicazione a chiamata di procedura remota e a messaggi (RPC/RMI e Socket); Modelli di comunicazione transienti e persistenti, push e pull.
  • Applicazioni Web: Il protocollo HTTP;Java servlet/JSP, Pattern MVC;Rich Interface Applications (AJAX); Formato dei dati (XML, JSON, RDF/Linked Data);Web services (RESTfull e WSDL/SOAP) e Web API, annotazioni semantiche (cenni).
  • Programmazione Concorrente: modelli a memoria condivisa e scambio messaggi; modellazione con automi a stati finiti; mutua esclusione e coordinamento; blocco individuale (starvation) e stallo (deadlock); programmazione multi-thread in Java.
  • Approfondimenti: applicazioni di mashup e Web 2.0; Virtualizzazione (cenni),cloud computing e cloud storage; Algoritmi distribuiti (ordinamento dei messaggi, replica, gestione dei guasti).

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.
Dal 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
A. Silberschatz, P. BaerGalvin, G. Gagne, Sistemi operativi - Concetti ed esempi, 8/Ed. 2009, ISBN 9788871925691

Modalità di verifica dell'apprendimento
Tipo esame:
Scritto e orale separati
Tipo valutazione:
Voto finale

Contents:

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

Goals:

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

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) and related manipulation tools (Languages and Computability); Finite State Automata.

Metodi didattici:
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 will be also part of the course.

Program:

  • Basic concepts: definition and characteristic properties; client-server and peer-to-peer models; Software architectures (layers vs tiers);naming, identifier and address (URI e DNS); Communication models based remote procedure calls and messages (RPC/RMI e Socket); Persistent and transient, push and pull communication models.
  • Web applications: HTTP protocol; Java servlet/JSP, Pattern MVC; Rich Interface Applications (AJAX); data formats (XML, JSON, RDF/Linked Data); Web services (RESTfull e WSDL/SOAP) and Web API, semantic annotations (outline).
  • Concurrent programming: models based on shared memory and message passing; finite state automata modeling; mutual exclusions and coordination; starvation and deadlock; multi-thread programming in Java.
  • Extensions: Mashup and Web 2.0 applications; Virtualization (outline), cloud computing and cloud storage; Distributed algorithms (message sorting, replication, fault management). 

Textbooks:
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.
In use for “Network 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
A. Silberschatz, P. Baer Galvin, G. Gagne, Sistemi operativi – Concetti ed esempi, 8/Ed. 2009, ISBN 9788871925691

Learning tests:
Exam:
Written and oral independent tests
Evaluation:
Final mark

Further readings
(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - last update of this page 11/11/2013