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