Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... ·...

12
Università degli Studi di Bologna Scuola di Ingegneria Corso di Corso di Reti di Calcolatori T Laurea in Ingegneria Informatica e altro … Antonio Corradi Luca Foschini Anno accademico 2014/2015 Introduzione 1 Anno accademico 2014/2015 FINALIT FINALITÀ d l CORSO d l CORSO FINALIT FINALITÀ del CORSO del CORSO Si affrontano i temi di base dei sistemi in Si affrontano i temi di base dei sistemi in rete e distribuiti, considerando le più comuni realizzazioni, con l'obiettivo di analizzare i problemi, conoscere le strategie di soluzione, fornire una buona conoscenza operativa di fornire una buona conoscenza operativa di strumenti e strategie di progetto di it i di t ib iti t iit i dei sistemi distribuiti, eterogenei, interconnessi Sistemi Cliente/Servitore e oltre Introduzione 2

Transcript of Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... ·...

Page 1: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

Università degli Studi di BolognaScuola di Ingegneria

Corso diCorso diReti di Calcolatori T

Laurea in Ingegneria Informatica e altro …

Antonio Corradi

Luca Foschini

Anno accademico 2014/2015Introduzione 1

Anno accademico 2014/2015

FINALITFINALITÀÀ d l CORSOd l CORSOFINALITFINALITÀÀ del CORSOdel CORSO

Si affrontano i temi di base dei sistemi inSi affrontano i temi di base dei sistemi in rete e distribuiti, considerando le più comuni realizzazioni, con l'obiettivo di

– analizzare i problemi, p ,

– conoscere le strategie di soluzione,

fornire una buona conoscenza operativa di– fornire una buona conoscenza operativa di strumenti e strategie di progetto

d i i t i di t ib iti t i i t idei sistemi distribuiti, eterogenei, interconnessi

Sistemi Cliente/Servitore e oltreIntroduzione 2

/

Page 2: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

PREREQUISITIPREREQUISITI

• Conoscenze operative dei diversi ambienti

PREREQUISITI...PREREQUISITI...

p(anche da rinforzare con attività in laboratorio)

• Conoscenze dei modelli e soluzioni per sistemit ti di di tti itàconcentrati, vedi concorrenza, presenza di attività

molteplici, filtri e modi di gestione I/O

COMPETENZE LATERALI in USCITACOMPETENZE LATERALI in USCITA

• Capacità di gestire piccoli progetti

• Capacità di sviluppare in modo autonomop pp

• Competenze di ingegnerizzazione

• Comprensione inglese …

Introduzione 3

Comprensione inglese …

STRUTTURA del CORSOSTRUTTURA del CORSO

Lezioni ed esercitazioni molto integrate

STRUTTURA del CORSOSTRUTTURA del CORSO

Lezioni ed esercitazioni molto integratePer ogni settimana (dieci centrali) si prevede una esercitazione di progetto correlata euna esercitazione di progetto correlata e necessaria (alla fine, prova progetto finale)

Il corso richiede sia conoscenze operativeIl corso richiede sia conoscenze operative di sistema Java / Unix, sia conoscenze delle problematiche e delle soluzionidelle problematiche e delle soluzioniÈ considerata di base una conoscenza degli ambienti operativi: si raccomanda UNIX delleambienti operativi: si raccomanda UNIX, delle primitive di file system e dell’I/O, oltre che unacapacità di operare in Java a livello di sistema

Introduzione 4

capacità di operare in Java a livello di sistema

Page 3: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

PRELIMINARI del CORSOPRELIMINARI del CORSO

Generalità e Concetti di base

PRELIMINARI del CORSOPRELIMINARI del CORSO

Generalità e Concetti di base Inquadramento generale e definizioniC tti di b l i d lli di l iConcetti di base e alcuni modelli di soluzioneSi presentano alcuni modelli caratteristici, come▪ modelli a scambio di messaggi▪ modello di interazione cliente/servitore▪ modelli di connessione, di stato, globali/locali,

ecc.Esercitazione Preliminare (0): Concorrenza e processi in JAVA con i thread

Introduzione 5Progetto filtri e corretto uso delle risorse e API

PRIME CONOSCENZE STANDARDPRIME CONOSCENZE STANDARD

Ambienti Standard e Standardizzazione

PRIME CONOSCENZE STANDARDPRIME CONOSCENZE STANDARD

Ambienti Standard e StandardizzazioneOrganizzazione a 7 livelli ISO-OSI ▪ generalitàgeneralità▪ livello di trasporto e di rete▪ livelli applicativi: sessione, presentazione

