Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
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
/
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
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
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
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
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
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
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
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
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… ☺
PRIME DUE SETTMANE di LEZIONIPRIME DUE SETTMANE di LEZIONI
Introduzione 21
PIANO LEZIONIPIANO LEZIONI
Introduzione 22
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