Oferta Formativa - Sinopse

Tolerância a Faltas Distribuída

Código: 425157
Ano Letivo: 2015/16
Departamento: Informática
ECTS: 6
Carga horária: T: 2:00 h; TP: 1:30 h; OT: 2:00 h;
Área Científica: Informática; 

Objetivos da Unidade Curricular

A utilização crescente de sistemas distribuídos numa grande diversidade de aplicações levanta dois problemas: i) o número crescente de componentes dos sistemas levanta preocupações sobre a sua fiabilidade; ii) a distribuição geográfica levanta possibilidades interessantes de replicação por diversos servidores. A unidade curricular introduz o conceito de tolerância a faltas distribuída, que faz uso de diferentes processos interligados para replicar componentes de software de uma forma mais económica e flexível do que utilizando equipamento dedicado. A unidade curricular aborda conceitos, metodologias e mecanismos para a construção de sistemas em rede fiáveis.


Pré-requisitos

Sem pré-requisitos

Conteúdos

Abstracções básicas de sistemas distribuídos. Modelos de sistemas distribuídos. Algoritmos de difusão. Algoritmos de memória partilhada. Acordo distribuído. Aplicações de acordo distribuído.

 

Descrição detalhada dos conteúdos programáticos

Componente Teórica

1- Sistemas distribuídos e tolerância a faltas: Paradigmas básicos de sistemas distribuídos; Características de sistemas distribuídos; Evolução dos sistemas distribuídos; Medidas de confiabilidade; Classificação de faltas; Propriedades da confiabilidade; Mecanismos de tolerância a faltas.

2- Modelos de sistemas distribuídos.

3- Algoritmos de difusão e problemas relacionados: Difusão melhor-esforço, fiável com e sem uniformidade no modelo de falha por paragem. Ordenação FIFO, causal e total de mensagens. Problema do acordo distribuído.

4- Deteção de falhas: Mecanismos; Propriedades de detetores de falhas; Acordo distribuído com detetores de falhas.

5- Replicação: Gestão da replicação em sistemas não particionáveis e particionáveis; Replicação de máquina de estados; Paxos.

6- Comunicação em grupo: Conceitos; Gestão de vistas; Sincronia de vistas; Aspetos de segurança.

7- Transações: Modelo transacional; Recuperação; Checkpointing.

8- Memória partilhada: Registos atómicos; Sincronização por memória partilhada; Coordenação; Espaços de tuplos.

9- Computação e armazenamento em larga escala.

 

Componente Teórica-Prática

Desenvolvimento de aplicações tolerantes a faltas. Aplicações práticas e desenvolvimento de variantes dos algoritmos estudados nas aulas teóricas.

 

Bibliografia

Recomendada

P. Veríssimo, L. Rodrigues. Distributed Systems for System Architects. Kluwer. Part 1 (Distributed systems) and Part 2 (Fault-tolerance)

C. Cachin, R. Guerraoui, L. Rodrigues. Reliable and Secure Distributed Programming. (2nd edition). Springer. 2011

 

Outros elementos de estudo

Artigos sobre várias partes da matéria, disponibilizados aos alunos e acessíveis através ba biblioteca B-On.

 

Métodos de Ensino

As aulas teóricas tentam estimular o envolvimento dos alunos, constriuindo colaborativamente algoritmos que resolvem os problemas levantados no início da aula. Nas aulas práticas os estudantes são convidados a resolver individualmente os problemas apresentados no início da aula e a discutir as suas resoluções com os colegas.

 

Métodos de Avaliação

Exame final que avalia a componente teórica. Provas escritas curtas, ao longo do semestre. Trabalhos de análise de artigos e apresentações. Desenvolvimento de uma aplicação tolerante a faltas.

 

Língua de ensino

A unidade curricular é leccionada em Inglês caso estejam inscritos alunos que não dominem a língua portuguesa. Caso contrário é leccionado em português