2023

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.

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

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%)