Inizio della pagina -
Logo DISCO
|
Visita la Versione ad elevata leggibilità
|
Vai al Contenuto della pagina
|
Vai alla Fine dei contenuti
|
Vai al Menu Principale
|
Vai alla Barra di navigazione (sei in)
|
Vai al Menu di navigazione (albero)
|
Vai alla Lista dei comandi
|
Vai alla Lista degli approfondimenti
|
Vai al Menu inferiore
|
Logo Ateneo
   
Per gli Studenti
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

Approfondimenti

Google Translate
Translate to English Translate to French Translate to German Translate to Spanish Translate to Chinese Translate to Portuguese Translate to Arabic
Translate to Albanian Translate to Bulgarian Translate to Croatian Translate to Czech Translate to Danish Translate to Dutch Translate to Finnish Translate to Greek Translate to Hindi
Translate to Hungarian Translate to Irish Translate to Japanese Translate to Korean Translate to Norwegian Translate to Polish Translate to Romanian Translate to Russian Translate to Serbian
Translate to Slovenian Translate to Swedish Translate to Thai Translate to Turkish

(C) Copyright 2016 - Dipartimento Informatica Sistemistica e Comunicazione - Viale Sarca, 336
20126 Milano - Edificio U14
redazioneweb@disco.unimib.it - ultimo aggiornamento di questa pagina 11/11/2013