2026

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

A avaliação da unidade curricular integra as seguintes componentes:

a) Componente teórica: provas escritas ? três frequências (3x 20%) ou um exame final (60%). Os estudantes optam entre a avaliação contínua por frequências e a avaliação final por exame. Todos os estudantes podem realizar o exame de recurso.

b) Componente prática: dois trabalhos práticos (2x 20%). Os trabalhos compreendem o software, o relatório e uma apresentação, em data a acordar. A componente prática é obrigatória em qualquer época de avaliação.


Cálculo da classificação: 0,6 × PE + 0,2 × T1 + 0,2 × T2
em que PE = (F1 + F2 + F3) / 3, sem arredondamento, ou a classificação obtida num exame.
Classificação mínima: 8 valores em todas as provas escritas e nos trabalhos.

Os trabalhos podem ser realizados individualmente ou em grupos de dois estudantes.


Prova Oral
Se for considerado necessário para verificar em que medida o estudante desenvolveu os conhecimentos e as competências previstas para a unidade curricular, poderá a equipa docente convocar o estudante para uma prova oral, em complemento de provas escritas e nos termos do n.º 13 do artigo 110.º do Regulamento Académico da Universidade de Évora, sendo asseguradas as condições previstas no n.º 4 do artigo 116.º e no n.º 1 do artigo 118.º do mesmo Regulamento.
Quando acionada, a prova oral terá uma ponderação de 60% na classificação final da unidade curricular, a combinar com os 40% da componente prática (que prevê a apresentação/demonstração dos trabalhos).

Bibliografia

"Distributed Systems - Concepts & Design". George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair. 5th Edition, Addison Wesley

"API Gateway Handbook" 2nd Ed., Thomas Bayer and Tobias Polley. predic8 GmbH, Germany

"Distributed Systems". M. van Steen and A.S. Tanenbaum, 4th ed.

"Designing Distributed Systems". Brendan Burns. O'Reilly