Plano de Estudos

Aplicações Distribuídas ADis

Contextos

Groupo: 1_PGCE 2023/24 > Especialização > Percurso Informática > 664_Perfil Informática > 2º semestre

ECTS

6.0 (para cálculo da média)

Objectivos

O aluno adquire noções introdutórias de aplicações e sistemas distribuídos. Irá estudar as arquiteturas de sistemas distribuídos, e os mecanismos e as abstrações em que estes se apoiam: comunicação, sincronização, tolerância a faltas, programação em rede. Serão apresentadas várias modalidades de processamento distribuído, com exemplos práticos. A disciplina também apresenta aos alunos as tecnologias emergentes para o desenvolvimento de sistemas e aplicações distribuídas. Os alunos que completam a disciplina ganham competências no conhecimento das arquiteturas de sistemas distribuídos, na compreensão e aplicação dos conceitos de concorrência, paralelismo, e comunicação entre processos, no conhecimento dos principais modelos de consistência, protocolos de replicação, e mecanismos de distribuição de dados, em técnicas de tolerância a falhas, em algoritmos, bases de dados e sistemas de ficheiros distribuídos, e nos conceitos de computação na nuvem e virtualização.

Programa

Arquitecturas genéricas distribuídas; modelo cliente-servidor e peer-to-peer; comunicação distribuída (chamada a procedimentos remotos, invocação a objectos remotos, filas de mensagens, streams, grupos); migração de código e agentes; protocolos (sincronização de relógios, salvaguarda de estado, eleição); transacções distribuídas; replicação e consistência de dados; tolerância a faltas; paradigmas de sistemas distribuídos.

Método de Avaliação

Avaliação periódica: três projetos de implementação de uma aplicação distribuída cobrindo cada um diferentes problemáticas associadas aos sistemas e aplicações distribuídas. Avaliação contínua: questionários interativos semanais nas aulas teóricas. Exame final: exame teórico realizado na plataforma moodle com questões abertas, questões e problemas de resposta curta, e questões de escolha múltipla.

Carga Horária

Carga Horária de Contacto -

Trabalho Autónomo - 105.0

Carga Total -

Bibliografia

Principal

  • A. Tanenbaum, M. van Steen, Distributed Systems: Principles and Paradigms, 2nd edition, Prentice Hall, 2007 George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design, Fifth Edition, Addison-Wesley, 2012:

Secundária

  • B. W. Kernighan, D. M. Ritchie, C Programming Language, 2nd Edition, Prentice-Hall, 1988. W. Richard Stevens, Bill Fenner, Andr M. Rudoff, Unix Network Programming, Volume 1: The Sockets Networking API, Third Edition, Addison-Wesley, 2003. M. Kerrisk, The Linux Programming Interface: a Linux and UNIX System Programming Handbook, 2010  Kay Robbins, Steve Robbins, Unix Systems Programming: Communication, Concurrency and Threads, 2nd Edition, Prentice-Hall, 2003.:

Disciplinas de Execução

2023/2024 - 2 Semestre

2024/2025 - 2 Semestre