Disciplina

Área

Área Científica de Arquitectura e Sistemas Operativos > Sistemas Operativos e Sistemas Distribuídos

Activa nos planos curriculares

GENI > GENI > 1º Ciclo > Área Principal > Percursos > Fundamentos para Engenharia de Telecomunicações e Informática > Sistemas Distribuídos

LEIC-T 2021 > LEIC-T 2021 > 1º Ciclo > Área Principal > Sistemas Distribuídos

LETI 2021 > LETI 2021 > 1º Ciclo > Área Principal > Sistemas Distribuídos

LEIC-A 2021 > LEIC-A 2021 > 1º Ciclo > Área Principal > Sistemas Distribuídos

MEIC-T 2006 > MEIC-T 2006 > 2º Ciclo > Áreas de Especialização Complementares > Fundamentos de Engenharia Informática > Sistemas Distribuídos

MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Complementar > Fundamentos de Engenharia Informática > Sistemas Distribuídos

LERC 2006 > LERC 2006 > 1º Ciclo > Ciências da Engenharia Informática > Sistemas Distribuídos

LEIC-A 2006 > LEIC-A 2006 > 1º Ciclo > Ciências da Engenharia Informática > Sistemas Distribuídos

LEIC-T 2006 > LEIC-T 2006 > 1º Ciclo > Ciências da Engenharia Informática > Sistemas Distribuídos

Nível

A avaliação da disciplina segue o regime de projeto e exame. A avaliação contínua terá um peso >= 40%.

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

2.0 h/semana

1.5 h/semana

119.0 h/semestre

Objectivos

Aprender os conceitos e tecnologias fundamentais para desenvolver aplicações distribuídas que possam garantir requisitos não funcionais como a reconfigurabilidade, a segurança, a tolerância a faltas e a escalabilidade. Adquirir conhecimentos que permitam desenvolver uma aplicação com uma arquitectura distribuída. Programar aplicações distribuídas com chamadas remotas e serviços de nomes distribuídos. Analisar requisitos de fiabilidade e disponibilidade e introdução de mecanismos de tolerância a faltas. Interpretar requisitos de segurança formulando políticas e concretizando mecanismos seguros no código da aplicação.

Programa

Introdução: desafios e oportunidades da distribuição. Troca de mensagens: chamadas remotas de procedimentos e gestão de nomes. Memória partilhada: coerência de memória e memória partilhada distribuida. Coordenação e tolerância a faltas: tipos de faltas e confiança no funcionamento, replicação de máquinas de estados, primário-secundário, confirmação em duas etapas. Segurança: introdução à criptografia, canais seguros, certificados digitais, TLS, autenticação distribuída.

Metodologia de avaliação

A avaliação da disciplina segue o regime de projeto e exame. A avaliação contínua terá um peso >= 40%.

Pré-requisitos

Cadeiras de licenciatura em sistemas operativos e programação com objetos

Componente Laboratorial

Trabalho prático sobre algumas das principais tecnologias discutidas nas aulas teóricas, seguido da definição e desenvolvimento do projeto final da disciplina.     

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Componente de Programação e Computação

No curso onde esta UC é oferecida estão asseguradas as componentes de Computação e Programação de acordo com o MEPP 2122.

Componente de Competências Transversais

O projeto necessita de pensamento crítico e inovador, para resolução do problema proposto, com criatividade técnica. As competências intrapessoais e interpessoais são muito importantes no trabalho a desenvolver em equipa. O tema do trabalho é alinhado com desafios societais relevantes.

Bibliografia

Principal

Distributed Systems - Concepts and Design - 5th edition

George Coulouris and Jean Dollimore and Tim Kindberg and Gordon Blair

2011

Addison Wesley


Distributed Systems - 3rd edition

Maarten van Steen and Andrew S. Tanenbaum

2017

CreateSpace Independent Publishing Platform