Il confronto con TCP/IP o Internet▪ livelli Internet▪ livello di trasporto e di rete

Esercitazione 1 2:Esercitazione 1-2:Alcuni strumenti di comunicazione di ampio utilizzoSocket e relative primitive in Java

Introduzione 6

Socket e relative primitive in Java

Page 4: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

CONOSCENZE OPERATIVE SOCKETCONOSCENZE OPERATIVE SOCKET

Protocolli TCP/IP

CONOSCENZE OPERATIVE SOCKETCONOSCENZE OPERATIVE SOCKET

Protocolli per risolvere problemi e soluzioniSuite TCP/IP: livelli di rete IP e trasporto TCP e UDP

Gli strumenti di riferimento: Socket L k t t ti t d d di i iLe socket strumenti standard di comunicazione Socket e relative primitive in Java e CClienti e servitori di base ed evolutiClienti e servitori di base ed evoluti

Esercitazione 3 e 4: Strumenti di comunicazione di ampio utilizzoSocket in C (per UNIX) per piccoli progetti C/S

Introduzione 7

ASSESTAMENTO CONOSCENZEASSESTAMENTO CONOSCENZE

Applicazioni e servizi Internet

ASSESTAMENTO CONOSCENZEASSESTAMENTO CONOSCENZE

Applicazioni TCP/IP Applicazioni comuni per:pp p▪ terminale remoto virtuale telnet▪ trasferimento di file ftp▪ servizi asincroni mail, news, e ...Alcuni strumenti a larga diffusione in ambiente UNIX eWi d i di i li lliWindows ai diversi livelli

Esercitazione 5:Esercitazione 5: Sosta per assestare conoscenze per applicazioni cliente/servitore

Introduzione 8

cliente/servitore

Page 5: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

PROGETTI Cliente/ServitorePROGETTI Cliente/Servitore

Operazioni Remote e RMI Java

PROGETTI Cliente/ServitorePROGETTI Cliente/Servitore

pChiamate di Procedura Remota come modello C/S applicativocaratteristiche e proprietàRemote Method Invocation come RPC in JAVA (RMI)( )

Esercitazioni 6 e 7: Progetto RMI in Java, da progetto semplice a più g , p g p pcomplesso

Strumenti di comunicazione C/S: RPCStrumenti di comunicazione C/S: RPCChiamate di Procedura Remota o RPCUso di operazioni RPC per il supporto a NFSConfronto RPC e RMIConfronto RPC e RMI

Esercitazione 8 e 9: Progetto RPC e strumenti ancora a due livelli di

Introduzione 9

Progetto RPC e strumenti ancora a due livelli di complessità

PARTE FINALEPARTE FINALE

Sistemi Distribuiti e Servizi

PARTE FINALE PARTE FINALE

Sistemi Distribuiti e ServiziSistemi operativi distribuiti

Fil t iù iFile system più comuniNFS come esempio, Network File System di SUN

Si t i di N i id tifi itSistemi di Nomi per identificare e ritrovare risorse

P bl i ibili l i iProblemi e possibili soluzioniAlcuni Sistemi di nomi: DNS e Directory X500

Esercitazione finale 10: Preparazione allo scritto finale in sim la ione

Introduzione 10

finale in simulazione

Page 6: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

PREREQUISITO PREREQUISITO per per RETI …RETI …

TEMPLATE PREREQUISITO PER L’ESAME ossia

S O SO S O O S SSE NON SODDISFATTO NON SI PRENDE PARTE ALL’ESAME

Template come schema di soluzione di un problemaSi devono consegnare in modo preliminare tutti iSi devono consegnare in modo preliminare tutti i template di soluzione per le diverse parti di progettodurante le esercitazioni o in altri momenti prestabilitidurante le esercitazioni o in altri momenti prestabiliti

SENZA I TEMPLATE, L’ESAME NON È POSSIBILE

SI DEVONO USARE I TEMPLATE COME METODOLOGIANON si accettano sorgenti derivati da soluzioni precedenticon variabili che non c’entrano, codice commentatoestraneo, parti non necessarie, ecc. (linee utili/linee totali)FORTE PENALIZZAZIONE se non si procede correttamente

Introduzione 11

FORTE PENALIZZAZIONE se non si procede correttamente

TEMPLATE perTEMPLATE per RETI *RETI *

I Template sono alla base per risolvere i progetti e per fornire

TEMPLATE per TEMPLATE per RETI RETI

