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 N. modulo/ Titolo unità didattiche in cui è diviso il modulo obiettivi Ore previste per Periodo mensile modulo per modulo Competenze Modulo 1 GESTIONE DEI PROCESSI: Ripasso dei concetti fondamentali sulla gestione dei processi in ambienti multi programmati 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 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 Prerequisiti per l'accesso al modulo 2: Concorrenza tra processi Conoscenza del linguaggio Java Titolo Modulo e N. modulo/ Titolo unità didattiche in cui è diviso il modulo obiettivi Modulo 2 EREDITARIETA E THREAD Ore previste per Periodo mensile modulo per modulo UD 1: Concetto di ereditarietà UD 2: Thread in Java 11 (2+9 lab) OTT/NOV 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 14 (4+10lab) NOV 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 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 N. modulo/ Titolo unità didattiche in cui è diviso il modulo obiettivi 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 Ore previste per Periodo mensile modulo per modulo 36 (9+27lab) DIC /FEB Competenze 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 N. modulo/ Titolo unità didattiche in cui è diviso il modulo obiettivi 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 Ore previste per Periodo mensile modulo per modulo 57(17+40 lab) FEB /GIU Competenze 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 Conoscenze Teoriche Abilità Operative N. ore Definizione di Programma e Processo, caratteristiche e differenze Programma e Processo Stati di un processo UD 1: Stati di un processo Strutture per la rappresentazione di GESTIONE DEI Rappresentazione di un un processo in memoria PROCESSI NEI processo in memoria Dati presenti nel descrittore di SISTEMI OPERATIVI Descrittore di Processo Processo e loro utilità MULTIPROGRAMMA Process Table Struttura della Process Table TI Code di Processi Struttura e funzionalità delle code di Context Switching Processi Context Switching 2 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 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 Comprendere le modalità di comunicazione dei processi e il loro specifico campo di applicazione 6 4
UD 3: APPLICAZIONE DEI SEMAFORI UD 4: INTRODUZIONE AI THREAD Semafori Risoluzione dei problemi della concorrenza con i semafori 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 Realizzare semplici Thread Java 2 6 UNITÀ DIDATTICHE DEL MODULO N. 2: EREDITARIETA E THREAD JAVA Titolo U.D. Contenuti Conoscenze Teoriche Abilità Operative N. ore Concetto di Ereditarietà Ereditarietà singola e multipla Grafo di gerarchia Saper realizzare sottoclassi java UD 1: Ereditarietà: caratteristiche Ereditarietà Java: Saper utilizzare sottoclassi Java EREDITARIETA Ereditarietà in java Caratteristiche Saper utilizzare le classi di tipo interfaccia 3 Definizione di sottoclassi in Java Classi Astratte e Interfaccia UD 2: THREAD JAVA Thread in java: metodologie di sviluppo Problema del produttoreconsumatore La classe thread Interfaccia Runnable Comunicazione tra Thread Comunicazione tra Thread Produttore-consumatore in Java Saper risolvere semplici problemi tramite thread in Java 8 5
UNITÀ DIDATTICHE DEL MODULO N. 3: SISTEMI DISTRIBUITI Titolo U.D. Contenuti Conoscenze Teoriche Abilità Operative N. ore Il concetto di elaborazione distribuita Definizione di sistema distribuito I benefici della Elaborazione e sistema centralizzato Distribuita rispetto all Elaborazione Vantaggi e Svantaggi di un S.D. Saper individuare i benefici della UD 1: SISTEMI Centralizzata Middleware distribuzione DISTRIBUITI Svantaggi dell Elaborazione 2 Multiprocessore Saper individuare le diverse applicazioni Multicomputer Distibuita distribuite Cluster di PC Architettura parallela Architettura parallela Differenze ed analogie tra architettura distribuita e parallela UD 2: MODELLI DI COMUNICAZIONE IN UN SISTEMA DISTRIBUITO UD 3: ARCHITETTURA A LIVELLI DI UN S. D. UD 4: P2P e C/S Modello Client/Server Modello Object-based Livelli e strati Architettura ad un livello Architettura a due livelli Architettura a tre livelli Architettura ad n livelli Architettura P2P Architettura P2P centralizzata Architettura P2P decentralizzata Architettura P2P ibrida 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 Saper individuare i benefici del modello C/S Saper individuare le funzionalità di ciascuno stato dell architetura Essere in grado di scegliere l architettura opportuna per una applicazione di rete 3 3 4 6
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 UD 5: LE APPLICAZIONI DI RETE Applicazione di rete Tipologie di applicazione Protocolli per le applicazioni di rete 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. Contenuti Conoscenze Teoriche Abilità Operative N. ore Strati del modello TCP/IP Unità di informazione nei vari strati del TCP/IP Differenze essenziali tra TCP e UDP Essere in grado di scegliere i protocolli Definizione di Porta per le applicazione di rete 2 UD 1: I SOCKET E I PROTOCOLLI PER LA COMUNICAZIONE DI RETE UD 2: LA CONNESSIONE TRAMITE SOCKET 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 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 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 Conoscenze Teoriche Abilità Operative N. ore Definizione di XML e campi di impiego Definizione di XML Caratteristiche sintattiche Caratteristiche di un file XML dell'xml (weel formed XML) Campi di impiego di un file XML Saper utilizzare gli strumenti concettuali Validazione dell'xml con DTD Sintassi XML su cui si base l XML (Document Type Definition) e Gerarchia degli elementi XML Saper utilizzare i criteri di base dell XML 9 XSD (XML Schema Definition) Validazione dell XML con DTD per organizzare e classificare i dati Trasformazioni XML con Visualizzazione dei dati tecnologia XSL (Xml Stylesheet Caratteristiche del XSL Language) UD 1: IL LINGUAGGIO XML UD 2: LE SERVLET 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 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(), Realizzare una servlet Installare una servlet Configurare una servlet 12 8
UD 3: JSP: JAVA SERVER PAGE UD 4: JSP E JAVA BEAN UD 5: JDBC: JAVA DATABASE CONNECTIVITY Esecuzione di una Servlet Vantaggi e Svantaggi di una servlet Definizione di pagina JSP Analogie tra JSP e servlet Le principali direttive di una JSP (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 Conoscere le caratteristiche delle Bean Realizzare applicazioni con JSP e Bean Utilizzare l interfaccia JDBC Realizzare semplici applicazioni utilizzando JDBC Gestire le sessioni Gestire i Cookie 12 12 12 9
Statement Connessione a MySQL: caratteristiche Connessione ad Access: caratteristiche Cookie con le servlet Cookie in java Gestione delle sessioni Sessioni Java 10