Salta ai contenuti. | Salta alla navigazione

Strumenti personali

DISTRIBUTED AND MOBILE SYSTEMS

Academic year and teacher
If you can't find the course description that you're looking for in the above list, please see the following instructions >>
Versione italiana
Academic year
2018/2019
Teacher
CESARE STEFANELLI
Credits
6
Didactic period
Primo Semestre
SSD
ING-INF/05

Training objectives

The goal of this course is to provide an advanced knowledge about modern distributed systems, in terms of models, architectures, systems, methodologies, and tools.
The main acquired knowledge will be:
distributed systems design requirements;
distributed systems models and architectures;
communication paradigm;
fault tolerance;
naming systems;
middleware for supporting distributed services and applications (Web Services, CORBA, Cloud Computing, mobile systems, …);
mobile programming (iOS and Android).

The basic acquired abilities (that are the capacity of applying the acquired knowledge) will be:
distributed systems analysis to understand main components and interactions;
understanding design requirements and being able to choose the better suited models, architectures, paradigms for a specific scenario;
identifying the best suited middleware for any specific application scenario;
being able to configure and install the most common and important middleware;
mobile programming skills (iOS and Android).

Prerequisites

The course requires the knowledge of the main areas studied in basic operating systems and computer network courses:
C and Java languages;
Unix System Programming
Unix Network Programming (socket);

Course programme

The course consists of 60 hours of teaching and labs (52 in the classroom, 8 in the lab):
Dystributed Systems introduction (8 hours). Dystributed systems introduction, definitions, main features, properties, challenges. Main models and architectures.
Communications in dystributed systems (6 hours). Main communication paradigms. Communication semantics and fault tolerance. Routing. Interaction models.
Naming systems (6 hours). Naming problem and naming services. Main solutions and examples.
Middleware (8 hours). Software infrastructures for supporting distributed services and applications. Definitions, properties and models. Middlewares taxonomy.
Middleware examples (18 hours + 4 hours in lab): Web Services (SOAP e ReST), Object oriented mw (CORBA), Cloud Computing (Heroku, AWS, OpenStack), Mobile Computing, Middleware for Internet of Things (IoT) in manufacturing (manufacturing 2.0).
Smartphone programming (6 hours + 4 hours in lab): iOS and Android.

Didactic methods

The course is organized as follow:
frontal lectures on all the course’s topics;
practice exercises in the Computer Science lab concerning middlewares and mobile programming

Learning assessment procedures

The aim of the exam is to verify at which level the learning objectives previously described have been acquired. The examination will be held in the form of an oral discussion.

Reference texts

Copies of the teaching slides in this server we.

Main bibliography:
G.Couloris, J. Dollimore, T. Kindberg, G. Blair, Distributed Systems – Concepts and Design, fifth edition, Addison Wesley, 2011.
A. Tanenbaum, M.Van Steen, Sistemi Distribuiti, Prentice Hall, 2007.