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
2.0 h/semana
1.5 h/semana
119.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
Conhecimentos de Sistemas Operativos, Redes de Computadores, Sistemas Distribuídos.
Componente Laboratorial
Desenvolvimento de software
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
A UC promove a literacia da informação e dos média, com escrita de relatórios e apresentações de artigos, as competêncas interpessoais, através de trabalhos de grupo, e o pensamento crítico e inovador através do desenvolvimento de projectos para os quais existem múltiplas soluções válidas.
Bibliografia
Principal
Distributed Systems: Concepts and Design (Fifth Edition)
George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair