TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB CON LABORATORIO
Anno accademico 2017/2018 - 3° anno - Curriculum B- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB: Giuseppe PAPPALARDO
- LABORATORIO: Giuseppe PAPPALARDO
Organizzazione didattica: 225 ore d'impegno totale, 141 di studio individuale, 48 di lezione frontale, 36 di laboratorio
Semestre: 1°
Obiettivi formativi
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
Conoscenza e capacità di comprensione (knowledge and understanding): verrano acquisite conoscenza e comprensione dei fondamenti concettuali (nozioni di base e architetturali, principali classi di problemi) su cui poggiano le soluzioni di impiego corrente per lo sviluppo dei sistemi distribuiti e, in particolare, delle applicazioni web lato server.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente sarà in grado di impiegare soluzioni e paradigmi appresi nel corso, in modo da costituire un efficace bagaglio di competenze, necessarie per la progettazione di sistemi distribuiti e applicazioni Web lato server.
Autonomia di giudizio (making judgements): lo studente sarà in grado di valutare comparativamente i meriti e i limiti delle soluzioni di impiego corrente, nell'industria del software, per le problematiche e gli scenari tipici della progettazione distribuita e Web (lato server).
Abilità comunicative (communication skills): lo studente apprenderà terminologia e paradigmi specifici dei sistemi distribuiti e dello sviluppo Web lato server e acquisirà le abilità comunicative appropriate per esprimere e discutere, ad un livello tecnico rigoroso, le problematiche di interesse.
Capacità di apprendimento (learning skills): lo studente sarà in grado di documentarsi e approfondire le proprie conoscenze mediante la consultazione delle fonti disponibili (libri di testo e/o risorse on line), eventualmente applicando le informazioni acquisite in contesti concreti.
Prerequisiti richiesti
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
- Capacità di pensare in termini algoritmici (corso di Programmazione)
- Conoscenza di problematiche e soluzioni della programmazione concorrente (trattata nel corso di Sistemi Operativi)
- Conoscenza dei principali concetti, meccanismi e protocolli della rete Internet (corso di Reti di calcolatori)
Frequenza lezioni
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
Consigliata, per il raggiungimento di una piena comprensione del materiale presentato.
Contenuti del corso
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
Verranno presentati, a livello di concetti, paradigmi e aspetti architetturali, i seguenti argomenti:
- Applicazioni client-server basate su socket
- Applicazioni client-server basate su invocazioni remote di codice
- Thread Linux in C
- Thread Java
- Servlet e web application
- Web services SOAP e REST
Testi di riferimento
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
- Note del docente (pubblicate attraverso il portale Studium
- Deitel H. M., Deitel P. J. Java: Tecniche avanzate di programmazione. Apogeo. (in biblioteca)
- Documentazione online Java, https://docs.oracle.com/javase/tutorial/
- Documentazione online Java Enterprise Edition, https://docs.oracle.com/javaee/7/tutorial/
Programmazione del corso
TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB | |||
Argomenti | Riferimenti testi | ||
---|---|---|---|
1 | Introduzione ai sistemi concorrenti e distribuiti e al corso. | 1 | |
2 | Socket: introduzione e system call principali. | 1 | |
3 | Socket: Cliente di esempio. Semantica di read() e write(). Socket non bloccanti. | 1 | |
4 | Socket: Indirizzi IP e delle socket. DNS e interfaccia la resolver. | 1 | |
5 | Socket: Comunicazione connectionless. send() e receive(). | 1 | |
6 | Socket in linguaggio Java. | 1,2,3 | |
7 | Java: Remote Method Invocation | 2,3 | |
8 | Remote Procedure Call in C | 1 | |
9 | Java Servlet: concetti | 1,4 | |
10 | Web Application: principi e concetti | 1,4 | |
11 | Web services: SOAP | 1 | |
12 | Web services: REST con JSON | 1 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
Discussione orale degli argomenti del corso a partire dalla correzione della prova di laboratorio.
Esempi di domande e/o esercizi frequenti
- TECNOLOGIE PER I SISTEMI DISTRIBUITI E IL WEB
- Sviluppo di sistemi client-server mediante socket.
- Uso dei thread Posix.
- Architettura 3-tier per un sistema distribuito.
- Sviluppo di applicazioni Web server-side, mediante servlet.
- Impiego di ambienti integrati di sviluppo.
- Servlet e servlet container
- Web application
- Costruzione e utilizzo di web services SOAP e REST.
- Formato di interscambio JSON.