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

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

2012

Pearson Custom Publishing