DISTRIBUTED PROGRAMMING

Francesco CAUTERUCCIO DISTRIBUTED PROGRAMMING

0622700074
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
CORSO DI LAUREA MAGISTRALE
INGEGNERIA INFORMATICA
2024/2025

OBBLIGATORIO
ANNO CORSO 2
ANNO ORDINAMENTO 2022
PRIMO SEMESTRE
CFUOREATTIVITÀ
324LEZIONE
324ESERCITAZIONE
Obiettivi
L’INSEGNAMENTO APPROFONDISCE LE ARCHITETTURE SOFTWARE DISTRIBUITE E LE TECNOLOGIE PER LO SVILUPPO DI APPLICAZIONI SECONDO IL PARADIGMA SERVICE ORIENTED ARCHITECTURE.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE
INTRODUZIONE ALLA PROGRAMMAZIONE DISTRIBUITA E ARCHITETTURE STRATIFICATE, CLIENT-SERVER, PEER-TO-PEER. MECCANISMI PER LA COMUNICAZIONE DIRETTA: SOCKET, RPC, RMI. WEB SERVICES E SERVICE ORIENTED ARCHITECTURE. ARCHITETTURE RESTFUL.

CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE
PROGETTARE ED IMPLEMENTARE APPLICAZIONI DISTRIBUITE BASATE SUI PRINCIPALI PARADIGMI ARCHITETTURALI (CLIENT-SERVER, PEER-TO-PEER, ECC), CHE ESPORTINO WEB SERVICE E/O CHE SIANO IN GRADO DI INTERFACCIARSI CON WEB SERVICE DI TERZE PARTI.
Prerequisiti
L’INSEGNAMENTO PRESUPPONE LA CONOSCENZA DEL LINGUAGGIO JAVA, DELL’ARCHITETTURA DI UNA RETE DI CALCOLATORI, CON PARTICOLARE RIFERIMENTO ALLO STACK DI PROTOCOLLI USATI PER INTERNET (IP, TCP, UDP, HTTP).
Contenuti
UNITÀ DIDATTICA 1: INTRODUZIONE ALLA PROGRAMMAZIONE DISTRIBUITA E AI MODELLI ACHITETTURALI
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/0/0)
- 1 (2 ORE LEZIONE): INTRODUZIONE ALLA PROGRAMMAZIONE DISTRIBUITA E ARCHITETTURE STRATIFICATE, CLIENT-SERVER, PEER-TO-PEER. CONCETTO DI MIDDLEWARE
- 2 (2 ORE LEZIONE): JAVA I/O, PROCESSI E THREAD IN SISTEMI DISTRIBUITI
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENSIONE DEI CONCETTI DELLA PROGRAMMAZIONE DISTRIBUITA E DEI MODELLI ARCHITETTURALI.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER PROGRAMMARE PROCESSI E THREAD IN SISTEMI DISTRIBUITI.

UNITÀ DIDATTICA 2: PARADIGMI DI COMUNICAZIONE IN UN SISTEMA DISTRIBUITO: COMUNICAZIONE TRA PROCESSI
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/6/0)
- 1 (2 ORE LEZIONE): CONNESSIONE TCP
- 2 (1 ORE LEZIONE/1 ORE ESERCITAZIONE): ESEMPI DI APPLICAZIONI DEL PROTOCOLLO TCP (PROGETTAZIONE CHAT CLIENT/SERVER, SERVIZIO DI TRASFERIMENTO FILE, ECHO SERVER UPPERCASE)
- 3 (2 ORE ESERCITAZIONE): ESEMPI DI APPLICAZIONI DEL PROTOCOLLO TCP (PROGETTAZIONE CHAT CLIENT/SERVER, SERVIZIO DI TRASFERIMENTO FILE, ECHO SERVER UPPERCASE)
- 4 (2 ORE LEZIONE): CONNESSIONE UDP
- 5 (1 ORE LEZIONE/1 ORE ESERCITAZIONE): ESEMPI DI APPLICAZIONI DEL PROTOCOLLO UDP (PROGETTAZIONE GESTIONE PRESENZE STUDENTI IN AULA, PROGETTAZIONE DI UN GIOCO TIPO “FORZA QUATTRO”)
- 6 (2 ORE ESERCITAZIONE): ESEMPI DI APPLICAZIONI DEL PROTOCOLLO UDP (PROGETTAZIONE GESTIONE PRESENZE STUDENTI IN AULA, PROGETTAZIONE DI UN GIOCO TIPO “FORZA QUATTRO”)
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENSIONE DEI PROTOCOLLI A LIVELLO DI TRASPORTO (SOCKET PROGRAMMING)
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER SVILUPPARE APPLICAZIONI DISTRIBUITE CHE USANO QUESTI PROTOCOLLI.

UNITÀ DIDATTICA 3: PARADIGMI DI COMUNICAZIONE IN UN SISTEMA DISTRIBUITO: INVOCAZIONI REMOTE
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/2/0)
- 1 (2 ORE LEZIONE): INTRODUZIONE AGLI OGGETTI DISTRIBUITI E ALLE INVOCAZIONI REMOTE. RPC (REMOTE PROCEDURE CALL), RMI (REMOTE METHOD INVOCATION)
- 2 (2 ORE LEZIONE): JAVA RMI
- 3 (2 ORE ESERCITAZIONE): ESEMPI DI PROGRAMMAZIONE CON RMI (APPLICAZIONE CLIENT / SERVER PER LA GESTIONE DI UN CONGRESSO CON RMI)
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENSIONE DEL PARADIGMA DI COMUNICAZIONE REMOTA NEI SISTEMI DISTRIBUITI
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER SVILUPPARE APPLICAZIONI DISTRIBUITE CHE USANO LE TECNICHE DI INVOCAZIONE REMOTA PER LA COMUNICAZIONE (RMI E RPC).