p p p g psoluzioni ordinate in tempo utile• Si devono consegnare tutti i template di soluzione prima

d ll i di l b t i di ttdella prima prova di laboratorio di progetto• I template si consegnano una volta per Anno Accademico• La loro validità formale è l’intero A A• La loro validità formale è l intero A.A.• Si devono usare i template come base di partenza per i

sorgenti delle soluzioni di progettog p g

• Si devono tenere i template nella propria home • Se si cambiano i template, non c’è bisogno di consegnarli

più volteF ili i i i t l t è hi di

Introduzione 12• Familiarizziare con i template è chiave di successo

Page 7: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

VALUTAZIONE VALUTAZIONE

Gli esami possono essere svolti anche in date diverse:una prova in laboratorio preliminare e una prova oraleuna prova in laboratorio preliminare e una prova orale

Prima prova - Progetto in LaboratorioLa prova consiste diLa prova consiste di - una sessione a domande aperte (8 domande – 30 minuti) su temi del corso- Un progetto in laboratorio (2 parti – 2ore): progetto per parti, tutte necessarie per dimostrare la preparazioneprogetto funzionante in Ambiente C e Java (Unix o Winxx)progetto funzionante in Ambiente C e Java (Unix o Winxx)

Seconda prova - oralepLa prova orale parte dallo scritto e dalle esercitazioni e si sviluppa su tutti i temi del corso

Introduzione 13Senza dimenticare primitive, altri contenuti, ecc.

Valutazioni dei Corsi di Reti LValutazioni dei Corsi di Reti L--AA e Te TLa valutazione del corso di Reti di Calcolatori T (9 crediti)si differenzia da quella di Reti di Calcolatori L A (6 crediti)

Valutazioni dei Corsi di Reti LValutazioni dei Corsi di Reti L--A A e Te T

si differenzia da quella di Reti di Calcolatori L-A (6 crediti)nella parte di PROGETTO

Unica prova di progetto per Reti di Calcolatori L-AUnica prova di progetto per Reti di Calcolatori L-A su due parti che prevedono conoscenza della parte Javae della parte C

Per il corso si Reti di Calcolatori T gli studenti devono anche rispondere ad una serie di 8 domande di teoriaQuesta parte è preliminare al progettoQuesta parte è preliminare al progetto per ogni data di esame e ne è parte integrante:

Si deve rispondere a tutte le domande

Chi non ottiene un giudizio sufficiente, non viene valutato della prova successiva

Introduzione 14

Page 8: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

ALGORITMO di VALUTAZIONEALGORITMO di VALUTAZIONE

La valutazione si basa su ogni elemento possibile:

ALGORITMO di VALUTAZIONE ALGORITMO di VALUTAZIONE

- Esercitazioni (consegna in laboratorio) e - Esami PARTE PROGETTO

P l- Prova oraleAd inizio nuovo corso, scadono le prove non completate

Ogni studente è responsabile del proprio account e delle prove in laboratorio: si consiglia di preparare e consegnare dei template per le prove da svolgere p p p gSi richiede la consegna dei template che può avvenire durante le ultime esercitazione o in date fissate (almaesami)

Ogni prova di progetto annulla la precedenteIl fallimento della prova orale può anche comportare l’annullamento del progetto

Introduzione 15

l annullamento del progetto

PIANO LEZIONIPIANO LEZIONIAula: lunedì 15-18 esercitazioni in LAB4aula solo prime due settimane 0.5 (2 ore – 12-14)

dì l (3 )martedì aula 5.7 (3 ore – 14-15)venerdì aula 5.7 (2 ore 12-14)

Esercitazioni:Esercitazioni:anche martedì mattina un turno di esercitazione (9-11)Potete anche lavorare in ore addizionali in LAB2

6 ottobre - Esercitazione 0: Multithreading in Java 13 e 20 ottobre - 1a e 2a esercitazione: Socket in Java, senza e connessione,27 ottobre e 3 novembre- 3a e 4a esercitazione: Socket in C, esempi base e

gestione avanzata 10 novembre- - 5a esercitazione: riflessioni e elaborazioni17e 24 novembre - 6a e 7a esercitazione:

RMI - Java Remote Method Invocation1 e 9 dicembre - 8a e 9a esercitazione: Remote Procedure Call - RPC

Introduzione 16

15 dicembre - 10a Esercitazione finale: Preparazione esame

Page 9: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

BONUS BONUS -- ESERCITAZIONIESERCITAZIONI

