Programmazione modulare 2015-2016

Programmazione modulare 2015-2016
Indirizzo: Informatica
Disciplina: TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
Classe: 5A e 5B
Docente: Maria Lizzi
Ore settimanali previste: 4 ore (1 teoria + 3 laboratorio) – Totale ore previste: 132
Prerequisiti per l'accesso al modulo 1:
Concetti di base sui sistemi operativi
Conoscenza del linguaggio Java
Titolo Modulo e
Ore previste per Periodo mensile
N. modulo/
Titolo unità didattiche in cui è diviso il modulo
obiettivi
modulo
per modulo
Modulo 1
GESTIONE DEI
PROCESSI:
Ripasso dei concetti
fondamentali sulla
gestione dei processi
in ambienti multi
programmati
Competenze

UD 1: Gestione dei processi in sistemi
operativi multi programmati
UD2: Concorrenza
UD3: Applicazione dei Semafori
UD4: Concetto di Thread


16 (12+4 lab)
SETT/OTT



Prerequisiti per l'accesso al modulo 2:
Concorrenza tra processi
Conoscenza del linguaggio Java
Titolo Modulo e
Ore previste per Periodo mensile
N. modulo/
Titolo unità didattiche in cui è diviso il modulo
obiettivi
modulo
per modulo
Modulo 2
EREDITARIETA’ E
THREAD
UD 1: Concetto di ereditarietà
UD 2: Thread in Java
11 (2+9 lab)
OTT/NOV
Saper descrivere il ciclo di vita di un processo
Comprendere l’esigenza di sincronizzazione
Comprendere il concetto di indivisibilità di una primitiva
Descrivere il funzionamento dei semafori di Dijkstra
Avere il concetto di regione critica e di mutua esclusione
Essere in grado di risolvere semplici problemi legati alla
concorrenza
Competenze


Comprendere il concetto di ereditarietà
Realizzare programmi con l’uso di thread
1
Prerequisiti per l'accesso al modulo 3:
N. modulo/
Modulo 3
Titolo Modulo e
obiettivi
SISTEMI DISTRIBUITI
Titolo unità didattiche in cui è diviso il modulo
UD 1: Introduzione
UD 2: Modelli di comunicazione in un
sistema distribuito
UD3: Architettura a livelli di un sistema
distribuito
UD3: P2P e Client/Server
UD4: Applicazioni di rete
Ore previste per Periodo mensile
modulo
per modulo
Competenze
Conoscere gli stili architetturali dei sistemi distribuiti
Comprendere le caratteristiche del modello C/S
 Comprendere le caratteristiche del modello P2P
 Comprendere le caratteristiche delle applicazioni di rete
 Saper classificare le applicazioni di rete


14 (4+10lab)
NOV
Prerequisiti per l'accesso al modulo 4:
Concetti base della pila ISO/OSI
Concetti base del protocollo TCP/IP
Linguaggio di programmazione java
Titolo Modulo e
Ore previste per Periodo mensile
N. modulo/
Titolo unità didattiche in cui è diviso il modulo
obiettivi
modulo
per modulo
Competenze



Modulo 4
I SOCKET E LA
COMUNICAZIONE DI
RETE
UD 1: I socket e i protocolli per la
comunicazione di rete
UD 2: La connessione tramite socket
UD3: Java Socket


36 (9+27lab)
DIC /FEB





Acquisire il modello di comunicazione di una network
Conoscere il concetto di socket
Apprendere le modalità di connessione con i protocolli TCP e
UDP
Conoscere le comunicazione Multicast
Conoscere le caratteristiche della comunicazione con i socket
java
Acquisire il protocollo UDP nel linguaggio Java
Essere in grado di realizzare un client TCP in java
Essere in grado di realizzare un server TCP in java
Essere in grado di realizzare un server multiplo in java
Essere in grado di realizzare un server UDP in java
2
Prerequisiti per l'accesso al modulo 4:
HTML: tag principali
Linguaggio di programmazione java
Titolo Modulo e
Ore previste per Periodo mensile
N. modulo/
Titolo unità didattiche in cui è diviso il modulo
obiettivi
modulo
per modulo
Competenze

