2023

Sistemas Distribuídos

Nome: Sistemas Distribuídos
Cód.: INF13206L
6 ECTS
Duração: 15 semanas/156 horas
Área Científica: Informática

Língua(s) de lecionação: Português
Língua(s) de apoio tutorial: Português, Inglês
Regime de Frequência: Presencial

Objetivos de Desenvolvimento Sustentável

Objetivos de Aprendizagem

O objetivo desta Unidade Curricular é dotar os alunos de conhecimentos sobre Sistemas Distribuídos, a nível teórico e prático, conferindo-lhes competências para análise de requisitos, e para desenhar e implementar soluções de software com arquitetura distribuída.
No final desta Unidade Curricular, os alunos estarão aptos a avaliar as diferentes necessidades de comunicação e coordenação entre componentes de um Sistema Distribuído, e a optar, de forma fundamentada, por uma abordagem de resposta a essas necessidades.

Conteúdos Programáticos

Introdução aos Sistemas Distribuídos (SD)
• conceitos, exemplos, características

Modelos de Interação e Comunicação em SDs
• Arquiteturas centralizadas, descentralizadas, híbridas
• Protocolos multi-camadas, RPC, Multicast
• Marshalling
• Middleware

Objetos Distribuídos e Invocação Remota
• Java RMI, CORBA
• Marshalling: RPC, Java RMI, SOAP, REST

Web Services e REST

Sistemas de Ficheiros Distribuídos

Serviços de Nomes

Sincronização e coordenação distribuída
• Sincronização de Relógios
• Exclusão mútua em contexto distribuído
• Algoritmos para eleição

Replicação

Tolerância a Falhas

Cloud Computing

Data-Intensive Computing, Paradigma Map-Reduce

Métodos de Ensino

A metodologia de ensino compreende dois tipos de aula:
• aulas teóricas
• aulas práticas laboratoriais
Nas aulas teóricas são apresentados os conceitos de Sistemas Distribuídos e toda a matéria, de forma sequencial e elevando gradualmente o nível de abstração.
As aulas práticas laboratoriais são dedicadas à aprendizagem e aplicação de tecnologias empregues na implementação de sistemas distribuídos. Algumas destas aulas são dedicadas à implementação de dois trabalhos em grupo, o primeiro a meio do semestre e o segundo no final do semestre.

Avaliação:
• Prova Escrita: 2 frequências ou 1 exame (60%)
• 2 Trabalhos práticos em grupo (20% + 20%)

Bibliografia

"Distributed Systems - Concepts & Design". George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair. 5th Edition, Addison Wesley, May 2012
“Distributed Systems: Principles and Paradigms”. Andrew S. Tanenbaum, Maarten van Steen. 2nd Edition, 2016