NOVITÀ IMPORTANTEIl corso richiede applicazioni e capacità di laboratorioIl corso richiede applicazioni e capacità di laboratorio, Premio per chi segue le lezioni con costanza e capacità Potenziale Bonus aggiunto sul voto finalePotenziale Bonus aggiunto sul voto finale (fino a tre punti)

Chi consegna le esercitazioni (almeno 80% delle 10) àha la possibilità di una valutazione dei progetti

consegnati prima della prova finale che può portare al bonusal bonusOvvio per il bonus si richiede che il consegnato sia considerato accettabile per il livello del corsop

Il bonus viene comunicato prima dell’orale

Introduzione 17

IL SITO WEB DEL CORSOIL SITO WEB DEL CORSO

// / / /

IL SITO WEB DEL CORSOIL SITO WEB DEL CORSO

• Per ritrovare

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

– materiale didattico (lezioni, esercizi)– scambio informazioni– proposte diverse di progetti / argomenti

• In laboratorio (LAB4 esercitazioni)– LAB2 in orari che non siano di lezione

ISCRIZIONE all'ANAGRAFICA del CORSO PER le ESERCITAZIONI su ALMAESAMI (da oggi)

Introduzione 18

Page 10: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

MATERIALE di RIFERIMENTOMATERIALE di RIFERIMENTO

• Diapositive proiettate a lezionel bili l i W b

MATERIALE di RIFERIMENTOMATERIALE di RIFERIMENTO

– consultabili sul sito Web– disponibili al centro fotocopie della biblioteca

• TESTI di BASE• TESTI di BASE– G. Coulouris, J. Dollimore, T. Kindberg, "Distributed

Systems: Concepts and Design", Addison-Wesley,Systems: Concepts and Design , Addison Wesley, (quarta edizione) 2005.

– M.L. Liu, "Distributed Computing", Addison-Wesley, 20032003.Oltre ad altri …

Si assume una buona conoscenza dei meccanismi di sistemi operativi, sia in Java sia in C/UnixSi consigliano esplorazione di Internet e materiali aggiuntivi

Introduzione 19

Si consigliano esplorazione di Internet e materiali aggiuntivi

ANCORA TESTI di RIFERIMENTOANCORA TESTI di RIFERIMENTO

Addizionali di interesse per parti

ANCORA TESTI di RIFERIMENTOANCORA TESTI di RIFERIMENTO

Addizionali di interesse per parti• 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)Down Approach Featuring the Internet , 2001).

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

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

• R W Stevens: "TCP/IP Illustrated: vol 1 vol 2 vol 3"• R.W. Stevens: TCP/IP Illustrated: vol.1, vol.2, vol. 3 , Addison-Wesley, ed. 1994/5/6, anche edizioni successive.

• N. B. Melazzi: "Internet: Architettura, Principali protocolli e li l ti " M G Hill 2006linee evolutive", Mc Graw-Hill, 2006.

• D. Flanagan: "Java in a Nutshell - A Desktop Quick Reference", terza edizione, O'Reilly, 1999.

Introduzione 20

, , y,E altri ancora… ☺

Page 11: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

PRIME DUE SETTMANE di LEZIONIPRIME DUE SETTMANE di LEZIONI

Introduzione 21

PIANO LEZIONIPIANO LEZIONI

Introduzione 22

Page 12: Corso diCorso di Reti di Calcolatori T - unibo.itlia.deis.unibo.it/Courses/RetiT/RetiT_14-15/... · Operazioni Remote e RMI Java PROGETTI Cliente/Servitore Chiamate di Procedura Remota

PIANO ESAMIPIANO ESAMI

ESAMI - PROGETTI in Laboratorio Lab4Venerdì 9 Gennaio - ore 15Venerdì 9 Gennaio ore 15Venerdì 30 Gennaio - ore 15Giovedì 12 Febbraio - ore 15Un turno - Reti T 15-17,30 / Reti L-A ore 15,30-17,30Si possono sostenere due prove di progetto a sessione CARICAMENTO TEMPLATE O Esercitazioni o in LAB2CARICAMENTO TEMPLATE O Esercitazioni … o in LAB2Venerdì 9 Gennaio - ore 10-11 Venerdì 30 Gennaio - ore 10-11 Giovedì 12 Febbraio - ore 10-11ESAMI - ORALIGiovedì 22 Gennaio ore 9 00Giovedì 22 Gennaio - ore 9,00Mercoledì 11 Febbraio - ore 9,00Giovedì 26 Febbraio - ore 9,00

Introduzione 23

Giovedì 26 Febbraio ore 9,00Un’altra prova orale possibile