Modulo 5
APPLICAZIONI LATO
SERVER IN JAVA
UD 1: Il linguaggio XML
UD2: Le servlet
UD3: JSP: Java Server Page
UD4: JSP e Java Bean
UD5:JDBC: Java DataBase Connectivity


57(17+40 lab)
FEB /GIU





Acquisire gli strumenti concettuali su cui si base l’XML
Acquisire le caratteristiche delle servlet
Conoscere le caratteristiche e le componenti delle pagine JSP
Realizzare un’applicazione WEB dinamica con pagine JSP
Conoscere le caratteristiche delle Bean
Saper realizzare applicazioni con JSP e Bean
Acquisire le caratteristiche dell’interfaccia JDBC
Conoscere i tipi di driver per la connessione ai database
3
UNITÀ DIDATTICHE DEL MODULO N. 1: GESTIONE DEI PROCESSI
Titolo U.D.
Contenuti


UD 1:
GESTIONE DEI
PROCESSI NEI
SISTEMI OPERATIVI
MULTIPROGRAMMA
TI






Programma e Processo
Stati di un processo
Rappresentazione di un
processo in memoria
Descrittore di Processo
Process Table
Code di Processi
Context Switching






UD 2:
CONCORRENZA






Concorrenza
Processi Indipendenti
Processi Interagenti
Cooperazione tra processi
Competizione tra processi
Comunicazione
 Segnali
 Scambio di Messaggi
 Area di memoria condivisa
 Problemi tipici della concorrenza
 Mutua Esclusione
 Sincronizzazione
 Deadlock
 Problema del produttoreconsumatore













Conoscenze Teoriche
Definizione di Programma e
Processo, caratteristiche e differenze
Stati di un processo
Strutture per la rappresentazione di
un processo in memoria
Dati presenti nel descrittore di
Processo e loro utilità
Struttura della Process Table
Struttura e funzionalità delle code di
Processi
Context Switching
Definizione di concorrenza
Overlapping e Interleaving
Definizione dei processi indipendenti
Definizione dei processi interagenti
Problematiche relative
all’interazione tra processi
Concetto di Cooperazione e
competizione
Comunicazione tra processi:
metodologie
Comunicazione tramite segnali
Comunicazione tramite scambio di
messaggi
Comunicazione tramite area di
memoria condivisa
Concetto di Mutua esclusione
Concetto di Sincronizzazione
Problema del produttoreconsumatore: cenni
Abilità Operative
N. ore

2
 Comprendere le modalità di
comunicazione dei processi e il loro
specifico campo di applicazione
6
4
UD 3:
APPLICAZIONE DEI
SEMAFORI
 Semafori
 Risoluzione dei problemi della
concorrenza con i semafori
UD 4:
INTRODUZIONE AI
THREAD
 Thread
 Rappresentazione dei Thread in
memoria
 Vantaggi nell’uso dei thread
 Concetto di sezione critica
 Concetto di Semafori di Dijkstra
 Risoluzione dei problemi di mutua
esclusione con i semafori
 Risoluzione dei problemi di
sincronizzazione con i semafori
 Risoluzione del problema
produttore-consumatore coni
semafori
 Definizione di Thread
 Stati di un thread
 Strutture per la rappresentazione dei
dati in memoria
 Vantaggi nell’uso dei thread rispetto
ai processi
 saper affrontare problematiche relative
alla concorrenza tra processi
6
 Realizzare semplici Thread Java
2
UNITÀ DIDATTICHE DEL MODULO N. 2: EREDITARIETA’ E THREAD JAVA
Titolo U.D.
Contenuti
Conoscenze Teoriche
Concetto di Ereditarietà
 Ereditarietà singola e multipla
 Grafo di gerarchia
 Ereditarietà Java:
 Caratteristiche
 Definizione di sottoclassi in Java
 Classi Astratte e Interfaccia
 La classe thread
 Interfaccia Runnable
 Comunicazione tra Thread
 Comunicazione tra Thread
 Produttore-consumatore in Java
Abilità Operative
N. ore

UD 1:
EREDITARIETA’
UD 2:
THREAD JAVA


Ereditarietà: caratteristiche
Ereditarietà in java
 Thread in java: metodologie di
sviluppo
 Problema del produttoreconsumatore
Saper realizzare sottoclassi java
Saper utilizzare sottoclassi Java
Saper utilizzare le classi di tipo interfaccia
3
 Saper risolvere semplici problemi tramite
