PROGRAMMING TECHNIQUES FOR DISTRIBUTED SYSTEMS

Anno accademico 2025/2026 - Docente: RAFFAELE DI NATALE

Risultati di apprendimento attesi

Conoscenza e apprendimento

Conoscenza di Java, con particolare riferimento agli strumenti per la programmazione distribuita. Capacità di integrare le diverse tecniche di programmazione al fine di strutturare l'architettura di un sistema distribuito in base a un insieme di requisiti di progettazione.


Conoscenze applicate

Capacità di descrivere quanto appreso nell'ambito del deployment di applicazioni in ambienti distribuiti di uso comune.

Prerequisiti richiesti

Fondamenti di Programmazione

Frequenza lezioni

La frequenza alle lezioni non è obbligatoria ma è fortemente consigliata.

Contenuti del corso

1. Object-oriented programming The Java programming language.General features, data types, operators, expressions, control structures: Classes, objects, interfaces, inheritance and polymorphism, packages, 

2. Threads and concurrency, 

3. Eexception management, events. Input / Output. 

4. Introduction to Distributed Systems

5. Programming for distributed systems JAVA: Concurrency. Socket. Networking. 

6. Distributed Computing, Process to Process Communications, Publish/SubScribe Model

Testi di riferimento

Distributed Systems: Theory and Applications, R. K. Ghosh

Core Java: Fundamentals: Fundamentals, Volume 1&2