UNITÀ DIDATTICA 4: SERVIZI WEB
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/6/0)
- 1 (2 ORE LEZIONE): WEB SERVICES: SOAP (SIMPLE OBJECT ACCESS PROTOCOL)
- 2 (1 ORE LEZIONE/1 ORE ESERCITAZIONE): JAVA API FOR XML WEB SERVICES (JAXWS)
- 3 (2 ORE ESERCITAZIONE): PROGRAMMAZIONE DEI WEB SERVICES IN JAVA, JAXWS
- 4 (2 ORE LEZIONE): ARCHITETTURE RESTFUL. ACCESSO A WEB SERVICES RESTFUL USANDO IL PROTOCOLLO HTTP
- 5 (1 ORE LEZIONE/1 ORE ESERCITAZIONE): DEFINIZIONE E USO DI WEB SERVICES CON IL FRAMEWORK JAXRS
- 6 (2 ORE ESERCITAZIONE): PROGRAMMAZIONE DEI WEB SERVICES RESTFUL
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: COMPRENSIONE DEI SERVIZI WEB SOAP E REST E DEGLI STANDARD UTILIZZATI.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER SVILUPPARE SERVIZI WEB DI TIPO SOAP E DI TIPO REST

UNITÀ DIDATTICA 5: DEFINIZIONE E PROGETTAZIONE DI UN SISTEMA DISTRIBUITO
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 4/10/0)
- 1 (2 ORE LEZIONE): PROGETTAZIONE DI UN SISTEMA DISTRIBUITO
- 2 (2 ORE LEZIONE): PROGETTO: DEFINIZIONE SPECIFICA DEI REQUISITI E FUNZIONALITÀ
- 3 (2 ORE ESERCITAZIONE): PROGETTO: DEFINIZIONE ARCHITETTURA
- 5 (2 ORE ESERCITAZIONE): PROGETTO: DEFINIZIONE PROTOCOLLI DI COMUNICAZIONE
- 6 (2 ORE ESERCITAZIONE): PROGETTO: CODING
- 7 (2 ORE ESERCITAZIONE): PROGETTO: CODING
- 8 (2 ORE ESERCITAZIONE): PROGETTO: CODING
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: SAPER DEFINIRE E PROGETTARE UN SISTEMA DISTRIBUITO
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: SAPER SVILUPPARE UN SISTEMA DISTRIBUITO

TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO 24/24/0
Metodi Didattici
L'INSEGNAMENTO CONTEMPLA 48 ORE DI LEZIONE (6CFU), DIVISE COME SEGUE:
LEZIONI TEORICHE (24H), ESERCITAZIONI IN AULA (24H).

NELLE ESERCITAZIONI VERRANNO ESEMPLIFICATI GLI ARGOMENTI TEORICI MEDIANTE LA REALIZZAZIONE DI APPLICAZIONI DISTRIBUITE DI ESEMPIO.

PER POTER SOSTENERE LA VERIFICA FINALE DEL PROFITTO E CONSEGUIRE I CFU RELATIVI ALL’ATTIVITÀ FORMATIVA, LO STUDENTE DOVRÀ AVERE FREQUENTATO ALMENO IL 70% DELLE ORE PREVISTE DI ATTIVITÀ DIDATTICA ASSISTITA.
Verifica dell'apprendimento
LA PROVA DI ESAME È FINALIZZATA A VALUTARE NEL SUO COMPLESSO LE CONOSCENZE E LE CAPACITÀ DI COMPRENSIONE DEI CONCETTI PRESENTATI A LEZIONE, NONCHÉ LA CAPACITÀ DI APPLICARE TALI CONOSCENZE PER LA PROGETTAZIONE, LO SVILUPPO E LO STUDIO DEL COMPORTAMENTO DEI SISTEMI SOFTWARE DISTRIBUITI.

GLI STUDENTI SARANNO DIVISI IN GRUPPI E SARÀ LORO ASSEGNATO UN ELABORATO DI PROGETTAZIONE E IMPLEMENTAZIONE DI UN SISTEMA DISTRIBUITO.
L’ELABORATO VERRÀ ESPOSTO DAI SINGOLI COMPONENTI DEL GRUPPO NEL COLLOQUIO ORALE. OLTRE ALLA DISCUSSIONE DELL’ELABORATO, IL COLLOQUIO ORALE VERTERÀ SU TUTTI GLI ARGOMENTI DEL CORSO.

LA VALUTAZIONE TERRÀ CONTO ANCHE DELLA PARTECIPAZIONE DELLO STUDENTE ALLO SVILUPPO DELL’ELABORATO, DELLA SUA CAPACITÀ DI INTEGRAZIONE NEL GRUPPO, DEL RAGGIUNGIMENTO DEGLI OBIETTIVI DI SVILUPPO DELL’APPLICAZIONE SECONDO LE SPECIFICHE FORNITE E DELLA PREPARAZIONE DELLO STUDENTE SUGLI ARGOMENTI DEL CORSO. NELLO SPECIFICO, NELLA VALUTAZIONE FINALE, ESPRESSA IN TRENTESIMI, LA VALUTAZIONE DEL PROGETTO PESERÀ PER IL 60%, MENTRE IL COLLOQUIO PER IL RESTANTE 40%.
Testi
TESTI DI RIFERIMENTO CONSIGLIATI:
* COULOURIS ET AL.: DISTRIBUTED SYSTEMS: CONCEPTS AND DESIGN, FIFTH EDITION.

MATERIALE DIDATTICO INTEGRATIVO SARA' DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTP://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO.
Altre Informazioni
L'INSEGNAMENTO È EROGATO IN ITALIANO.
Orari Lezioni

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2024-11-29]