MATEMATICA E INFORMATICAInformaticaAnno accademico 2024/2025

9796776 - WEB AND SERVICE ORIENTED SYSTEMS AND LABORATORY
Modulo LABORATORY

Docente: SALVATORE NICOTRA

Risultati di apprendimento attesi

Il corso di Laboratorio Tecnologie per i sistemi distribuiti e il Web mira ad approfondire in modalità pratica i fondamenti concettuali di base e le capacità operative necessarie per lo sviluppo di applicazioni Web e, più in generale, distribuite. Verranno sviluppati le soluzioni architetturali tipiche, ovvero i paradigmi client-server, delle chiamate remote di procedura, del web dinamico, degli handler di richieste HTTP (servlet), il pattern MVC (Model-View-Controller) e le applicazioni Web basate su API REST.  Le tecnologie di sviluppo presentate si basano sulle piattaforme Java

Modalità di svolgimento dell'insegnamento

Lezioni ed esercitazioni si svolgono in aule-laboratorio, nelle quali gli studenti possono utilizzare i PC disponibili o il proprio PC portatile. Le lezioni consistono prevalentemente in sessioni live, operate dal docente, di sviluppo di applicazioni distribuite e per il Web mediante le tecnologie presentate. Come cornice e guida di tali sessioni, vengono proiettate delle note, interamente condivise con gli studenti attraverso il portale Studium. Nelle esercitazioni, gli studenti sono vivamente incoraggiati a studiare, modificare ed innovare il materiale presentato dal docente durante le sessioni.
Per quanto le note delle lezioni non ambiscano a costituire un testo di riferimento, esse sono intese, oltre che ad agevolare la comprensione, a fornire un dettaglio puntuale del materiale presentato e della documentazione tecnica da consultare quale riferimento.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Frequenza lezioni

Obbligatoria

Contenuti del corso

Verranno presentati, a livello di concetti, paradigmi e aspetti architetturali, gli argomenti elencati di seguito.

Si prega inoltre di tenere presente che le note del docente, pubblicate sul repository del corso https://github.com/unict-dmi-tsdw-lab/docs  o il portale Teams d'ateneo documentano fedelmente e in dettaglio gli argomenti svolti e, di conseguenza, i contenuti del corso.
NB: il repository delle note è unico per questo modulo e quello di laboratorio.


Java Web ApplicationSpring BootFrameworks

Applicazioni client-server basate su socket in Java

Thread Java

Testi di riferimento

  1. Note del docente (pubblicate attraverso il portale Studium, documentano puntualmente il materiale presentato)
  2. Deitel H. M., Deitel P. J. Java: Tecniche avanzate di programmazione. Apogeo (in biblioteca).
  3. Documentazione online Java, https://docs.oracle.com/javase/tutorial/
  4. Documentazione online Java Enterprise Edition, Tutorial Jakarta EE

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione ai sistemi concorrenti e distribuiti e al corso.1
2Socket: introduzione e system call principali.1
3Socket: Cliente di esempio. Semantica di read() e write(). Socket non bloccanti.1
4Socket: Indirizzi IP e delle socket. DNS e interfaccia al resolver.1
5Socket: Comunicazione connectionless. send() e receive().1
6Socket in linguaggio Java.1,2,3
7Java Servlets1,4
8Web Application: principi e concetti1,4
9Web services: REST con JSON1
10Sviluppo in PHP1
11Sviluppo di API REST con Spring Boot1
12Sviluppo in PHP1
13Laravel MVC1
14Sviluppo di client per il web e API web1

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Colloquio orale sugli argomenti del corso, a partire dalla correzione e discussione delle prove di laboratorio svolte e superate in precedenza. 

La prova è strutturata in modo che ad ogni studente sia attribuito un voto secondo il seguente schema:

  • Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi.
  • 18-23: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità  di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.
  • 24-27:  lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone,  risolve gli esercizi con pochi errori.
  • 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.

Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente e il referente CInAP del DMI per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.

Esempi di domande e/o esercizi frequenti

Sistemi client-server basati su 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.
Caratteristiche del linguaggio PHP.
Il pattern MVC nei framework Spring Boot e Laravel.

English version