
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
José Augusto Legatheaux Martins, Nuno Manuel Ribeiro Preguiça
Horas semanais
5
Total de horas
70
Língua de ensino
Português
Objectivos
Esta é uma cadeira inicial de sistemas distribuídos. O objectivo é fornecer um conhecimento básico das características e modelos de sistemas distribuídos, e os métodos e técnicas para desenhar e desenvolver sistemas distribuídos seguros em ambienetes de Intranet e Internet.
Nas aulas práticas os estudantes colocam em prática as técnicas abordadas na cadeira desenvolvendo um sistema distribuído de média complexidade.
- Conhecer os problemas/desafios colocados no denenho dum sistema distribuído.
- Conhecer os modelos arquitecturais para construir um sistema distribuído e perceber os seus pontos fortes e fracos.
- Perceber os modelos de comunicação entre processos, com realce para os modelos de invocação remota e web services.
- Conhecer os problemas de segurança dum sistema distribuídos e saber quais as técnicas básicas usadas para os resolver.
- Perceber o problema dos nomes num sistema distribuído e conhecer as soluções básicas para solucionar o problema.
- Desenhar um sistema distribuído para resolver um problema não-trivial.
- Implementar um sistema distribuído que tolere falhas fail-stop usando comunicação entre processos.
- Implementar um sistema distribuído seguro usando técnicas de autenticação e cifra comuns.
- Desenhar um sistema e ser capaz de defender a solução proposta.
- Gerir o tempo.
- Trabalhar em pequenas equipas para resolver problemas 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
- Introdução aos sistemas distribuídos
- Modelos de sistemas distribuídos
- Arquitectura
- Modelos fundamentais (interacção, falhas, segurança)
- Comunicação entre processos
- Heterogeneidade na representação dos dados
- Modelo cliente/servidor, comunicação em grupo a baseada em redes lógicas
- Sistemas de disseminação de eventos
- Invocação remota de métodos
- Modelo conceptual
- Linguagens de definição de interfaces
- Nomeação e referências remotas
- Web services e modelos alternativos de interacção cliente/servidor na internet
- Web services SOAP (descrição de serviços, serviço de directório, orquestração)
- Web services REST
- Invocações remotas asíncronas
- Ajax
- GWT
- Segurança
- Introdução à criptografia
- Algoritmos de autenticação e cifra (baseados em criptografia simétrica e assimétrica)
- Distribuição de chaves e assinaturas digitais
- Sistemas de nomes
- O problema dos nomes em sistemas distribuídos
- Serviços de nomes e serviços de directório
- Sistemas de ficheiros distribuídos
- Introdução à gestão de dados replicados
Bibliografia
O livro adoptado cobre a generalidade da matéria abordada na cadeira. Dos livros complementares, o primeiro apresenta programação em rede, podendo ser útil apra as aulas práticas, e o segundo é uma leitura alternativa ao livro adoptado.
Adoptados
- G. Coulouris, J. Dollimore and T. Kindberg. Distributed Systems - Concepts and Design. Addison-Wesley, 5th Edition, 2011
Complementares
- Andrew S. Tanenbaum, Maarten van Steen. Distributed Systems: Principles and Paradigms. Prentice Hall, 2nd Edition, 2007.
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.