28024 - RETI DI CALCOLATORI T (A-K)

Scheda insegnamento

SDGs

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.

Istruzione di qualità Parità di genere Imprese innovazione e infrastrutture Città e comunità sostenibili

Anno Accademico 2021/2022

Conoscenze e abilità da conseguire

Conoscenza dei modelli, dei protocolli e degli strumenti per lo sviluppo di applicazioni di rete e sistemi distribuiti. Capacità di progetto e realizzazione di applicazioni in reti di calcolatori.

Contenuti

Il tema fondamentale del corso è il progetto di soluzioni Cliente Servitore.
Tutto il corso affronta argomenti per avere una visione completa dei diversi aspetti.

1. Generalità e Concetti di Base Generalità dei sistemi distribuiti

  • inquadramento generale e definizioni di base
  • sistemi distribuiti decentralizzati ed eterogenei
  • necessità di standardizzazione delle soluzioni (ISO/OSI ed Internet)

Si presentano alcuni modelli caratteristici, come

  • modello di interazione cliente/servitore
  • modelli a memoria condivisa ed a scambio di messaggi
  • modelli di connessione, di replicazione, ecc.

2. Ambienti Standard

Standardizzazione
Organizzazione a livelli ISO OSI

  • livello di trasporto e di rete
  • livelli applicativi: sessione, presentazione, e applicazione

Alcune applicazioni standard distribuite

3. Protocolli TCP/IP

I protocolli della suite TCP/IP: livelli di rete e di trasporto
Applicazioni comuni per:

  • servizi sincroni: terminale remoto virtuale, trasferimento di file,
  • servizi asincroni: mail, news, e altri

Alcuni strumenti a larga diffusione in ambiente UNIX e Windows ai diversi livelli

4. Gli strumenti di riferimento

Lo strumento principale per realizzare progetti Cliente /Servitore sono le socket di comunicazione e le proposte di realizzazione a livello applicativo di ambienti Cliente /Servitore.

Le Socket sono presentate con le relative primitive API in C (per UNIX) e in Java. Gli esempi di interazione sono in sistemi UNIX e curando collegamenti con TCP/IP.

Le applicazioni cliente servitore sono:

  • Chiamate di Procedura Remota o RPCdi SUN.
  • RMI, operazioni remote in Java

5. Sistemi Operativi Distribuiti e servizi

Sistemi operativi distribuiti
Naming delle risorse
Granularità dei processi e loro interazione
Gestione delle risorse
File system

Si trattano alcuni problemi e possibili soluzioni, attarverso Sistemi di nomi e in particlare, DNS e Directory X.500.

Testi/Bibliografia

G. Coulouris, J. Dollimore, T. Kindberg: 'Distributed Systems: concepts and Design', quinta edizione, Addison-Wesley, 2012.

M.L. Liu: 'Distributed Computing', Addison-Wesley, 2003.

J.F. Kurose, K.W. Ross: 'Internet e Reti', McGraw-Hill, 2001 (tradotto nel 2001 da 'Computer Networking: a Top-Down Approach Featuring the Internet', 2001).

A.S. Tanenbaum, M. V.Steen: "Distributed Systems: Principles and Paradigms", Prentice-Hall, seconda edizione 2007, e prima 2002.

B. Forouzan, F. Mosharraf: “Computer Networks, a top down approach”, McGraw-Hill, 2012.

D. Reilly, M. Reilly: "Java Network Programming and Distributed Computing", Addison-Wesley, 2002.

A.S. Tanenbaum: 'Computer Networks', Prentice-Hall, 1988 (tradotto in 'Reti di Calcolatori', Jackson).

Metodi didattici

Il corso si articola in lezioni frontali e laboratorio in modo integrato e molto collegato.

Le esercitazioni propongono progetti sugli strumenti svolti a lezione e da svolgere a gruppi e presentare successivamente in laboratorio, discutendone con i docenti secondo uno scheduling molto integrato con le lezioni. Le esercitazioni entrano così a fare parte della valutazione.

Le esercitazioni durante il corso sono svolte con la stessa modalità del progetto finale (parte in ambiente C e in Java).
In particolare si richiedono competenze per il progetto di piccoli casi cliente/servitore, in diversi ambiti e con diversi strumenti:
- socket da usare in C e Java, per diversi protocolli e diversi casi di uso;
- RPC, per progetto di clienti e servitori ad alto livello, con tecnologie SUN;
- RMI, per progetto in Java di clienti servitori.

La frequenza è particolarmente importante per la verifica delle proprie conoscenze e del proprio stato di avanzamento.

In questo A.A. la modalità è ancora mista: sia le lezioni sia le esercitazioni sono in modo ibrido, in aula o laboratorio e a distanza. Le tecnologie di supporto (macchina virtuale e dettagli per le modalità di esame) saranno definite durante il corso.

Gli esami sono svolti in modo singolo dagli studenti, mentre le esercitazioni sono tenute in gruppo, con studenti che possono adottare una delle due forme di modalità mista (gruppi in presenza, gruppi online, gruppi con presenti e online).

Lo studente è responsabile delle proprie risorse di calcolo e del materiale che ha a disposizione per lo svolgimento delle prove:
in particolare si richiede una autonomia di soluzione e capacità di svolgere semplici progetti in tempi limitati, usando le risorse messe a disposizione in laboratorio.
Le prove eseguite in laboratorio sono personali e senza comunicazione tra studenti: qualunque tentativo di frode o copiare verrà perseguito e punito.

URL: lia.disi.unibo.it/Courses/RetiT

Modalità di verifica e valutazione dell'apprendimento

Obiettivo è verificare le capacità operative dello studente e la sua autonomia nmell'arrivare ad una soluzione.

Gli esami consistono di

  • Una prova scritta svolta come un progetto in laboratorio con tempo limitato e qualunque materiale di supporto; la prova consiste di due parti, che fanno riferimenti ai due ambienti di lavoro che vengono presentati nel corso e che intende provare la capacità di completare un progetto di C/S nei due ambienti.
  • Una prova orale successiva che mira a verificare la competenza su tutti i temi del corso.

La prova di progetto (scritta) prevede l'assegnamento di un voto in 30esimi che dipende dal corretto svolgimento delle due parti dello stesso.

La prova orale si sostiene solo con esito positivo della prima prova e si svolge su tutti gli argomenti del corso, con l'obiettivo di verificare una corretta capacità di orientamento.

Il giudizio finale in trentesimi, dopo la prova di progetto si basa sulla valutazione della prova orale, e può essere completato da altri elementi di valutazione (esercitazioni di progetto presentate in laboratorio e progetti facoltativi).

Strumenti a supporto della didattica

In aula si usano lucidi e discussioni di piccoli progetti.
Sito web del corso ad URL: lia.disi.unibo.it/Courses/RetiT

In laboratorio sono presenti strumenti di sviluppo e di supporto alla esecuzione dei progetti.

Gli studenti sono invitati a familiarizzare con questi o altri strumenti di uso personale.
Si suggeriscono strumenti in ambiente UNIX (Linux). La operatività e le capacità di realizzare piccoli progetti sono particolarmente importanti.

Link ad altre eventuali informazioni

http://www.lia.deis.unibo.it/Courses/RetiT/

Orario di ricevimento

Consulta il sito web di Antonio Corradi