DISTRIBUTED SYSTEMS
cod. 1000084

Academic year 2024/25
2° year of course - Second semester
Professor
Agostino POGGI
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Type of training activity
Characterising
72 hours
of face-to-face activities
9 credits
hub: PARMA
course unit
in ITALIAN

Learning objectives

The goal of the course is to provide an in-depth knowledge on the algorithms used to guarantee an efficient and effective behavior of a distributed system, on their reference models and architectures, and on the techniques and some technologies used for their development.
Moreover, the course has the goal to provide to the students the ability to use the acquired knowledge and the experience, gained during the lab activities, to identify the best-distributed solutions of a problem and to develop satisfying implementations for both the properties and the cost of the developed system.

Prerequisites

Software Engineering, Database Systems.

Course unit content

The course presents the main features of distributed systems and the techniques and technologies for their development. In particular, the course copes with the following topics:
Introduction (3 hours)
Middleware (3 hours)
Synchronization and Coordination (9 hours)
Releability and Scalability (9 hours)
Development techniques and tools (6 hours)
Applications (3 hours)
Cooperation and negotiation (3 hours)
Multi-agen systems and simulation (9 hours)
Java for distributed systems (21 hours).

Full programme

Distributed system features
Architecture models
Middleware
Naming
Communication
Synchronization
Coordination
Fault Tolerance
Distributed Transactions
Design
Applications
Development technologies
Multi-agent systems
Multi-agent systems simulation
Java for distributed systems

Bibliography

A. Tanenbaum - M. Van Steen. Distributed Systems. Prentice Hall, 4th edition, 2023

Teaching methods

The course is based on theoretical lectures and lab activities. In particular, the lab activities are dedicated to the development of some distributed systems taking advantage of the technologies discussed during the course. In these activities, students work individually, of course under the control and with the support of the teacher and without any restriction on positive interaction among them.
The slides used to support the teaching activities will be uploaded on the Elly platform before each lecture. Students need to subscribe to the online course to download the corresponding slides. Slides are an integral part of the teaching material. Therefore, non-attending students need to check the teaching material and the teacher’s recommendations available on the Elly platform.

Assessment methods and criteria

There are written tests and practical tests. The written tests are based on open-ended questions on theory to be answered without the help of notes and books. These questions are intended to assess the knowledge acquired on the topics discussed during the course. The practical test consists of the development of a software system and can be carried out by students individually or in groups of up to 2 people. This test has the main purpose of assessing the ability to apply the knowledge acquired during the course. Furthermore, the evaluation of the test will depend on the quality of the system developed, the related documentation and the oral presentation (with the use of slides) of the system. The duration of the written test is 1 hour and thirty minutes and the test is evaluated on a scale of 0-30. The exam is passed if the result of the tests is greater than or equal to 18. The final grade is equal to the arithmetic mean of the grades of the tests. Honors can be awarded in the case of achieving the maximum score on all the tests.

Other information

- - -