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

Codice corso E3101Q020

Docente responsabile: 
Flavio M. De Paoli

PROGRAMMA

Obiettivi e contenuti:
Le applicazioni in rete rappresentano una parte sempre più rilevante del software prodotto. Sempre più spesso si sente parlare di sistemi peer-to-peer (p2p), sistemi ad agenti, applicazioni Web, Web Services, pervasive e ubiquitous computing. Lo scopo del corso è comprendere i concetti e i modelli dei sistemi distribuiti che sottendono lo sviluppo dei nuovi sistemi e delle nuove applicazioni, studiare le principali architetture e tecnologie software che implementano quei modelli. Infine acquisire la capacità di progettare e sviluppare applicazioni semplici, ma paradigmatiche, utilizzando le tecnologie studiate durante il corso: Java/RMI, Java/EJB, .NET e Web Services.

Programma:

  • Definizione e motivazioni per i sistemi distribuiti. Concetti fondamentali: comunicazione e naming, concorrenza e sincronizzazione, trasparenza. Proprietà fondamentali: prestazioni, affidabilità, flessibilità, disponibilità e scalabilità.
  • Richiami dei concetti di comunicazione: il modello a socket, il modello di chiamata di procedura remota, e il modello a oggetti distribuiti.
  • Modelli e architetture per sistemi distribuiti: modello client/server, modello peer-to-peer, comunicazione uno-a-uno e uno-a-molti, sistemi ad eventi, modelli per la gestione del tempo. Cenni ad algoritmi distribuiti. Architettura di server basati su Socket e RMI.
  • Middleware: modello ed architettura. Il concetto di Interface Definition Language (IDL) e linguaggi Di implementazione; Naming e Access. Il modello a componenti di J2EE.
  • Introduzione alla Service Oriented Computiong: sviluppo di applicazioni web e servizi. WSDL e UDDI. Linguaggi per la descrizione di processi e composizione di servizi.

Risultati di apprendimento previsti:
Conoscenza delle proprietà caratteristiche dei sistemi distribuiti e dei principali modelli di comunicazione e di architettura. Capacità di progettazione e sviluppo di semplici applicazioni distribuite.

Prerequisiti:
Conoscenza delle reti e dei protocollo di rete di calcolatori, linguaggi di programmazione a oggetti (java), principi di programmazione concorrente e distribuita.

PROGRAM
Aims and contents:
Networked applications are becoming the largest part of the produced software. It is common to talk about peer-to-peer systems (p2p), agent-based systems, Web applications, Web services, pervasive and ubiquitous computing. The objective of this course is to understand the concepts and the models of distributed systems that are behind the development of innovative applications and systems; study the reference architecture and technologies that implement such models. Finally, being able to develop simple, yet paradigmatic, applications with the studied technologies: Java/RMI, Java/EJB, .NET e Web Services.

Program details:

  • Definition and motivations for distributed systems. Basic concepts: communication, naming, concurrency and synchronization, transparency. Basic properties: performance, dependability, flexibility, availability and scalability.
  • Recall of the concepts of communications: the socket model and the remote-procedure-call model. Distributed object model.
  • Models and architecture for distributed systems: client/server, peer-to-peer, one-to-one and one-to-many communication, event-based systems, time management. Distributed algorithms.
  • Middleware: Models and architecture. The concept of Interface Definition Language (IDL) and implementation languages, naming and access. The component model of J2EE. EJB types.
  • Introduction to Service Oriented Computing: development of Web applications and services. WSDL and UDDI. Languages for process description and service composition.

Learning outcomes:
Understanding the basic properties characterizing distributed systems. Understanding the basic communication models and architectures. Ability of developing simple and representative applications with the technologies studied during the course.

Prerequisites:
Knowledge of the networking and protocol principles. Object-Oriented programming languages (java). Principles of concurrent and distributed programming.

Tipo esame:
Scritto e orale

Tipo valutazione:
Voto finale

 

 

 




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