Corso di
Reti di Calcolatori T
Università degli Studi di BolognaFacoltà di Ingegneria
Introduzione 1
Antonio CorradiLuca Foschini
Anno accademico 2013/2014
Laurea in Ingegneria Informatica e altro …
FINALITFINALITÀÀ del CORSOdel CORSO
Si affrontano i temi di base dei sistemi in rete e distribuiti, considerando le più comuni realizzazioni, con l'obiettivo di
– analizzare i problemi,
Introduzione 2
– analizzare i problemi, – conoscere le strategie di soluzione, – fornire una buona conoscenza operativa di
strumenti e strategie di progettodei sistemi distribuiti, eterogenei, interconnessi
Sistemi Cliente/Servitore e oltre
• Conoscenze operative dei diversi ambienti(anche da rinforzare con attività in laboratorio)
• Conoscenze dei modelli e soluzioni per sistemiconcentrati, vedi concorrenza, presenza di attività molteplici
PREREQUISITI...PREREQUISITI...
Introduzione 3
• Capacità di gestire piccoli progetti• Capacità di sviluppare in modo autonomo• Competenze di ingegnerizzazione• Comprensione inglese …
COMPETENZE LATERALI in USCITACOMPETENZE LATERALI in USCITA
Lezioni ed esercitazioni molto integratePer ogni settimana (dieci centrali) si prevede una esercitazione di progetto correlata e necessaria (alla fine, prova progetto finale)
Il corso richiede sia conoscenze operative
STRUTTURA del CORSOSTRUTTURA del CORSO
Introduzione 4
Il corso richiede sia conoscenze operative di Java, Linux, sia conoscenze delle problematiche e delle soluzioniÈ considerata di base una conoscenza degli ambienti operativi: si raccomanda UNIX, delle primitive di file system e dell’I/O, oltre che unacapacità di operare in Java a livello di sistema
Generalità e Concetti di base Inquadramento generale e definizioniConcetti di base e alcuni modelli di soluzioneSi presentano alcuni modelli caratteristici, come
▪ modelli a scambio di messaggi
PRELIMINARI del CORSOPRELIMINARI del CORSO
Introduzione 5
▪ 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
Ambienti Standard e StandardizzazioneOrganizzazione a 7 livelli ISO-OSI ▪ generalità▪ livello di trasporto e di rete▪ livelli applicativi: sessione, presentazione
Il confronto con TCP/IP o Internet
PRIME CONOSCENZE STANDARDPRIME CONOSCENZE STANDARD
Introduzione 6
Il confronto con TCP/IP o Internet▪ livelli Internet▪ livello di trasporto e di rete
Esercitazione 1-2:Alcuni strumenti di comunicazione di ampio utilizzoSocket e relative primitive in Java
Protocolli TCP/IP Protocolli per risolvere problemi e soluzioniSuite TCP/IP: livelli di rete IP e trasporto TCP e UDP
Gli strumenti di riferimento: Socket Le socket strumenti standard di comunicazione
CONOSCENZE OPERATIVE SOCKETCONOSCENZE OPERATIVE SOCKET
Introduzione 7
Le socket strumenti standard di comunicazione Socket e relative primitive in Java e CClienti 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
Applicazioni e servizi Internet Applicazioni TCP/IP Applicazioni comuni per:▪ terminale remoto virtuale telnet▪ trasferimento di file ftp
ASSESTAMENTO CONOSCENZEASSESTAMENTO CONOSCENZE
Introduzione 8
▪ servizi asincroni mail, news, e ...Alcuni strumenti a larga diffusione in ambiente UNIX eWindows ai diversi livelli
Esercitazione 5: Sosta per assestare conoscenze per applicazioni cliente/servitore
Operazioni Remote e RMI JavaChiamate 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ù complesso
PROGETTI Cliente/ServitorePROGETTI Cliente/Servitore
Introduzione 9
Progetto RMI in Java, da progetto semplice a più complesso
Strumenti di comunicazione C/S: RPCChiamate di Procedura Remota o RPCUso di operazioni RPC per il supporto a NFSConfronto RPC e RMI
Esercitazione 8 e 9: Progetto RPC e strumenti ancora a due livelli di complessità
Sistemi Distribuiti e ServiziSistemi operativi distribuiti
File system più comuniNFS come esempio, Network File System di SUN
Sistemi di Nomi per identificare e ritrovare
PARTE FINALE PARTE FINALE
Introduzione 10
Sistemi di Nomi per identificare e ritrovare risorse
Problemi e possibili soluzioniAlcuni Sistemi di nomi: DNS e Directory X500
Esercitazione finale 10: Preparazione allo scritto finale in simulazione
Gli esami consistono di una prova di progetto preliminare e una prova oralesvolte anche in date diverse
Prima prova - Scritto in LaboratorioLa prova Scritta si svolge in laboratoriocostituita da più parti di progetto, tutte necessarie
VALUTAZIONE VALUTAZIONE
Introduzione 11
costituita da più parti di progetto, tutte necessarie per dimostrare la preparazione pratica Ambiente C Unix e Java (Unix o Winxx)progetto funzionante
Seconda prova - oraleLa prova orale parte dallo scritto e dalle esercitazioni e si sviluppa su tutti i temi del corsoSenza dimenticare primitive progetto, ecc.
TEMPLATE PREREQUISITO PER L’ESAME ossia
SE NON SODDISFATTO NON SI PRENDE PARTE ALL’ESAMETemplate come schema di soluzione di un problema
Si devono consegnare in modo preliminare tutti i template di soluzione per le diverse parti di progettodurante le esercitazioni o in altri momenti prestabiliti
REQUISITO REQUISITO per RETI per RETI didi CALCOLATORICALCOLATORI
Introduzione 12
durante le esercitazioni o in altri momenti prestabilitiSENZA 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
I Template sono alla base per risolvere i progetti e per fornire soluzioni ordinate in tempo utile• Si devono consegnare tutti i template di soluzione prima
della prima prova di laboratorio di progetto
• I template si consegnano una volta per Anno Accademico• La loro validità formale è l’intero A.A.
TEMPLATE per TEMPLATE per RETI *RETI *
Introduzione 13
• La loro validità formale è l’intero A.A.• Si devono usare i template come base di partenza per i
sorgenti delle soluzioni di progetto
• Si devono tenere i template nella propria home
• Se si cambiano i template, non c’è bisogno di consegnarli più volte
• Familiarizziamo con i nostri template, chiave di successo
La valutazione del corso di Reti di Calcolatori T (9 crediti)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-A su due parti che prevedono conoscenza della parte Javae della parte C
Valutazioni dei Corsi di Reti LValutazioni dei Corsi di Reti L--A A e Te T
Introduzione 14
e della parte C
Per il corso si Reti di Calcolatori T gli studenti devono anche rispondere ad una serie di domande di teoriaQuesta parte è preliminare al progetto per ogni data di esame e ne è parte integrante: chi non ottiene un giudizio sufficiente, non viene valutato della prova successiva ����
Dovete rispondere a tutte le domande
La valutazione si basa su ogni elemento possibile: - Esercitazioni (consegna in laboratorio) e - Esami PARTE PROGETTO- Prova oraleAd inizio nuovo corso, scadono le prove non completate
Ogni studente è responsabile del proprio account e delle
ALGORITMO di VALUTAZIONE ALGORITMO di VALUTAZIONE
Introduzione 15
Ogni studente è responsabile del proprio account e delle prove in laboratorio: si consiglia di preparare e consegnare dei template per le prove da svolgere Si 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 ����
• Per ritrovare– materiale didattico (lezioni, esercizi)
– scambio informazioni
– proposte diverse di progetti / argomenti
http://lia.deis.unibo.it/Courses/RetiT/
IL SITO WEB DEL CORSOIL SITO WEB DEL CORSO
Introduzione 16
– 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)
• Diapositive proiettate a lezione– consultabili sul sito Web
– disponibili al centro fotocopie della biblioteca
• TESTI di BASE– G. Coulouris, J. Dollimore, T. Kindberg, "Distributed
Systems: Concepts and Design", Addison-Wesley,
MATERIALE di RIFERIMENTOMATERIALE di RIFERIMENTO
Introduzione 17
Systems: Concepts and Design", Addison-Wesley, (quarta edizione) 2005.
– M.L. Liu, "Distributed Computing", Addison-Wesley, 2003.
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
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).
• A.S. Tanenbaum: "Computer Networks", Prentice-Hall, 1988 (tradotto in "Reti di Calcolatori", Jackson).
ANCORA TESTI di RIFERIMENTOANCORA TESTI di RIFERIMENTO
Introduzione 18
• 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", Addison-Wesley, ed. 1994/5/6, anche edizioni successive.
• N. B. Melazzi: "Internet: Architettura, Principali protocolli e linee evolutive", Mc Graw-Hill, 2006.
• D. Flanagan: "Java in a Nutshell - A Desktop Quick Reference", terza edizione, O'Reilly, 1999.
E altri ancora… ☺
PIANO LEZIONIPIANO LEZIONIAula: lunedì 15-17 esercitazioni in LAB4aula solo prime due settimane 0.5 (2 ore – 12-14)
martedì aula 5.7 (3 ore – 14-15)venerdì aula 5.7 (2 ore 12-14)
Esercitazioni:anche martedì mattina un turno di esercitazione (9-11)Potete anche lavorare in ore addizionali in LAB2
Introduzione 19
Potete anche lavorare in ore addizionali in LAB2
7 ottobre - Esercitazione 0: Multithreading in Java 14 e 21 ottobre - 1a e 2a esercitazione: Socket in Java, senza e connessione28 ottobre e 4 novembre- 3a e 4a esercitazione: Socket in C, esempi base e
gestione avanzata 11 novembre- - 5a esercitazione: riflessioni e elaborazioni18 e 25 novembre - 6a e 7a esercitazione:
RMI - Java Remote Method Invocation2 e 9 dicembre - 8a e 9a esercitazione: Remote Procedure Call - RPC16 dicembre - 10a Esercitazione finale: Preparazione esame
PRIME DUE SETTMANE di LEZIONIPRIME DUE SETTMANE di LEZIONI
Introduzione 20
PIANO LEZIONIPIANO LEZIONI
Introduzione 21
BONUS BONUS -- ESERCITAZIONIESERCITAZIONI
GRANDE NOVITÀ Per chi segue le lezioni con costanza e capacità Potenziale Bonus aggiunto sul voto finale (fino a tre punti)
Chi consegna tutte le esercitazioni (almeno 80% delle 10) ha la possibilità di una valutazione dei progetti consegnati prima della prova finale che
Introduzione 22
progetti consegnati prima della prova finale che può portare al bonusOvvio per il bonus si richiede che il consegnato sia considerato accettabile per il livello del corso
Il bonus viene comunicato prima dell’orale
PIANO ESAMIPIANO ESAMI
ESAMI - PROGETTI in Laboratorio Lab4Venerdì 10 Gennaio - ore 15Venerdì 31 Gennaio - ore 15Venerdì 14 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 LAB2
Introduzione 23
CARICAMENTO TEMPLATE O Esercitazioni … o in LAB2Venerdì 10 Gennaio - ore 10-11 Venerdì 31 Gennaio - ore 10-11 Venerdì 14 Febbraio - ore 10-11ESAMI - ORALIGiovedì 23 Gennaio - ore 9,00Giovedì 13 Febbraio - ore 9,00Giovedì 27 Febbraio - ore 9,00Un’altra prova orale possibile