Guia de Cursos

Queres conhecer a oferta de cursos da NOVA, nas áreas das licenciaturas, mestrados e doutoramentos?
No nosso Guia de Cursos encontras informação útil sobre Faculdades, Institutos e Escolas.
Podes ainda aceder a informações complementares necessárias a uma completa integração.

saber mais Guia de Cursos

Faculdade de Ciências e Tecnologia

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, Sérgio Marco Duarte

Horas semanais

5

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

1.1 Examples, characteristics, challenges 

2. Direct communication

2.1 Point-to-point communication

2.2 Multicast

3. Remote invocation

3.1 Model

3.2 Interfaces and data representation

3.3 Protocols and semantics in the presence of faults

3.4 Binding and concurrency in the server

4. Remote invocation in the Internet

4.1 Web-services

4.2  REST

4.3 Asynchronous invocation (e.g. AJAX) and push models

5. Indirect communication

5.1 Group communication

5.2 Publish/subscribe

5.3 Message queues

6. Architectures and models

6.1 Architectures: client/server variants, p2p, proxy

6.2 Fault, interaction and security models

7 Security

7.1 Models

7.2 Cryptography

7.3 Case studies: TLS, OAuth

8. Time

8.1 Physical clocks

8.2 Logical clocks

8.3 Vector clocks

8.4 Version vectors

9. Introduction to replication and consistency

9.1 Caching

9.2 Primary/backup replication

10. Naming in distributed systems

10.1 Problems and concepts

10.2 Name services

10.3 Directory services

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 avaliação

Avaliação

Componentes

  • téorica (65%) >= 9.5 valores em 20
    • teste 1 (32.5%), teste 2 (32.5%)
    • ou, exame (65%)
  • frequência (35%) >= 9.5 valores em 20
    • discussão individual: trabalho 1 (15%), trabalho 2 (20%)
    • a nota da discussão individual <= nota do trabalho de grupo 
Observações
  • todas as notas intermédias são aproximadas às décimas

  • as frequências obtidas em 2015/16 e 2016/17 são válidas e usadas no cálculo da nota final, (mesmo que inferiores a 9.5). Em caso de repetição da frequência, será considerada a melhor das classificações obtidas.
  • os testes, exames e discussões individuais são realizados sem consulta.

  • os trabalhos práticos são realizados em grupos de 2 alunos, no máximo.

  • da falta injustificada à discussão individual decorre a perda de frequência.

Cursos