PROGETTAZIONE DI SISTEMI DISTRIBUITI

ING-INF/05 - 9 CFU - 1° Semester

Teaching Staff

ANTONELLA DI STEFANO


Learning Objectives

Currently, all enterprise software systems are distributed systems.

The course aims to deal with issues concerning large-scale distributed systems design in today's scenario. the aim of the course is to provide knowledge on modern technologies in distributed architecture, and especially to offer to student the ability to apply algorithms and project methodologies in the realization of complex, large-scale solutions.

 

More in detail, the course aims to

1) provide skills on

2) allow students to apply large-scale design techniques and tools in today's actual scenarios.

3) accomplish the design, development and implementation of enterprise systems.

 

The typical problems of SOA, P2P, CDN, Cloud and Fog Computing will be treated.


Course Structure

Lessons ex-catedra and laboratory activities.



Detailed Course Content

Paradigms, models and software architectures of large scale distributed systems - multithreading vs virtualization, Patterns for distributed software architectures, components, containers and application servers, multitier systems and vertical and horizontal distribution, Enterprise Systems (ex. JEE), Service Oriented Architecture (WS and REST ) and _aaS, microservices and containerization (Docker), message-oriented systems (such as MQTT or Rabbit MQ), P2P Systems - Structured (DHT) and unstructured (flooding, es Gnutella) solutions, CDN, Cloud and Fog computing.

Communication model - C / S and Group communication. Multicast and Broadcast. CallBack and Event Notification messaging systems, web sockets.

Systems Requirements for integration and interoperability, Quality of Services (QoS), Scalability, Fault Tolerance and Data Consistency.

Distributed Algorithms - synchronous vs. asynchronous systems, clock models: clock and Lamport clocks and vector clocks, events ordering and concurrency, global snapshot; Dependability and Fault tolerance. Fault classification: crash and Byzantine faults, reliability and agreement algorithms under various types of fault topologies. fault detectors. cooperative algorithms. Election. Mutual exclusion, deadlock detection. Distributed transactions, serializability, recoverability and commitment. Consistency and replication. Replication distribution. Load Sharing. Some notions of Distributed File System and Big Data management




Open in PDF format Versione in italiano