Disciplina
Sistemas Distribuídos
Á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
Distributed Systems - 3rd edition
Maarten van Steen and Andrew S. Tanenbaum
CreateSpace Independent Publishing Platform