Presentazione del corso - LIA Home Page

Università degli Studi di Bologna
Scuola di Ingegneria
Corso di
Reti di Calcolatori T
Laurea in Ingegneria Informatica
e altro …
Antonio Corradi
Luca Foschini
Anno accademico 2014/2015
Introduzione 1
FINALITÀ
FINALIT
À del
d l 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,
p
,
– conoscere le strategie di soluzione,
– fornire una buona conoscenza operativa di
strumenti e strategie di progetto
d i sistemi
dei
i t i distribuiti,
di t ib iti eterogenei,
t
i interconnessi
i t
i
Sistemi Cliente/Servitore
/
e oltre
Introduzione 2
PREREQUISITI
PREREQUISITI...
• Conoscenze operative
p
dei diversi ambienti
(anche da rinforzare con attività in laboratorio)
• Conoscenze dei modelli e soluzioni per sistemi
concentrati,
t ti vedi
di concorrenza, presenza di attività
tti ità
molteplici, filtri e modi di gestione I/O
COMPETENZE LATERALI in USCITA
•
•
•
•
Capacità di gestire piccoli progetti
p
di sviluppare
pp
in modo autonomo
Capacità
Competenze di ingegnerizzazione
Comprensione inglese …
Introduzione 3
STRUTTURA del CORSO
Lezioni ed esercitazioni molto integrate
Per ogni settimana (dieci centrali) si prevede
una esercitazione di progetto correlata e
necessaria (alla fine, prova progetto finale)
Il corso richiede sia conoscenze operative
di sistema Java / Unix, sia conoscenze
delle problematiche e delle soluzioni
È considerata di base una conoscenza degli
ambienti operativi: si raccomanda UNIX,
UNIX delle
primitive di file system e dell’I/O, oltre che una
capacità di operare in Java a livello di sistema
Introduzione 4
PRELIMINARI del CORSO
Generalità e Concetti di base
Inquadramento generale e definizioni
C
Concetti
tti di b
base e alcuni
l
i modelli
d lli di soluzione
l i
Si 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
Progetto filtri e corretto uso delle risorse e API
Introduzione 5
PRIME CONOSCENZE STANDARD
Ambienti Standard e Standardizzazione
Organizzazione a 7 livelli ISO-OSI
▪ 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
1-2:
2:
Alcuni strumenti di comunicazione di ampio utilizzo
Socket e relative primitive in Java
Introduzione 6
CONOSCENZE OPERATIVE SOCKET
Protocolli TCP/IP
Protocolli per risolvere problemi e soluzioni
Suite TCP/IP: livelli di rete IP e trasporto TCP e UDP
Gli strumenti di riferimento: Socket
L socket
Le
k t strumenti
t
ti standard
t d d di comunicazione
i
i
Socket e relative primitive in Java e C
Clienti e servitori di base ed evoluti
Esercitazione 3 e 4:
Strumenti di comunicazione di ampio utilizzo
Socket in C (per UNIX) per piccoli progetti C/S
Introduzione 7
ASSESTAMENTO CONOSCENZE
Applicazioni e servizi Internet
Applicazioni TCP/IP
Applicazioni
pp
comuni per:
p
▪ terminale remoto virtuale
telnet
▪ trasferimento di file
ftp
▪ servizi asincroni
mail, news, e ...
Alcuni strumenti a larga diffusione in ambiente UNIX e
Wi d
Windows
aii di
diversii lilivelli
lli
Esercitazione 5:
Sosta per assestare conoscenze per applicazioni
cliente/servitore
Introduzione 8
PROGETTI Cliente/Servitore
Operazioni
p
Remote e RMI Java
Chiamate di Procedura Remota come modello C/S applicativo
caratteristiche e proprietà
(
)
Remote Method Invocation come RPC in JAVA (RMI)
Esercitazioni 6 e 7:
g
RMI in Java,, da progetto
p g
semplice
p
a più
p
Progetto
complesso
Strumenti di comunicazione C/S: RPC
Chiamate di Procedura Remota o RPC
Uso di operazioni RPC per il supporto a NFS
Confronto RPC e RMI
Esercitazione 8 e 9:
Progetto RPC e strumenti ancora a due livelli di
complessità
Introduzione 9
PARTE FINALE
Sistemi Distribuiti e Servizi
Sistemi operativi distribuiti
File system
Fil
t
più
iù comunii
NFS come esempio, Network File System di SUN
Si t i di Nomi
Sistemi
N
i per identificare
id tifi
e ritrovare
it
risorse
Problemi
P
bl i e possibili
ibili soluzioni
l i i
Alcuni Sistemi di nomi: DNS e Directory X500
Esercitazione finale 10: Preparazione allo scritto
finale in sim
simulazione
la ione
Introduzione 10
PREREQUISITO per RETI …
TEMPLATE PREREQUISITO PER L’ESAME ossia
S NON
SE
O SODDISFATTO
SO
S
O NON
O SI
S PRENDE PARTE ALL’ESAME
S
Template come schema di soluzione di un problema
Si devono consegnare in modo preliminare tutti i
template di soluzione per le diverse parti di progetto
durante le esercitazioni o in altri momenti prestabiliti
SENZA I TEMPLATE, L’ESAME NON È POSSIBILE
SI DEVONO USARE I TEMPLATE COME METODOLOGIA
NON si accettano sorgenti derivati da soluzioni precedenti
con variabili che non c’entrano, codice commentato
estraneo, parti non necessarie, ecc. (linee utili/linee totali)
FORTE PENALIZZAZIONE se non si procede correttamente
Introduzione 11
TEMPLATE per RETI *
I Template
p
sono alla base p
per risolvere i p
progetti
g
ep
per fornire
soluzioni ordinate in tempo utile
• Si devono consegnare tutti i template di soluzione prima
d ll prima
della
i
prova di laboratorio
l b
t i di progetto
tt
• I template si consegnano una volta per Anno Accademico
• La loro validità formale è ll’intero
intero A.A.
AA
• Si devono usare i template come base di partenza per i
g
delle soluzioni di progetto
p g
sorgenti
• Si devono tenere i template nella propria home
• Se si cambiano i template, non c’è bisogno di consegnarli
più volte
• Familiarizziare
F ili i i
con i template
t
l t è chiave
hi
di successo
Introduzione 12
VALUTAZIONE
Gli esami possono essere svolti anche in date diverse:
una prova in laboratorio preliminare e una prova orale
Prima prova - Progetto in Laboratorio
La 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 preparazione
progetto funzionante in Ambiente C e Java (Unix o Winxx)
Seconda p
prova - orale
La prova orale parte dallo scritto e dalle esercitazioni e
si sviluppa su tutti i temi del corso
Senza dimenticare primitive, altri contenuti, ecc.
Introduzione 13
Valutazioni dei Corsi di Reti LL-A e T
La valutazione del corso di Reti di Calcolatori T (9 crediti)
si differenzia da quella di Reti di Calcolatori L-A
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 Java
e della parte C
Per il corso si Reti di Calcolatori T gli studenti devono
anche rispondere ad una serie di 8 domande di teoria
Questa 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 VALUTAZIONE
La valutazione si basa su ogni elemento possibile:
- Esercitazioni (consegna in laboratorio) e
- Esami PARTE PROGETTO
- Prova
P
orale
l
Ad 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
p
p
per le p
prove da svolgere
g
template
Si richiede la consegna dei template che può avvenire
durante le ultime esercitazione o in date fissate (almaesami)
Ogni prova di progetto annulla la precedente
Il fallimento della prova orale può anche comportare
ll’annullamento
annullamento del progetto
Introduzione 15
PIANO LEZIONI
Aula:
lunedì
15-18 esercitazioni in LAB4
aula solo prime due settimane 0.5 (2 ore – 12-14)
martedì
dì
aula
l 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
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 elaborazioni
17e 24 novembre - 6a e 7a esercitazione:
RMI - Java Remote Method Invocation
a
1 e 9 dicembre - 8 e 9a esercitazione: Remote Procedure Call - RPC
15 dicembre - 10a Esercitazione finale: Preparazione esame
Introduzione 16
BONUS - ESERCITAZIONI
NOVITÀ IMPORTANTE
Il corso richiede applicazioni e capacità di laboratorio
laboratorio,
Premio per chi segue le lezioni con costanza e capacità
Potenziale 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 bonus
Ovvio per il bonus si richiede che il consegnato sia
per il livello del corso
considerato accettabile p
Il bonus viene comunicato prima dell’orale
Introduzione 17
IL SITO WEB DEL CORSO
http://lia.deis.unibo.it/Courses/RetiT/
//
/
/
/
• Per ritrovare
– 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 RIFERIMENTO
• Diapositive proiettate a lezione
– consultabili
l bili sull sito
i W
Web
b
– disponibili al centro fotocopie della biblioteca
• TESTI di BASE
– G. Coulouris, J. Dollimore, T. Kindberg, "Distributed
Systems: Concepts and Design",
Design , Addison
Addison-Wesley,
Wesley,
(quarta edizione) 2005.
– M.L. Liu, "Distributed Computing", Addison-Wesley,
2003.
2003
Oltre ad altri …
Si assume una buona conoscenza dei meccanismi di
sistemi operativi, sia in Java sia in C/Unix
Si consigliano esplorazione di Internet e materiali aggiuntivi
Introduzione 19
ANCORA 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 TopDown Approach Featuring the Internet"
Internet , 2001).
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.
R W Stevens: "TCP/IP
TCP/IP Illustrated: vol
vol.1,
1 vol
vol.2,
2 vol
vol. 3"
3,
Addison-Wesley, ed. 1994/5/6, anche edizioni successive.
• N. B. Melazzi: "Internet: Architettura, Principali protocolli e
li
linee
evolutive",
l ti " M
Mc G
Graw-Hill,
Hill 2006
2006.
• D. Flanagan: "Java in a Nutshell - A Desktop Quick
y, 1999.
Reference",, terza edizione,, O'Reilly,
E altri ancora… ☺
Introduzione 20
PRIME DUE SETTMANE di LEZIONI
Introduzione 21
PIANO LEZIONI
Introduzione 22
PIANO ESAMI
ESAMI - PROGETTI in Laboratorio Lab4
Venerdì 9 Gennaio - ore 15
Venerdì 30 Gennaio - ore 15
Giovedì 12 Febbraio - ore 15
Un turno - Reti T 15-17,30 / Reti L-A ore 15,30-17,30
Si possono sostenere due prove di progetto a sessione
CARICAMENTO TEMPLATE O Esercitazioni … o in LAB2
Venerdì 9 Gennaio - ore 10-11
Venerdì 30 Gennaio - ore 10-11
Giovedì 12 Febbraio - ore 10-11
ESAMI - ORALI
Giovedì 22 Gennaio - ore 9,00
9 00
Mercoledì 11 Febbraio - ore 9,00
Giovedì 26 Febbraio - ore 9,00
Un’altra prova orale possibile
Introduzione 23