
Sistemas Distribuídos
Código
8153
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
6.0
Professor responsável
Nuno Manuel Ribeiro Preguiça
Horas semanais
4
Total de horas
52
Língua de ensino
Português
Objectivos
Esta é uma UC de consolidação, opcional, em sistemas distribuídos. Esta UC introduz os modelos, métodos e técnicas básicas para o desenvolvimento de sistemas distribuídos. Como pré-requisito, os estudantes devem possuir conhecimentos de algoritmos, programação e redes de computadores.
Conhecimentos
- Problemas e desafios para o desenho de sistemas distribuídos;
- Modelos arquitecturais para a construção de sistemas distribuídos;
- Modelos e sistemas de comunicação directa e indirecta;
- Alternativas para a nomeação, incluindo serviços de nomes e directório;
- Soluções fundamentais de ordenação e registo de causalidade de eventos;
- Modelos de consistência básicos e soluções de caching e replicação.
Aptidões e competências
- Desenhar um sistema distribuídos para um problema não trivial;
- Utilização de subsistemas de comunicação standard para a programação de sistemas distribuídos;
- Implementação de sistemas distribuídos não triviais.
Pré-requisitos
Para seguir esta cadeira os estudantes devem possuir conhecimentos de algoritmos, programação e redes de computadores.
Bons conhecimentos de Programação em Java são essenciais.
Conteúdo
1 Introdução
1.1 exemplo;características; desafios
2 Arquitecturas e modelos
2.1 Arquitecturas: cliente/servidor; p2p; proxy
2.2 Modelos de falhas, interacção, segurança
3 Comunicação directa
3.1 Com. ponto-a-ponto
3.2 Multicast
4 Invocação remota
4.1 Modelo
4.2 Interfaces e representação de dados
4.3 Protocolos e semântica na presença de falhas
4.4 Ligação (binding) e concorrência no servidor
5 Invocação remota na Internet
5.1 Web-services
5.2 REST
5.3 Invocação assíncrona (AJAX) e modelos “push”
6 Comunicação indirecta
6.1 Com. em grupo
6.2 Sistemas produtor/subscritor
6.3 Sistemas de filas de mensagens
7 Sistemas de Nomes
7.1 Problemática e conceitos
7.2 Serviços de nomes
7.3 Serviços de directório
8 Tempo
8.1 Relógios físicos
8.2 Relógios lógicos
8.3 Relógios vectorias
8.4 Vectores versão
9 Introdução à replicação e consistência
9.1 Caching
9.2 Replicação primário/secundário
Bibliografia
Distributed Systems: Concepts and Design
George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair
Publisher: Addison Wesley; 5th edition
ISBN-13: 978-0132143011
Método de ensino
São ministradas aulas teóricas onde são transmitidos e discutidos os conceitos fundamentais.
Nas aulas práticas é feita uma apresentação de algumas técnicas básicas de sistemas distribuídos (ver programa das aulas práticas) e realizados alguns exercícios básicos relacionados. Algumas aulas práticas são dedicadas exclusivamente aos trabalhos práticos a realizar pelos alunos, incluindo a apresentação e discussão de possíveis soluções.
Método de avaliação
Método de avaliação dos alunos
Componentes da avaliação
- Dois mini-testes, com o peso na nota final de 35% cada um.
- Dois trabalhos práticos, com peso na nota final de 15% cada um.
Notas a ter em atenção
- A nota final é aproximada ao valor, as notas intermédias à décima de valor.
- Os mini-testes são realizados sem consulta.
- Ter êxito na frequência é condição necessária para aceder ao exame de recurso.
Avaliação da frequência
Têm frequência os alunos cuja nota de frequência seja igual ou superior a 8 valoes. A nota de frequência é calculada da seguinte forma:
- Nota de frequência = 50% * trab 1 + 50% * trab 2
A nota do trabalho prático será obtido pela avaliação do trabalho efectuado, a qual pode incluir uma discussão sobre o mesmo.
Nota final
Para os alunos com frequência, a nota final será calculada da seguinte forma:
- Nota final = 35% * teste 1 + 35% * teste 2 + 15% * trab 1 + 15% * trab 2
Para os alunos que vão a exame, a nota final será calculada da seguinte forma:
- Nota final = 70% * exame + 15% * trab 1 + 15% * trab 2
- Nota final = MAX( 35% * teste 1 + 35% * teste 2, 70% * exame) + 15% * trab 1 + 15% * trab 2
Condições de aprovação na cadeira
1. Trabalho prático válido;
2. Avaliação de frequência superior ou igual a 8,0 valores;
3. Nota final superior ou igual a 9,5 valores.