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.: