WEB AND SERVICE ORIENTED SYSTEMS AND LABORATORYModulo LABORATORY
Anno accademico 2024/2025 - Docente: SALVATORE NICOTRARisultati di apprendimento attesi
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
- Capacità di pensare in termini algoritmici (corsi di Programmazione 1 e Programmazione 2)
- 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
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.
- Tomcat
- Servlet e web application
- Connessione ai databases JDBC/JPA
- Micro Servizi
- Spring Boot Web MVC
Thymeleaf
- Spring Data (JDBC, Spring Data JPA)
- Web Assembly
- React Native
Applicazioni client-server basate su socket in Java
- comunicazione connection-oriented e connectionless
- API Java (Server(Client)
- NIO
Thread Java
- classe Thread e API del JDK per la creazione e gestione dei thread
- interfaccia Runnable
- Virtual Thread
Testi di riferimento
- Note del docente (pubblicate attraverso il portale Studium, documentano puntualmente il materiale presentato)
- 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, Tutorial Jakarta EE
Programmazione del corso
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 al resolver. | 1 |
5 | Socket: Comunicazione connectionless. send() e receive(). | 1 |
6 | Socket in linguaggio Java. | 1,2,3 |
7 | Java Servlets | 1,4 |
8 | Web Application: principi e concetti | 1,4 |
9 | Web services: REST con JSON | 1 |
10 | Sviluppo in PHP | 1 |
11 | Sviluppo di API REST con Spring Boot | 1 |
12 | Sviluppo in PHP | 1 |
13 | Laravel MVC | 1 |
14 | Sviluppo di client per il web e API web | 1 |
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
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.