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
Pretende-se que o aluno adquira noções introdutórias de aplicações e sistemas distribuídos. O aluno irá estudar as diversas arquiteturas de sistemas distribuídos, e terá a oportunidade de estudar 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 também apresentados várias modalidades de processamento distribuído, com exemplos práticos e um estudo de caso.
Programa
Arquitecturas genéricas distribuídas; modelo cliente-servidor; 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; estudo de caso: Google.
Método de Avaliação
Introdução e discussão dos conceitos, metodogias e mecanismos em 2 aulas teóricas semanais (1 hora cada). O estudo é complementado com uma aula teórico-prática semanal (1.5h). Estas aulas são fundamentalmente de apoio aos 5 projetos (ensino centrado no aluno), incluindo para cada um a resolução de um problema simples diretamente relacionado com o conceito a desenvolver em cada projeto.Cinco mini-projectos de programação de uma aplicação distribuída (40%) e exame final (60%).
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.: