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

Disciplinas de Execução

2023/2024 - 2 Semestre