Computação Distribuída e em Nuvem

Código

01063092

Créditos ECTS

6

Objetivos

1. Entender os conceitos fundamentais de sistemas distribuídos;
2. Entender os conceitos e modelos de comutação na nuvem e suas aplicações práticas;
3. Saber identificar os tipos de arquitetura dos sistemas distribuídos e o conceito de virtualização;
4. Conhecer os modelos de comunicação e coordenação e saber o significado da consistência, replicação e tolerância a falhas nos sistemas distribuídos;
5. Conhecer os diferentes modelos de serviços da nuvem;
6. Saber utilizar a nuvem como um espaço computacional nas suas diferentes vertentes.

Programa

1. Introdução aos sistemas distribuídos e computação em nuvem
2. Arquiteturas de software e processos
3. Modelos de comunicação e coordenação
4. Consistência, Replicação e tolerância a falhas
5. Computação na nuvem
6. Exploração das funcionalidades de um ambiente em nuvem

Métodos de Ensino

A unidade curricular tem uma abordagem prática dos conteúdos apresentados, convidando os formandos a realizar pequenos programas onde testam algumas das funcionalidades associadas aos sistemas distribuídos (e.g. uso de threads e de sockets em diferentes tipos de arquitetura) e experimentam a utilização de sistemas em nuvem, explorando as suas potencialidades. Em alguns dos temas, abordados de forma mais expositiva, os formandos são convidados a resolver questões e a discutir as respostas em sala de aula. Um projeto final permitirá aos formandos testar alguns dos aspetos associados à utilização da nuvem.

Bibliografia

- Maarten van Steen and Andrew S. Tanenbaum (2023). Distributed Systems. 4th edition.
- Foster, I. & Gannon, D.B. (2019) Cloud Computing for Science and Engineering. MIT Press.
- Documentação técnica de fornecedores de nuvem (AWS, Azure, Google Cloud).

Método de Avaliação