2024
Distributed Systems
Name: Distributed Systems
Code: INF13206L
6 ECTS
Duration: 15 weeks/156 hours
Scientific Area:
Informatics
Teaching languages: Portuguese
Languages of tutoring support: Portuguese, English
Regime de Frequência: Presencial
Sustainable Development Goals
Learning Goals
The objective of this Course is to provide students with knowledge about Distributed Systems, at a theoretical and a practical level, giving them competencies to requirements analysis, and to design and implement software solutions with distributed architecture.
At the end of this Course, students will be able to evaluate the different communication and coordination needs among components of a Distributed System, and to choose, in a reasoned way, an approach for solving those needs.
At the end of this Course, students will be able to evaluate the different communication and coordination needs among components of a Distributed System, and to choose, in a reasoned way, an approach for solving those needs.
Contents
Introduction to Distributed Systems (DS)
concepts, examples, characteristics
Models of Interaction and Communication in DS
Centralized, decentralized, hybrid architectures
Multi-layer protocols, RPC, Multicast
Marshalling
Middleware
Distributed Objects and Remote Invocation
Java RMI, CORBA
Marshalling Case studies: RPC, Java RMI, SOAP, REST
Web Services and REST
Distributed File Systems
Name Services
Synchronization and distributed coordination
Clock Synchronization
Mutual Exclusion in Distributed Context
Algorithms for election
Replication
Fault Tolerance
Cloud Computing
Data-Intensive Computing, Map-Reduce Paradigm
concepts, examples, characteristics
Models of Interaction and Communication in DS
Centralized, decentralized, hybrid architectures
Multi-layer protocols, RPC, Multicast
Marshalling
Middleware
Distributed Objects and Remote Invocation
Java RMI, CORBA
Marshalling Case studies: RPC, Java RMI, SOAP, REST
Web Services and REST
Distributed File Systems
Name Services
Synchronization and distributed coordination
Clock Synchronization
Mutual Exclusion in Distributed Context
Algorithms for election
Replication
Fault Tolerance
Cloud Computing
Data-Intensive Computing, Map-Reduce Paradigm
Teaching Methods
The teaching methodology includes two types of classes:
lectures
laboratory classes
The lectures present the concepts of Distributed Systems and all remaining content, sequentially and gradually raising the level of abstraction.
The laboratory classes are dedicated to learning and use technologies used in implementing distributed systems. Some of these lessons are devoted to the implementation of two group projects, the first at half of the semester and the second at the end of the semester.
The Evaluation:
Written examination: 2 midterm or 1 final examination (60%)
2 group Projects (20% + 20%)
lectures
laboratory classes
The lectures present the concepts of Distributed Systems and all remaining content, sequentially and gradually raising the level of abstraction.
The laboratory classes are dedicated to learning and use technologies used in implementing distributed systems. Some of these lessons are devoted to the implementation of two group projects, the first at half of the semester and the second at the end of the semester.
The Evaluation:
Written examination: 2 midterm or 1 final examination (60%)
2 group Projects (20% + 20%)
Teaching Staff
- José Miguel Gomes Saias [responsible]
- Mário Jorge Costa Mourão