Disciplina
Desenvolvimento de Aplicações Distribuídas
Á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