Disciplina

Área

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

Activa nos planos curriculares

MEIC-A 2021 > MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Sistemas Distribuídos > Desenvolvimento de Aplicações Distribuídas

METI 2018 > METI 2018 > 2º Ciclo > Áreas de Especialização > Aplicações Seguras, Móveis Entre-Pares e na Nuvem > Desenvolvimento de Aplicações Distribuídas

MEIC-T 2018 > MEIC-T 2018 > 2º Ciclo > Agrupamentos > Sistemas Distribuídos > Desenvolvimento de Aplicações Distribuídas

METI 2021 > METI 2021 > 2º Ciclo > Área Principal > Especializações > Especialização em Sistemas Distribuídos e Aplicações para a Internet > Informática > Desenvolvimento de Aplicações Distribuídas

MEIC-T 2021 > MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Sistemas Distribuídos > Desenvolvimento de Aplicações Distribuídas

MEIC-T 2015 > MEIC-T 2015 > 2º Ciclo > Agrupamentos > Sistemas Distribuídos > Desenvolvimento de Aplicações Distribuídas

MEIC-A 2015 > MEIC-A 2015 > 2º Ciclo > Agrupamentos > Sistemas Distribuídos > Desenvolvimento de Aplicações Distribuídas

MERC 2006 > MERC 2006 > 2º Ciclo > Tronco Comum > Desenvolvimento de Aplicações Distribuídas

MEIC-T 2006 > MEIC-T 2006 > 2º Ciclo > Áreas de Especialização Complementares > Tecnologias dos Sistemas Informáticos > Desenvolvimento de Aplicações Distribuídas

MEIC-A 2006 > MEIC-A 2006 > 2º Ciclo > Área de Especialização Complementar > Sistemas Distribuídos > Desenvolvimento de Aplicações Distribuídas

Nível

Exame (40%), Projecto (45%), Apresentações (15%)

Tipo

Não Estruturante

Regime

Semestral

Carga Horária

1º Semestre

3.0 h/semana

1.5 h/semana

147.0 h/semestre

Objectivos

Perceber os problemas de nível sistema subjacentes à concepção e desenvolvimento de aplicações em redes de grandes escala (ex.: na Internet). Conhecer as soluções existentes no âmbito das plataformas de suporte à execução das aplicações antes referidas com ênfase na arquitectura, modelos de comunicação, escalabilidade, desempenho e segurança. Especificar, conceber, analisar e implementar aplicações distribuídas em redes de grande escala assim como as respectivas plataformas de suporte à sua execução.

Programa

Parte I: Modelos de sistema Modelos de sistema Sistemas síncronos e assíncronos. Troca de mensagens e partilha de memária. Modelos de faltas. Modelos de coerência e o teorema CAP. Dimensões do sistema: Cliente-servidor Agregados e computação em grelha Computação na nuvem Sistemas entre-pares Parte II: Abstrações Coordenação distribuída: Relógios físicos e sincronização de relógios Tempo lógico e relógios lógicos Relógios vectoriais Estados globais e captura de estado distribuída Exclusão mútua Eleiçao de líder Acordo distribuído Difusão fiável Ordem total Consenso Comunicação em grupo e sincronia na vista Processamento distribuído de transações Controlo de concorrência Confirmação atómica distribuída Parte III: Sistemas Construção de sistemas confiáveis de grande dimensão Sistemas de ficheiros replicados Replicação diferida Sistemas entre-pares. Sistemas geo-replicados A google como caso de estudo

Metodologia de avaliação

Exame (40%), Projecto (45%), Apresentações (15%)

Pré-requisitos

Componente Laboratorial

Princípios Éticos

Componente de Programação e Computação

Componente de Competências Transversais

Bibliografia

Principal

Distributed Systems: Concepts and Design Fifth Edition

George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair

2012

Pearson Custom Publishing