thread in Java
8



5
UNITÀ DIDATTICHE DEL MODULO N. 3: SISTEMI DISTRIBUITI
Titolo U.D.
Contenuti


UD 1: SISTEMI
DISTRIBUITI
UD 2: MODELLI DI
COMUNICAZIONE IN
UN SISTEMA
DISTRIBUITO
Definizione di sistema distribuito
e sistema centralizzato
 Vantaggi e Svantaggi di un S.D.

Middleware

 Multiprocessore
 Multicomputer
 Cluster di PC
 Architettura parallela

 Modello Client/Server
 Modello Object-based






UD 3:
ARCHITETTURA A
LIVELLI DI UN S. D.





Livelli e strati
Architettura ad un livello
Architettura a due livelli
Architettura a tre livelli
Architettura ad n livelli




UD 4: P2P e C/S




Architettura P2P
Architettura P2P centralizzata
Architettura P2P decentralizzata
Architettura P2P ibrida




Conoscenze Teoriche
Il concetto di elaborazione distribuita
I benefici della Elaborazione
Distribuita rispetto all’Elaborazione
Centralizzata
Svantaggi dell’Elaborazione
Distibuita
Architettura parallela
Differenze ed analogie tra
architettura distribuita e parallela
Definizione di modello C/S
Distinzione tra Client e Server
Comunicazione Unicast e Multicast
Definizione di livello e architettura a
livelli
Caratteristiche di una architettura ad
un livello
Caratteristiche di una architettura a
due livelli
Caratteristiche di una architettura a
tre livelli
Caratteristiche di una architettura ad
n livelli
Definizione di architettura P2P
Caratteristiche dell’architettura P2P
Differenza tra le architetture P2P e
C/S
Caratteristiche dell’architettura P2P
centralizzata
Abilità Operative
N. ore
Saper individuare i benefici della
distribuzione
Saper individuare le diverse applicazioni
distribuite
2
 Saper individuare i benefici del modello
C/S
3
 Saper individuare le funzionalità di
ciascuno stato dell’architetura
3
 Essere in grado di scegliere l’architettura
opportuna per una applicazione di rete
4


6




UD 5: LE
APPLICAZIONI DI
RETE
 Applicazione di rete
 Tipologie di applicazione
 Protocolli per le applicazioni di
rete



Caratteristiche dell’architettura P2P
decentralizzata
Caratteristiche dell’architettura P2P
ibrida
Esempi di P2P: file sharing,
distributed computing, P2P TV,
Telefonia via Internet (cenni), CDN
Rischi del P2P
Modello ISO/OSI
Definizione delle applicazioni di rete
Caratteristiche delle applicazioni di
rete
 Essere in grado di classificare le
applicazioni di rete
2
UNITÀ DIDATTICHE DEL MODULO N. 4: I SOCKET E LA COMUNICAZIONE DI RETE
Titolo U.D.
UD 1: I SOCKET E I
PROTOCOLLI PER LA
COMUNICAZIONE DI
RETE
UD 2: LA
CONNESSIONE
TRAMITE SOCKET
Contenuti
 Pila TCP/IP
 Protocollo TCP e UDP:
caratteristiche
 Definizione di Socket
 Porte di comunicazione e Socket
 Socket e processi C/S
 Famiglie e tipologie di Socket
 Modalità di connessione con il
protocollo TCP e UDP
 Comunicazione Multicast
Conoscenze Teoriche
 Strati del modello TCP/IP
 Unità di informazione nei vari strati
del TCP/IP
 Differenze essenziali tra TCP e UDP
 Definizione di Porta
 Definizione di API
 Concetto di Processo Client e
Processo Server
 Famiglie e tipologie di Socket
 Stream Socket
 Primitive send e receive
 Datagram Socket
 Caratteristiche della trasmissione
multi cast

Abilità Operative
N. ore
Essere in grado di scegliere i protocolli
per le applicazione di rete
2
 Essere in grado di definire Socket
utilizzando le classi Java
14
7
UD3: JAVA SOCKET
 Caratteristiche della
comunicazione con i socket Java
 Classe InetAddress
 Classe ServerSocket
 Classe Socket
 Realizzazione di un Client TCP in
Java




Operazioni necessarie al
trasferimento dati tra due host
Caratteristiche della classe
InetAddress; metodi principali:
Caratteristiche della classe
SeverSocket; metodi principali
Caratteristiche della classe Socket;
metodi principali




Essere in grado di realizzare un client TCP
in java
Essere in grado di realizzare un server
TCP in java
Essere in grado di realizzare un server
multiplo in java
Essere in grado di realizzare un server
UDP in java
20
UNITÀ DIDATTICHE DEL MODULO N. 5: APPLICAZIONI LATO SERVER IN JAVA
Titolo U.D.
Contenuti
impiego
 Caratteristiche sintattiche
UD 1: IL
LINGUAGGIO XML
dell'XML (weel formed XML)
 Validazione dell'XML con DTD


UD 2: LE SERVLET
Conoscenze Teoriche
 Definizione di XML e campi di







(Document Type Definition) e
XSD (XML Schema Definition)
Trasformazioni XML con
tecnologia XSL (Xml Stylesheet
Language)
Definizione e caratteristiche di
una servlet
Ciclo di vita di una sevlet
Classe HTTPServlet
HTTPServletRequest
HTTPServletResponse
Deployment di una applicazione
web
Inizializzazione di una Servlet
Configurazione di una Servlet








Definizione di XML
Caratteristiche di un file XML
Campi di impiego di un file XML
Sintassi XML
Gerarchia degli elementi XML
Validazione dell’XML con DTD
Visualizzazione dei dati
Caratteristiche del’XSL


Abilità Operative
N. ore
Saper utilizzare gli strumenti concettuali
su cui si base l’XML
Saper utilizzare i criteri di base dell’XML
per organizzare e classificare i dati
9
Realizzare una servlet
Installare una servlet
Configurare una servlet
12
 Definizione e caratteristiche di una
servlet
 Gestione delle richieste del client: il
Web Container
 Metodi principali di una servlet:
init(), service(), destroy()
 La classe HTTPServlet: metodi
principali: doGet(), doPost()
 La classe HTTPServletRequest:
metodi principali: getRequestURI(),



8
 Esecuzione di una Servlet
 Vantaggi e Svantaggi di una
servlet
UD 3: JSP: JAVA
SERVER PAGE
UD 4: JSP E JAVA
BEAN
 Definizione di pagina JSP
 Analogie tra JSP e servlet
 Le principali direttive di una JSP









UD 5: JDBC: JAVA
DATABASE
CONNECTIVITY







(page e include)
Valutazione di espressioni
Scriptlet
Dichiarazioni e commenti
Java Bean: caratteristiche
Uso di Java Bean
Passaggio di parametri al Bean
Svantaggi di una soluzione
software pure-servlet
Svantaggi di una soluzione
software pure-JSP
Vantaggi di una soluzione con
servlet/JSP
JDBC
Tipi di driver JDBC
Lavorare con JDBC
Connessione a MySQL
Connessione ad Access
Sessioni
Cookie
GetMethod(), GetInputStream(),
GetReader();GetParameters()
 La classe HTTPServletResponse:
metodi principali:
GetOutputStream(); getWriter()
 Pagine JSP: caratteristiche
 Tag in una pagina JSP
 Tag Scripting-oriented
 Espressioni
 Dichiarazioni
 Scriptlet
 Direttive : include, taglib, page






Classe Java Bean
Incapsulamento degli attributi
Specifica del Bean
Uso di Java Bean
Configurazione della applicazione
Passaggio di parametri al Bean e
passaggio diretto
 JDBC: significato
 Tipi di driver JDBC
 Bridge JDBC-ODBC
 API Native
 Pure Java Driver for Database
Middleware
 Driver-to-Database Pure Java
Driver
 Lavorare con JDBC
 Driver JDBC
 Connessione

Realizzare un’applicazione WEB dinamica
con pagine JSP
12

Conoscere le caratteristiche delle Bean
Realizzare applicazioni con JSP e Bean
12

Utilizzare l’interfaccia JDBC
 Realizzare semplici applicazioni
utilizzando JDBC
 Gestire le sessioni
 Gestire i Cookie

12
9






 Statement
Connessione a MySQL:
caratteristiche
Connessione ad Access:
caratteristiche
Cookie con le servlet
Cookie in java
Gestione delle sessioni
Sessioni Java
10